diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-10-05 07:30:20 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-10-05 07:30:20 +0000 |
commit | bb2e798ef4d546dd54cd9e95796403062b860c15 (patch) | |
tree | d31e2adc1f9cce4f27ca07d30bee921032e33a3c /src/com/android/tv/ui/sidepanel/ClosedCaptionFragment.java | |
parent | bc7f430decab0bc34a533811efe457d4615f28aa (diff) | |
parent | 6ebde20b03db4c0d57f67acaac11832b610b966b (diff) | |
download | TV-a83b846918b782fee53521da5ee1d3e2e926278c.tar.gz |
Snap for 4378450 from 6ebde20b03db4c0d57f67acaac11832b610b966b to oc-mr1-releaseandroid-wear-8.1.0_r1android-vts-8.1_r9android-vts-8.1_r8android-vts-8.1_r7android-vts-8.1_r6android-vts-8.1_r5android-vts-8.1_r4android-vts-8.1_r3android-vts-8.1_r14android-vts-8.1_r13android-vts-8.1_r12android-vts-8.1_r11android-vts-8.1_r10android-security-8.1.0_r93android-security-8.1.0_r92android-security-8.1.0_r91android-security-8.1.0_r90android-security-8.1.0_r89android-security-8.1.0_r88android-security-8.1.0_r87android-security-8.1.0_r86android-security-8.1.0_r85android-security-8.1.0_r84android-security-8.1.0_r83android-security-8.1.0_r82android-cts-8.1_r9android-cts-8.1_r8android-cts-8.1_r7android-cts-8.1_r6android-cts-8.1_r5android-cts-8.1_r4android-cts-8.1_r3android-cts-8.1_r25android-cts-8.1_r24android-cts-8.1_r23android-cts-8.1_r22android-cts-8.1_r21android-cts-8.1_r20android-cts-8.1_r2android-cts-8.1_r19android-cts-8.1_r18android-cts-8.1_r17android-cts-8.1_r16android-cts-8.1_r15android-cts-8.1_r14android-cts-8.1_r13android-cts-8.1_r12android-cts-8.1_r11android-cts-8.1_r10android-cts-8.1_r1android-8.1.0_r81android-8.1.0_r80android-8.1.0_r79android-8.1.0_r78android-8.1.0_r77android-8.1.0_r76android-8.1.0_r75android-8.1.0_r74android-8.1.0_r73android-8.1.0_r72android-8.1.0_r71android-8.1.0_r70android-8.1.0_r69android-8.1.0_r68android-8.1.0_r66android-8.1.0_r6android-8.1.0_r5android-8.1.0_r4android-8.1.0_r3android-8.1.0_r23android-8.1.0_r19android-8.1.0_r16android-8.1.0_r15android-8.1.0_r12android-8.1.0_r11android-8.1.0_r10android-8.1.0_r1security-oc-mr1-releaseoreo-mr1-wear-releaseoreo-mr1-vts-releaseoreo-mr1-security-releaseoreo-mr1-s1-releaseoreo-mr1-releaseoreo-mr1-cuttlefish-testingoreo-mr1-cts-releaseoreo-m4-s1-release
Change-Id: I07f19344c030a9c2b0fd7ba425f7bf7462575f92
Diffstat (limited to 'src/com/android/tv/ui/sidepanel/ClosedCaptionFragment.java')
-rw-r--r-- | src/com/android/tv/ui/sidepanel/ClosedCaptionFragment.java | 108 |
1 files changed, 31 insertions, 77 deletions
diff --git a/src/com/android/tv/ui/sidepanel/ClosedCaptionFragment.java b/src/com/android/tv/ui/sidepanel/ClosedCaptionFragment.java index d6ccdf6b..341e4350 100644 --- a/src/com/android/tv/ui/sidepanel/ClosedCaptionFragment.java +++ b/src/com/android/tv/ui/sidepanel/ClosedCaptionFragment.java @@ -18,6 +18,7 @@ package com.android.tv.ui.sidepanel; import android.media.tv.TvTrackInfo; import android.os.Bundle; +import android.text.TextUtils; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; @@ -25,7 +26,6 @@ import android.view.ViewGroup; import com.android.tv.R; import com.android.tv.util.CaptionSettings; -import com.android.tv.util.Utils; import java.util.ArrayList; import java.util.List; @@ -38,8 +38,6 @@ public class ClosedCaptionFragment extends SideFragment { private String mClosedCaptionLanguage; private String mClosedCaptionTrackId; private ClosedCaptionOptionItem mSelectedItem; - private List<Item> mItems; - private boolean mPaused; public ClosedCaptionFragment() { super(KeyEvent.KEYCODE_CAPTIONS, KeyEvent.KEYCODE_S); @@ -63,37 +61,32 @@ public class ClosedCaptionFragment extends SideFragment { mClosedCaptionLanguage = captionSettings.getLanguage(); mClosedCaptionTrackId = captionSettings.getTrackId(); - mItems = new ArrayList<>(); + List<Item> items = new ArrayList<>(); mSelectedItem = null; List<TvTrackInfo> tracks = getMainActivity().getTracks(TvTrackInfo.TYPE_SUBTITLE); if (tracks != null && !tracks.isEmpty()) { - String trackId = captionSettings.isEnabled() ? + String selectedTrackId = captionSettings.isEnabled() ? getMainActivity().getSelectedTrack(TvTrackInfo.TYPE_SUBTITLE) : null; - boolean isEnabled = trackId != null; - - ClosedCaptionOptionItem item = new ClosedCaptionOptionItem( - getString(R.string.closed_caption_option_item_off), - CaptionSettings.OPTION_OFF, null, null); - // Pick 'Off' as default because we may fail to find the matching language. - mSelectedItem = item; - if (!isEnabled) { + ClosedCaptionOptionItem item = new ClosedCaptionOptionItem(null, null); + items.add(item); + if (selectedTrackId == null) { + mSelectedItem = item; item.setChecked(true); + setSelectedPosition(0); } - mItems.add(item); - - for (final TvTrackInfo track : tracks) { - item = new ClosedCaptionOptionItem(getLabel(track), - CaptionSettings.OPTION_ON, track.getId(), track.getLanguage()); - if (isEnabled && track.getId().equals(trackId)) { - item.setChecked(true); + for (int i = 0; i < tracks.size(); i++) { + item = new ClosedCaptionOptionItem(tracks.get(i), i); + if (TextUtils.equals(selectedTrackId, tracks.get(i).getId())) { mSelectedItem = item; + item.setChecked(true); + setSelectedPosition(i + 1); } - mItems.add(item); + items.add(item); } } if (getMainActivity().hasCaptioningSettingsActivity()) { - mItems.add(new ActionItem(getString(R.string.closed_caption_system_settings), + items.add(new ActionItem(getString(R.string.closed_caption_system_settings), getString(R.string.closed_caption_system_settings_description)) { @Override protected void onSelected() { @@ -103,14 +96,14 @@ public class ClosedCaptionFragment extends SideFragment { @Override protected void onFocused() { super.onFocused(); - if (!mPaused && mSelectedItem != null) { + if (mSelectedItem != null) { getMainActivity().selectSubtitleTrack( mSelectedItem.mOption, mSelectedItem.mTrackId); } } }); } - return mItems; + return items; } @Override @@ -120,50 +113,6 @@ public class ClosedCaptionFragment extends SideFragment { } @Override - public void onResume() { - super.onResume(); - if (mPaused) { - // Apply system's closed caption settings to the UI. - CaptionSettings captionSettings = getMainActivity().getCaptionSettings(); - mClosedCaptionOption = CaptionSettings.OPTION_SYSTEM; - mClosedCaptionLanguage = captionSettings.getSystemLanguage(); - ClosedCaptionOptionItem selectedItem = null; - if (captionSettings.isSystemSettingEnabled()) { - for (Item item : mItems) { - if (!(item instanceof ClosedCaptionOptionItem)) { - continue; - } - ClosedCaptionOptionItem captionItem = (ClosedCaptionOptionItem) item; - if (Utils.isEqualLanguage(captionItem.mLanguage, mClosedCaptionLanguage)) { - selectedItem = captionItem; - break; - } - } - } - if (mSelectedItem != null) { - mSelectedItem.setChecked(false); - } - if (selectedItem == null && mItems.get(0) instanceof ClosedCaptionOptionItem) { - selectedItem = (ClosedCaptionOptionItem) mItems.get(0); - } - if (selectedItem != null) { - selectedItem.setChecked(true); - } - // We shouldn't call MainActivity.selectSubtitleTrack() here because - // 1. Tracks are not available because video is just started at this moment. - // 2. MainActivity will apply system settings when video's tracks are available. - mSelectedItem = selectedItem; - } - mPaused = false; - } - - @Override - public void onPause() { - super.onPause(); - mPaused = true; - } - - @Override public void onDestroyView() { if (mResetClosedCaption) { getMainActivity().selectSubtitleLanguage(mClosedCaptionOption, mClosedCaptionLanguage, @@ -172,23 +121,28 @@ public class ClosedCaptionFragment extends SideFragment { super.onDestroyView(); } - private String getLabel(TvTrackInfo track) { - if (track.getLanguage() != null) { + private String getLabel(TvTrackInfo track, Integer trackIndex) { + if (track == null) { + return getString(R.string.closed_caption_option_item_off); + } else if (track.getLanguage() != null) { return new Locale(track.getLanguage()).getDisplayName(); } - return getString(R.string.default_language); + return getString(R.string.closed_caption_unknown_language, trackIndex + 1); } private class ClosedCaptionOptionItem extends RadioButtonItem { private final int mOption; private final String mTrackId; - private final String mLanguage; - private ClosedCaptionOptionItem(String title, int option, String trackId, String language) { - super(title); - mOption = option; - mTrackId = trackId; - mLanguage = language; + private ClosedCaptionOptionItem(TvTrackInfo track, Integer trackIndex) { + super(getLabel(track, trackIndex)); + if (track == null) { + mOption = CaptionSettings.OPTION_OFF; + mTrackId = null; + } else { + mOption = CaptionSettings.OPTION_ON; + mTrackId = track.getId(); + } } @Override |