diff options
author | Dongwon Kang <dwkang@google.com> | 2014-08-04 14:04:29 +0900 |
---|---|---|
committer | Jae Seo <jaeseo@google.com> | 2014-08-05 14:50:45 -0700 |
commit | ec9bd88036279df7421321b2e9945adf8f89db4b (patch) | |
tree | 0ef7a9f9e81cbe7d9fce582a7a996c47bd06f5ea /src | |
parent | 5f496abf04ad5de1df0fd371f1f61a445bc70c6b (diff) | |
download | TV-ec9bd88036279df7421321b2e9945adf8f89db4b.tar.gz |
Applying framework change for making selected tracks identifiable in TV and sample app.
Related chage: I226f75e697b0ce52b44db7471660f6d9f646f6f9
Change-Id: Ibeed892624a9675c59613148d47b77d3f857cc9b
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/tv/TvActivity.java | 13 | ||||
-rw-r--r-- | src/com/android/tv/ui/TunableTvView.java | 57 |
2 files changed, 46 insertions, 24 deletions
diff --git a/src/com/android/tv/TvActivity.java b/src/com/android/tv/TvActivity.java index 770ad0b8..e5127afc 100644 --- a/src/com/android/tv/TvActivity.java +++ b/src/com/android/tv/TvActivity.java @@ -1228,14 +1228,11 @@ public class TvActivity extends Activity implements AudioManager.OnAudioFocusCha // For now, we just select the first subtitle track. // TODO: show audio/subtitle language options to user and handle the user's // selection. - List<TvTrackInfo> tracks = mTvView.getTracks(); - for (TvTrackInfo track : tracks) { - Log.d(TAG, "lang - " + track.getLanguage()); - if (track.getType() == TvTrackInfo.TYPE_SUBTITLE) { - Log.d(TAG, "selectTrack " + track); - mTvView.selectTrack(track); - break; - } + List<TvTrackInfo> tracks = mTvView.getTracks(TvTrackInfo.TYPE_SUBTITLE); + if (!tracks.isEmpty()) { + Log.d(TAG, "lang - " + tracks.get(0).getLanguage()); + Log.d(TAG, "selectTrack " + tracks.get(0)); + mTvView.selectTrack(TvTrackInfo.TYPE_SUBTITLE, tracks.get(0).getId()); } return true; } diff --git a/src/com/android/tv/ui/TunableTvView.java b/src/com/android/tv/ui/TunableTvView.java index b0db3a1d..141a340c 100644 --- a/src/com/android/tv/ui/TunableTvView.java +++ b/src/com/android/tv/ui/TunableTvView.java @@ -95,26 +95,51 @@ public class TunableTvView extends FrameLayout implements StreamInfo { } @Override - public void onTrackInfoChanged(String inputId, List<TvTrackInfo> tracks) { + public void onTracksChanged(String inputId, List<TvTrackInfo> tracks) { + mHasClosedCaption = false; + for (TvTrackInfo track : tracks) { + if (track.getType() == TvTrackInfo.TYPE_SUBTITLE) { + mHasClosedCaption = true; + break; + } + } if (mOnTuneListener != null) { mOnTuneListener.onStreamInfoChanged(TunableTvView.this); } } @Override - public void onTrackSelectionChanged(String inputId, - List<TvTrackInfo> selectedTracks) { - for (TvTrackInfo track : selectedTracks) { - int type = track.getType(); + public void onTrackSelected(String inputId, int type, String trackId) { + if (trackId == null) { + // A track is unselected. if (type == TvTrackInfo.TYPE_VIDEO) { - mVideoWidth = track.getVideoWidth(); - mVideoHeight = track.getVideoHeight(); - mVideoFormat = Utils.getVideoDefinitionLevelFromSize( - mVideoWidth, mVideoHeight); + mVideoWidth = 0; + mVideoHeight = 0; + mVideoFormat = StreamInfo.VIDEO_DEFINITION_LEVEL_UNKNOWN; } else if (type == TvTrackInfo.TYPE_AUDIO) { - mAudioChannelCount = track.getAudioChannelCount(); - } else if (type == TvTrackInfo.TYPE_SUBTITLE) { - mHasClosedCaption = true; + mAudioChannelCount = StreamInfo.AUDIO_CHANNEL_COUNT_UNKNOWN; + } + } else { + List<TvTrackInfo> tracks = getTracks(type); + boolean trackFound = false; + if (tracks != null) { + for (TvTrackInfo track : getTracks(type)) { + if (track.getId().equals(trackId)) { + if (type == TvTrackInfo.TYPE_VIDEO) { + mVideoWidth = track.getVideoWidth(); + mVideoHeight = track.getVideoHeight(); + mVideoFormat = Utils.getVideoDefinitionLevelFromSize( + mVideoWidth, mVideoHeight); + } else if (type == TvTrackInfo.TYPE_AUDIO) { + mAudioChannelCount = track.getAudioChannelCount(); + } + trackFound = true; + break; + } + } + } + if (!trackFound) { + Log.w(TAG, "Invalid track ID: " + trackId); } } if (mOnTuneListener != null) { @@ -316,12 +341,12 @@ public class TunableTvView extends FrameLayout implements StreamInfo { mTvView.setOnUnhandledInputEventListener(listener); } - public List<TvTrackInfo> getTracks() { - return mTvView.getTracks(); + public List<TvTrackInfo> getTracks(int type) { + return mTvView.getTracks(type); } - public void selectTrack(TvTrackInfo track) { - mTvView.selectTrack(track); + public void selectTrack(int type, String trackId) { + mTvView.selectTrack(type, trackId); } private void block(int reason) { |