Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 10d285ac authored by Jae Seo's avatar Jae Seo
Browse files

TIF: Make selected tracks identifiable

A recent change on the multi-track API surfaced an issue that it's hard to
identify selected tracks from the list of tracks obtained from
TvView.getTracks() method, especially when two or more tracks convey the same
track information (e.g. two English stereo audio tracks with the same sample
rate). This change introduced a new public method getId() in TvTrackInfo that
returns an ID with which one can identify the tracks uniquely. It also led to
minor signature changes across the multi-track API to make it more
developer-friendly in both application and TV input service developers'
perspectives.

Change-Id: I226f75e697b0ce52b44db7471660f6d9f646f6f9
parent 781c29c9
Loading
Loading
Loading
Loading
+10 −11
Original line number Diff line number Diff line
@@ -17067,8 +17067,8 @@ package android.media.tv {
    method public void notifyChannelRetuned(android.net.Uri);
    method public void notifyContentAllowed();
    method public void notifyContentBlocked(android.media.tv.TvContentRating);
    method public void notifyTrackInfoChanged(java.util.List<android.media.tv.TvTrackInfo>);
    method public void notifyTrackSelectionChanged(java.util.List<android.media.tv.TvTrackInfo>);
    method public void notifyTrackSelected(int, java.lang.String);
    method public void notifyTracksChanged(java.util.List<android.media.tv.TvTrackInfo>);
    method public void notifyVideoAvailable();
    method public void notifyVideoUnavailable(int);
    method public android.view.View onCreateOverlayView();
@@ -17078,7 +17078,7 @@ package android.media.tv {
    method public boolean onKeyMultiple(int, int, android.view.KeyEvent);
    method public boolean onKeyUp(int, android.view.KeyEvent);
    method public abstract void onRelease();
    method public boolean onSelectTrack(android.media.tv.TvTrackInfo);
    method public boolean onSelectTrack(int, java.lang.String);
    method public abstract void onSetCaptionEnabled(boolean);
    method public abstract void onSetStreamVolume(float);
    method public abstract boolean onSetSurface(android.view.Surface);
@@ -17087,7 +17087,6 @@ package android.media.tv {
    method public boolean onTrackballEvent(android.view.MotionEvent);
    method public abstract boolean onTune(android.net.Uri);
    method public void onUnblockContent(android.media.tv.TvContentRating);
    method public boolean onUnselectTrack(android.media.tv.TvTrackInfo);
    method public void setOverlayViewEnabled(boolean);
  }
@@ -17096,6 +17095,7 @@ package android.media.tv {
    method public final int getAudioChannelCount();
    method public final int getAudioSampleRate();
    method public final android.os.Bundle getExtra();
    method public final java.lang.String getId();
    method public final java.lang.String getLanguage();
    method public final int getType();
    method public final int getVideoHeight();
@@ -17108,7 +17108,7 @@ package android.media.tv {
  }
  public static final class TvTrackInfo.Builder {
    ctor public TvTrackInfo.Builder(int);
    ctor public TvTrackInfo.Builder(int, java.lang.String);
    method public android.media.tv.TvTrackInfo build();
    method public final android.media.tv.TvTrackInfo.Builder setAudioChannelCount(int);
    method public final android.media.tv.TvTrackInfo.Builder setAudioSampleRate(int);
@@ -17123,18 +17123,17 @@ package android.media.tv {
    ctor public TvView(android.content.Context, android.util.AttributeSet);
    ctor public TvView(android.content.Context, android.util.AttributeSet, int);
    method public boolean dispatchUnhandledInputEvent(android.view.InputEvent);
    method public java.util.List<android.media.tv.TvTrackInfo> getSelectedTracks();
    method public java.util.List<android.media.tv.TvTrackInfo> getTracks();
    method public java.lang.String getSelectedTrack(int);
    method public java.util.List<android.media.tv.TvTrackInfo> getTracks(int);
    method protected void onLayout(boolean, int, int, int, int);
    method public boolean onUnhandledInputEvent(android.view.InputEvent);
    method public void reset();
    method public void selectTrack(android.media.tv.TvTrackInfo);
    method public void selectTrack(int, java.lang.String);
    method public void setCaptionEnabled(boolean);
    method public void setOnUnhandledInputEventListener(android.media.tv.TvView.OnUnhandledInputEventListener);
    method public void setStreamVolume(float);
    method public void setTvInputListener(android.media.tv.TvView.TvInputListener);
    method public void tune(java.lang.String, android.net.Uri);
    method public void unselectTrack(android.media.tv.TvTrackInfo);
    field public static final int ERROR_INPUT_DISCONNECTED = 1; // 0x1
    field public static final int ERROR_INPUT_NOT_CONNECTED = 0; // 0x0
  }
@@ -17149,8 +17148,8 @@ package android.media.tv {
    method public void onContentAllowed(java.lang.String);
    method public void onContentBlocked(java.lang.String, android.media.tv.TvContentRating);
    method public void onError(java.lang.String, int);
    method public void onTrackInfoChanged(java.lang.String, java.util.List<android.media.tv.TvTrackInfo>);
    method public void onTrackSelectionChanged(java.lang.String, java.util.List<android.media.tv.TvTrackInfo>);
    method public void onTrackSelected(java.lang.String, int, java.lang.String);
    method public void onTracksChanged(java.lang.String, java.util.List<android.media.tv.TvTrackInfo>);
    method public void onVideoAvailable(java.lang.String);
    method public void onVideoSizeChanged(java.lang.String, int, int);
    method public void onVideoUnavailable(java.lang.String, int);
+2 −2
Original line number Diff line number Diff line
@@ -33,8 +33,8 @@ oneway interface ITvInputClient {
    void onSessionReleased(int seq);
    void onSessionEvent(in String name, in Bundle args, int seq);
    void onChannelRetuned(in Uri channelUri, int seq);
    void onTrackInfoChanged(in List<TvTrackInfo> tracks, int seq);
    void onTrackSelectionChanged(in List<TvTrackInfo> selectedTracks, int seq);
    void onTracksChanged(in List<TvTrackInfo> tracks, int seq);
    void onTrackSelected(int type, in String trackId, int seq);
    void onVideoAvailable(int seq);
    void onVideoUnavailable(int reason, int seq);
    void onContentAllowed(int seq);
+1 −2
Original line number Diff line number Diff line
@@ -60,8 +60,7 @@ interface ITvInputManager {
    void setVolume(in IBinder sessionToken, float volume, int userId);
    void tune(in IBinder sessionToken, in Uri channelUri, in Bundle params, int userId);
    void setCaptionEnabled(in IBinder sessionToken, boolean enabled, int userId);
    void selectTrack(in IBinder sessionToken, in TvTrackInfo track, int userId);
    void unselectTrack(in IBinder sessionToken, in TvTrackInfo track, int userId);
    void selectTrack(in IBinder sessionToken, int type, in String trackId, int userId);

    void sendAppPrivateCommand(in IBinder sessionToken, in String action, in Bundle data,
            int userId);
+1 −2
Original line number Diff line number Diff line
@@ -37,8 +37,7 @@ oneway interface ITvInputSession {
    void setVolume(float volume);
    void tune(in Uri channelUri, in Bundle params);
    void setCaptionEnabled(boolean enabled);
    void selectTrack(in TvTrackInfo track);
    void unselectTrack(in TvTrackInfo track);
    void selectTrack(int type, in String trackId);

    void appPrivateCommand(in String action, in Bundle data);

+2 −2
Original line number Diff line number Diff line
@@ -30,8 +30,8 @@ oneway interface ITvInputSessionCallback {
    void onSessionCreated(ITvInputSession session);
    void onSessionEvent(in String name, in Bundle args);
    void onChannelRetuned(in Uri channelUri);
    void onTrackInfoChanged(in List<TvTrackInfo> tracks);
    void onTrackSelectionChanged(in List<TvTrackInfo> selectedTracks);
    void onTracksChanged(in List<TvTrackInfo> tracks);
    void onTrackSelected(int type, in String trackId);
    void onVideoAvailable();
    void onVideoUnavailable(int reason);
    void onContentAllowed();
Loading