diff options
author | Shraddha Basantwani <shraddha.basantwani@ittiam.com> | 2019-11-13 16:02:21 +0530 |
---|---|---|
committer | nchalko <nchalko@google.com> | 2019-11-13 23:39:42 +0000 |
commit | b367a4876e0c63c4139c5405400bff29aa6ffe8b (patch) | |
tree | 3bdda3da34d23ad953fae7a2f4eb0edf535ba435 /src/com/android/tv/MainActivity.java | |
parent | 3533511bf2640aac59b51eac92e23d7f957dd1f3 (diff) | |
download | TV-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.java | 35 |
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) { |