aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/data/BaseProgram.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/tv/data/BaseProgram.java')
-rw-r--r--src/com/android/tv/data/BaseProgram.java183
1 files changed, 88 insertions, 95 deletions
diff --git a/src/com/android/tv/data/BaseProgram.java b/src/com/android/tv/data/BaseProgram.java
index 4e36c80a..0fb1e58d 100644
--- a/src/com/android/tv/data/BaseProgram.java
+++ b/src/com/android/tv/data/BaseProgram.java
@@ -20,14 +20,12 @@ import android.content.Context;
import android.media.tv.TvContentRating;
import android.support.annotation.Nullable;
import android.text.TextUtils;
-
import com.android.tv.R;
-
import java.util.Comparator;
/**
- * Base class for {@link com.android.tv.data.Program} and
- * {@link com.android.tv.dvr.data.RecordedProgram}.
+ * Base class for {@link com.android.tv.data.Program} and {@link
+ * com.android.tv.dvr.data.RecordedProgram}.
*/
public abstract class BaseProgram {
/**
@@ -35,8 +33,7 @@ public abstract class BaseProgram {
* If a program's season or episode number is null, it will be consider "smaller" than programs
* with season or episode numbers.
*/
- public static final Comparator<BaseProgram> EPISODE_COMPARATOR =
- new EpisodeComparator(false);
+ public static final Comparator<BaseProgram> EPISODE_COMPARATOR = new EpisodeComparator(false);
/**
* Comparator used to compare {@link BaseProgram} according to its season and episodes number
@@ -58,8 +55,7 @@ public abstract class BaseProgram {
if (lhs == rhs) {
return 0;
}
- int seasonNumberCompare =
- numberCompare(lhs.getSeasonNumber(), rhs.getSeasonNumber());
+ int seasonNumberCompare = numberCompare(lhs.getSeasonNumber(), rhs.getSeasonNumber());
if (seasonNumberCompare != 0) {
return mReversedSeason ? -seasonNumberCompare : seasonNumberCompare;
} else {
@@ -68,9 +64,7 @@ public abstract class BaseProgram {
}
}
- /**
- * Compares two strings represent season numbers or episode numbers of programs.
- */
+ /** Compares two strings represent season numbers or episode numbers of programs. */
public static int numberCompare(String s1, String s2) {
if (s1 == s2) {
return 0;
@@ -88,121 +82,120 @@ public abstract class BaseProgram {
}
}
- /**
- * Returns ID of the program.
- */
- abstract public long getId();
+ /** Returns ID of the program. */
+ public abstract long getId();
- /**
- * Returns the title of the program.
- */
- abstract public String getTitle();
+ /** Returns the title of the program. */
+ public abstract String getTitle();
- /**
- * Returns the episode title.
- */
- abstract public String getEpisodeTitle();
+ /** Returns the episode title. */
+ public abstract String getEpisodeTitle();
- /**
- * Returns the displayed title of the program episode.
- */
+ /** 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 description of the program.
- */
- abstract public String getDescription();
+ * 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 long description of the program.
- */
- abstract public String getLongDescription();
+ /** Returns the description of the program. */
+ public abstract String getDescription();
- /**
- * Returns the start time of the program in Milliseconds.
- */
- abstract public long getStartTimeUtcMillis();
+ /** Returns the long description of the program. */
+ public abstract String getLongDescription();
- /**
- * Returns the end time of the program in Milliseconds.
- */
- abstract public long getEndTimeUtcMillis();
+ /** Returns the start time of the program in Milliseconds. */
+ public abstract long getStartTimeUtcMillis();
- /**
- * Returns the duration of the program in Milliseconds.
- */
- abstract public long getDurationMillis();
+ /** Returns the end time of the program in Milliseconds. */
+ public abstract long getEndTimeUtcMillis();
- /**
- * Returns the series ID.
- */
- abstract public String getSeriesId();
+ /** Returns the duration of the program in Milliseconds. */
+ public abstract long getDurationMillis();
- /**
- * Returns the season number.
- */
- abstract public String getSeasonNumber();
+ /** Returns the series ID. */
+ public abstract String getSeriesId();
- /**
- * Returns the episode number.
- */
- abstract public String getEpisodeNumber();
+ /** Returns the season number. */
+ public abstract String getSeasonNumber();
- /**
- * Returns URI of the program's poster.
- */
- abstract public String getPosterArtUri();
+ /** Returns the episode number. */
+ public abstract String getEpisodeNumber();
- /**
- * Returns URI of the program's thumbnail.
- */
- abstract public String getThumbnailUri();
+ /** Returns URI of the program's poster. */
+ public abstract String getPosterArtUri();
- /**
- * Returns the array of the ID's of the canonical genres.
- */
- abstract public int[] getCanonicalGenreIds();
+ /** Returns URI of the program's thumbnail. */
+ public abstract String getThumbnailUri();
+
+ /** Returns the array of the ID's of the canonical genres. */
+ public abstract int[] getCanonicalGenreIds();
/** Returns the array of content ratings. */
@Nullable
- abstract public TvContentRating[] getContentRatings();
+ public abstract TvContentRating[] getContentRatings();
- /**
- * Returns channel's ID of the program.
- */
- abstract public long getChannelId();
+ /** Returns channel's ID of the program. */
+ public abstract long getChannelId();
- /**
- * Returns if the program is valid.
- */
- abstract public boolean isValid();
+ /** Returns if the program is valid. */
+ public abstract boolean isValid();
- /**
- * Checks whether the program is episodic or not.
- */
+ /** Checks whether the program is episodic or not. */
public boolean isEpisodic() {
return getSeriesId() != null;
}
- /**
- * Generates the series ID for the other inputs than the tuner TV input.
- */
+ /** Generates the series ID for the other inputs than the tuner TV input. */
public static String generateSeriesId(String packageName, String title) {
return packageName + "/" + title;
}
-} \ No newline at end of file
+}