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

Commit ce20ee54 authored by Jae Seo's avatar Jae Seo Committed by Android Git Automerger
Browse files

am b3e54101: TIF: Make TvTrackInfo methods more explicit.

* commit 'b3e541017acd52ea405e04662834694f6aa30987':
  TIF: Make TvTrackInfo methods more explicit.
parents 0d50b99e d5ce9759
Loading
Loading
Loading
Loading
+20 −20
Original line number Diff line number Diff line
@@ -17065,6 +17065,7 @@ package android.media.tv {
    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 notifyVideoAvailable();
    method public void notifyVideoUnavailable(int);
    method public android.view.View onCreateOverlayView();
@@ -17088,33 +17089,30 @@ package android.media.tv {
  }
  public final class TvTrackInfo implements android.os.Parcelable {
    method public boolean containsKey(java.lang.String);
    method public int describeContents();
    method public boolean getBoolean(java.lang.String);
    method public int getInt(java.lang.String);
    method public java.lang.String getString(java.lang.String);
    method public final int getAudioChannelCount();
    method public final int getAudioSampleRate();
    method public final android.os.Bundle getExtra();
    method public final java.lang.String getLanguage();
    method public final int getType();
    method public final int getVideoHeight();
    method public final int getVideoWidth();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator CREATOR;
    field public static final java.lang.String KEY_CHANNEL_COUNT = "channel-count";
    field public static final java.lang.String KEY_HEIGHT = "height";
    field public static final java.lang.String KEY_IS_SELECTED = "is-selected";
    field public static final java.lang.String KEY_LANGUAGE = "language";
    field public static final java.lang.String KEY_SAMPLE_RATE = "sample-rate";
    field public static final java.lang.String KEY_TAG = "tag";
    field public static final java.lang.String KEY_TYPE = "type";
    field public static final java.lang.String KEY_WIDTH = "width";
    field public static final int VALUE_TYPE_AUDIO = 0; // 0x0
    field public static final int VALUE_TYPE_SUBTITLE = 2; // 0x2
    field public static final int VALUE_TYPE_VIDEO = 1; // 0x1
    field public static final int TYPE_AUDIO = 0; // 0x0
    field public static final int TYPE_SUBTITLE = 2; // 0x2
    field public static final int TYPE_VIDEO = 1; // 0x1
  }
  public static final class TvTrackInfo.Builder {
    ctor public TvTrackInfo.Builder(int, java.lang.String, boolean);
    ctor public TvTrackInfo.Builder(android.media.tv.TvTrackInfo);
    ctor public TvTrackInfo.Builder(int);
    method public android.media.tv.TvTrackInfo build();
    method public android.media.tv.TvTrackInfo.Builder putBoolean(java.lang.String, boolean);
    method public android.media.tv.TvTrackInfo.Builder putInt(java.lang.String, int);
    method public android.media.tv.TvTrackInfo.Builder putString(java.lang.String, java.lang.String);
    method public final android.media.tv.TvTrackInfo.Builder setAudioChannelCount(int);
    method public final android.media.tv.TvTrackInfo.Builder setAudioSampleRate(int);
    method public final android.media.tv.TvTrackInfo.Builder setExtra(android.os.Bundle);
    method public final android.media.tv.TvTrackInfo.Builder setLanguage(java.lang.String);
    method public final android.media.tv.TvTrackInfo.Builder setVideoHeight(int);
    method public final android.media.tv.TvTrackInfo.Builder setVideoWidth(int);
  }
  public class TvView extends android.view.ViewGroup {
@@ -17122,6 +17120,7 @@ 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 protected void onLayout(boolean, int, int, int, int);
    method public boolean onUnhandledInputEvent(android.view.InputEvent);
@@ -17148,6 +17147,7 @@ package android.media.tv {
    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 onVideoAvailable(java.lang.String);
    method public void onVideoSizeChanged(java.lang.String, int, int);
    method public void onVideoUnavailable(java.lang.String, int);
+1 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ oneway interface ITvInputClient {
    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 onVideoAvailable(int seq);
    void onVideoUnavailable(int reason, int seq);
    void onContentAllowed(int seq);
+1 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ oneway interface ITvInputSessionCallback {
    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 onVideoAvailable();
    void onVideoUnavailable(int reason);
    void onContentAllowed();
+47 −6
Original line number Diff line number Diff line
@@ -164,7 +164,7 @@ public final class TvInputManager {
         * This is called when the channel of this session is changed by the underlying TV input
         * with out any {@link TvInputManager.Session#tune(Uri)} request.
         *
         * @param session A {@link TvInputManager.Session} associated with this callback
         * @param session A {@link TvInputManager.Session} associated with this callback.
         * @param channelUri The URI of a channel.
         */
        public void onChannelRetuned(Session session, Uri channelUri) {
@@ -173,16 +173,25 @@ public final class TvInputManager {
        /**
         * This is called when the track information of the session has been changed.
         *
         * @param session A {@link TvInputManager.Session} associated with this callback
         * @param session A {@link TvInputManager.Session} associated with this callback.
         * @param tracks A list which includes track information.
         */
        public void onTrackInfoChanged(Session session, List<TvTrackInfo> tracks) {
        }

        /**
         * This is called when the video is available, so the TV input starts the playback.
         * This is called when there is a change on the selected tracks in this session.
         *
         * @param session A {@link TvInputManager.Session} associated with this callback
         * @param selectedTracks A list of selected tracks.
         */
        public void onTrackSelectionChanged(Session session, List<TvTrackInfo> selectedTracks) {
        }

        /**
         * This is called when the video is available, so the TV input starts the playback.
         *
         * @param session A {@link TvInputManager.Session} associated with this callback.
         */
        public void onVideoAvailable(Session session) {
        }
@@ -277,12 +286,22 @@ public final class TvInputManager {
            mHandler.post(new Runnable() {
                @Override
                public void run() {
                    mSession.setTracks(tracks);
                    mSession.mTracks = tracks;
                    mSessionCallback.onTrackInfoChanged(mSession, tracks);
                }
            });
        }

        public void postTrackSelectionChanged(final List<TvTrackInfo> selectedTracks) {
            mHandler.post(new Runnable() {
                @Override
                public void run() {
                    mSession.mSelectedTracks = selectedTracks;
                    mSessionCallback.onTrackSelectionChanged(mSession, selectedTracks);
                }
            });
        }

        public void postVideoAvailable() {
            mHandler.post(new Runnable() {
                @Override
@@ -468,6 +487,18 @@ public final class TvInputManager {
                }
            }

            @Override
            public void onTrackSelectionChanged(List<TvTrackInfo> selectedTracks, int seq) {
                synchronized (mSessionCallbackRecordMap) {
                    SessionCallbackRecord record = mSessionCallbackRecordMap.get(seq);
                    if (record == null) {
                        Log.e(TAG, "Callback not found for seq " + seq);
                        return;
                    }
                    record.postTrackSelectionChanged(selectedTracks);
                }
            }

            @Override
            public void onVideoAvailable(int seq) {
                synchronized (mSessionCallbackRecordMap) {
@@ -868,6 +899,7 @@ public final class TvInputManager {
        private TvInputEventSender mSender;
        private InputChannel mChannel;
        private List<TvTrackInfo> mTracks;
        private List<TvTrackInfo> mSelectedTracks;

        private Session(IBinder token, InputChannel channel, ITvInputManager service, int userId,
                int seq, SparseArray<SessionCallbackRecord> sessionCallbackRecordMap) {
@@ -1067,8 +1099,17 @@ public final class TvInputManager {
            return new ArrayList<TvTrackInfo>(mTracks);
        }

        private void setTracks(List<TvTrackInfo> tracks) {
            mTracks = tracks;
        /**
         * Returns a list of selected tracks May return {@code null} if the information is not
         * available.
         * @see #selectTrack(TvTrackInfo)
         * @see #unselectTrack(TvTrackInfo)
         */
        public List<TvTrackInfo> getSelectedTracks() {
            if (mSelectedTracks == null) {
                return null;
            }
            return new ArrayList<TvTrackInfo>(mSelectedTracks);
        }

        /**
+26 −10
Original line number Diff line number Diff line
@@ -325,10 +325,6 @@ public abstract class TvInputService extends Service {
         * @param tracks A list which includes track information.
         */
        public void notifyTrackInfoChanged(final List<TvTrackInfo> tracks) {
            if (!TvTrackInfo.checkSanity(tracks)) {
                throw new IllegalArgumentException(
                        "Two or more selected tracks for a track type.");
            }
            mHandler.post(new Runnable() {
                @Override
                public void run() {
@@ -342,6 +338,28 @@ public abstract class TvInputService extends Service {
            });
        }

        /**
         * Sends the list of selected tracks. This is expected to be called whenever there is a
         * change on track selection.
         *
         * @param selectedTracks A list of selected tracks.
         * @see #onSelectTrack(TvTrackInfo)
         * @see #onUnselectTrack(TvTrackInfo)
         */
        public void notifyTrackSelectionChanged(final List<TvTrackInfo> selectedTracks) {
            mHandler.post(new Runnable() {
                @Override
                public void run() {
                    try {
                        if (DEBUG) Log.d(TAG, "notifyTrackSelectionChanged");
                        mSessionCallback.onTrackSelectionChanged(selectedTracks);
                    } catch (RemoteException e) {
                        Log.w(TAG, "error in notifyTrackSelectionChanged");
                    }
                }
            });
        }

        /**
         * Informs the application that video is available and the playback of the TV stream has
         * been started.
@@ -572,13 +590,12 @@ public abstract class TvInputService extends Service {
         * If it is called multiple times on the same type of track (ie. Video, Audio, Text), the
         * track selected previously should be unselected in the implementation of this method.
         * Also, if the select operation was successful, the implementation should call
         * {@link #notifyTrackInfoChanged(List)} to report the updated track information.
         * {@link #notifyTrackSelectionChanged(List)} to report the selected track list.
         * </p>
         *
         * @param track The track to be selected.
         * @return {@code true} if the select operation was successful, {@code false} otherwise.
         * @see #notifyTrackInfoChanged
         * @see TvTrackInfo#KEY_IS_SELECTED
         * @see #notifyTrackSelectionChanged(List)
         */
        public boolean onSelectTrack(TvTrackInfo track) {
            return false;
@@ -588,13 +605,12 @@ public abstract class TvInputService extends Service {
         * Unselects a given track.
         * <p>
         * If the unselect operation was successful, the implementation should call
         * {@link #notifyTrackInfoChanged(List)} to report the updated track information.
         * {@link #notifyTrackSelectionChanged(List)} to report the selected track list.
         * </p>
         *
         * @param track The track to be unselected.
         * @return {@code true} if the unselect operation was successful, {@code false} otherwise.
         * @see #notifyTrackInfoChanged
         * @see TvTrackInfo#KEY_IS_SELECTED
         * @see #notifyTrackSelectionChanged(List)
         */
        public boolean onUnselectTrack(TvTrackInfo track) {
            return false;
Loading