diff options
| -rw-r--r-- | media/java/android/media/tv/TvInputManager.java | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/media/java/android/media/tv/TvInputManager.java b/media/java/android/media/tv/TvInputManager.java index 45aa6d6916fb..13937e2dd7b0 100644 --- a/media/java/android/media/tv/TvInputManager.java +++ b/media/java/android/media/tv/TvInputManager.java @@ -1170,16 +1170,19 @@ public final class TvInputManager { */ public void selectTrack(int type, String trackId) { if (type == TvTrackInfo.TYPE_AUDIO) { - if (trackId != null && !mAudioTracks.contains(trackId)) { + if (trackId != null && !containsTrack(mAudioTracks, trackId)) { Log.w(TAG, "Invalid audio trackId: " + trackId); + return; } } else if (type == TvTrackInfo.TYPE_VIDEO) { - if (trackId != null && !mVideoTracks.contains(trackId)) { + if (trackId != null && !containsTrack(mVideoTracks, trackId)) { Log.w(TAG, "Invalid video trackId: " + trackId); + return; } } else if (type == TvTrackInfo.TYPE_SUBTITLE) { - if (trackId != null && !mSubtitleTracks.contains(trackId)) { + if (trackId != null && !containsTrack(mSubtitleTracks, trackId)) { Log.w(TAG, "Invalid subtitle trackId: " + trackId); + return; } } else { throw new IllegalArgumentException("invalid type: " + type); @@ -1195,6 +1198,15 @@ public final class TvInputManager { } } + private boolean containsTrack(List<TvTrackInfo> tracks, String trackId) { + for (TvTrackInfo track : tracks) { + if (track.getId().equals(trackId)) { + return true; + } + } + return false; + } + /** * Returns the list of tracks for a given type. Returns {@code null} if the information is * not available. |