diff options
author | nchalko <nchalko@google.com> | 2018-02-11 11:25:47 -0800 |
---|---|---|
committer | Nick Chalko <nchalko@google.com> | 2018-02-15 21:23:03 +0000 |
commit | a4902090d0672e6f058096fa0bc29de1f8b31d3b (patch) | |
tree | 7c7d7300fc081ead71de07708ec7e8e8fb119a7f | |
parent | f73fbd5f7254787a79d93c0912baefd9afd7870e (diff) | |
download | TV-a4902090d0672e6f058096fa0bc29de1f8b31d3b.tar.gz |
Add getEpisodeContentDescription to BaseProgram.
PiperOrigin-RevId: 185309704
Change-Id: Icd87d0d6d03bef298351820d3127536b0f69d878
-rw-r--r-- | common/res/values/strings.xml | 8 | ||||
-rw-r--r-- | src/com/android/tv/data/BaseProgram.java | 29 |
2 files changed, 37 insertions, 0 deletions
diff --git a/common/res/values/strings.xml b/common/res/values/strings.xml index aa7adac4..1c8a990c 100644 --- a/common/res/values/strings.xml +++ b/common/res/values/strings.xml @@ -35,6 +35,14 @@ "Ep." is an abbreviation for episode. For example, "Ep. 1807 Headline News". --> <string name="display_episode_title_format_no_season_number">Ep. <xliff:g id="episode_number" example="1807">%1$s</xliff:g> <xliff:g id="episode_title" example="Headline News">%2$s</xliff:g></string> + + <!-- The content description for an episode. It will be spoken by accessibility service when needed. + For example, "Season 1 Episode 1 Winter is coming". --> + <string name="content_description_episode_format">Season <xliff:g id="season_number" example="1">%1$s</xliff:g> Episode <xliff:g id="episode_number" example="1">%2$s</xliff:g> <xliff:g id="episode_title" example="Winter is Coming">%3$s</xliff:g></string> + <!-- The content description for an episode. It will be spoken by accessibility service when needed. + For example, "Episode 1807 Headline News". --> + <string name="content_description_episode_format_no_season_number">Episode <xliff:g id="episode_number" example="1807">%1$s</xliff:g> <xliff:g id="episode_title" example="Headline News">%2$s</xliff:g></string> + <!-- Program title with season and episode number used in DVR card views. HTML tag <i> is a placeholder for styling episode number part. "S" is an abbreviation for Season and "Ep." is an abbreviation for episode. ":" is used as a separator. diff --git a/src/com/android/tv/data/BaseProgram.java b/src/com/android/tv/data/BaseProgram.java index dba18fba..0fb1e58d 100644 --- a/src/com/android/tv/data/BaseProgram.java +++ b/src/com/android/tv/data/BaseProgram.java @@ -117,6 +117,35 @@ public abstract class BaseProgram { 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. */ public abstract String getDescription(); |