aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/MainActivity.java
diff options
context:
space:
mode:
authorShraddha Basantwani <shraddha.basantwani@ittiam.com>2019-11-13 16:02:21 +0530
committernchalko <nchalko@google.com>2019-11-13 23:39:42 +0000
commitb367a4876e0c63c4139c5405400bff29aa6ffe8b (patch)
tree3bdda3da34d23ad953fae7a2f4eb0edf535ba435 /src/com/android/tv/MainActivity.java
parent3533511bf2640aac59b51eac92e23d7f957dd1f3 (diff)
downloadTV-b367a4876e0c63c4139c5405400bff29aa6ffe8b.tar.gz
Refactor Caption Track Selection
Test: m LiveTv Bug: 133225624 Change-Id: I8fab03ee7104cc8927f82125e9c04b8832bda26a
Diffstat (limited to 'src/com/android/tv/MainActivity.java')
-rw-r--r--src/com/android/tv/MainActivity.java35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/com/android/tv/MainActivity.java b/src/com/android/tv/MainActivity.java
index aeb51da4..62fc0cee 100644
--- a/src/com/android/tv/MainActivity.java
+++ b/src/com/android/tv/MainActivity.java
@@ -1975,25 +1975,12 @@ public class MainActivity extends Activity
mTvView.setClosedCaptionEnabled(enabled);
String selectedTrackId = getSelectedTrack(TvTrackInfo.TYPE_SUBTITLE);
- TvTrackInfo alternativeTrack = null;
- int alternativeTrackIndex = UNDEFINED_TRACK_INDEX;
if (enabled) {
String language = mCaptionSettings.getLanguage();
String trackId = mCaptionSettings.getTrackId();
- for (int i = 0; i < tracks.size(); i++) {
- TvTrackInfo track = tracks.get(i);
- if (Utils.isEqualLanguage(track.getLanguage(), language)) {
- if (track.getId().equals(trackId)) {
- selectCaptionTrack(selectedTrackId, track, i);
- return;
- } else if (alternativeTrack == null) {
- alternativeTrack = track;
- alternativeTrackIndex = i;
- }
- }
- }
- if (alternativeTrack != null) {
- selectCaptionTrack(selectedTrackId, alternativeTrack, alternativeTrackIndex);
+ int bestTrackIndex = findBestCaptionTrackIndex(tracks, language, trackId);
+ if (bestTrackIndex != UNDEFINED_TRACK_INDEX) {
+ selectCaptionTrack(selectedTrackId, tracks.get(bestTrackIndex), bestTrackIndex);
return;
}
}
@@ -2569,6 +2556,22 @@ public class MainActivity extends Activity
return mTvView.getSelectedTrack(type);
}
+ private static int findBestCaptionTrackIndex(
+ List<TvTrackInfo> tracks, String selectedLanguage, String selectedTrackId) {
+ int alternativeTrackIndex = UNDEFINED_TRACK_INDEX;
+ for (int i = 0; i < tracks.size(); i++) {
+ TvTrackInfo track = tracks.get(i);
+ if (Utils.isEqualLanguage(track.getLanguage(), selectedLanguage)) {
+ if (track.getId().equals(selectedTrackId)) {
+ return i;
+ } else if (alternativeTrackIndex == UNDEFINED_TRACK_INDEX) {
+ alternativeTrackIndex = i;
+ }
+ }
+ }
+ return alternativeTrackIndex;
+ }
+
private void selectTrack(int type, TvTrackInfo track, int trackIndex) {
mTvView.selectTrack(type, track == null ? null : track.getId());
if (type == TvTrackInfo.TYPE_AUDIO) {