diff options
Diffstat (limited to 'src/com/android/tv/data/BaseProgram.java')
-rw-r--r-- | src/com/android/tv/data/BaseProgram.java | 61 |
1 files changed, 47 insertions, 14 deletions
diff --git a/src/com/android/tv/data/BaseProgram.java b/src/com/android/tv/data/BaseProgram.java index 6cb682b8..0fb1e58d 100644 --- a/src/com/android/tv/data/BaseProgram.java +++ b/src/com/android/tv/data/BaseProgram.java @@ -93,24 +93,57 @@ public abstract class BaseProgram { /** Returns the displayed title of the program episode. */ public String getEpisodeDisplayTitle(Context context) { - if (!TextUtils.isEmpty(getEpisodeNumber())) { - String episodeTitle = getEpisodeTitle() == null ? "" : getEpisodeTitle(); - if (TextUtils.equals(getSeasonNumber(), "0")) { + String episodeNumber = getEpisodeNumber(); + String episodeTitle = getEpisodeTitle(); + if (!TextUtils.isEmpty(episodeNumber)) { + episodeTitle = episodeTitle == null ? "" : episodeTitle; + String seasonNumber = getSeasonNumber(); + if (TextUtils.isEmpty(seasonNumber) || TextUtils.equals(seasonNumber, "0")) { // Do not show "S0: ". - return String.format( - context.getResources() - .getString(R.string.display_episode_title_format_no_season_number), - getEpisodeNumber(), - episodeTitle); + return context.getResources() + .getString( + R.string.display_episode_title_format_no_season_number, + episodeNumber, + episodeTitle); } else { - return String.format( - context.getResources().getString(R.string.display_episode_title_format), - getSeasonNumber(), - getEpisodeNumber(), - episodeTitle); + return context.getResources() + .getString( + R.string.display_episode_title_format, + seasonNumber, + episodeNumber, + episodeTitle); } } - return getEpisodeTitle(); + return episodeTitle; + } + + /** + * Returns the content description of the program episode, suitable for being spoken by an + * accessibility service. + */ + public String getEpisodeContentDescription(Context context) { + String episodeNumber = getEpisodeNumber(); + String episodeTitle = getEpisodeTitle(); + if (!TextUtils.isEmpty(episodeNumber)) { + episodeTitle = episodeTitle == null ? "" : episodeTitle; + String seasonNumber = getSeasonNumber(); + if (TextUtils.isEmpty(seasonNumber) || TextUtils.equals(seasonNumber, "0")) { + // Do not list season if it is empty or 0 + return context.getResources() + .getString( + R.string.content_description_episode_format_no_season_number, + episodeNumber, + episodeTitle); + } else { + return context.getResources() + .getString( + R.string.content_description_episode_format, + seasonNumber, + episodeNumber, + episodeTitle); + } + } + return episodeTitle; } /** Returns the description of the program. */ |