Loading api/current.txt +20 −20 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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 { Loading @@ -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); Loading @@ -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); media/java/android/media/tv/ITvInputClient.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading media/java/android/media/tv/ITvInputSessionCallback.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading media/java/android/media/tv/TvInputManager.java +47 −6 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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) { } Loading Loading @@ -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 Loading Loading @@ -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) { Loading Loading @@ -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) { Loading Loading @@ -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); } /** Loading media/java/android/media/tv/TvInputService.java +26 −10 Original line number Diff line number Diff line Loading @@ -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() { Loading @@ -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. Loading Loading @@ -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; Loading @@ -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 Loading
api/current.txt +20 −20 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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 { Loading @@ -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); Loading @@ -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);
media/java/android/media/tv/ITvInputClient.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
media/java/android/media/tv/ITvInputSessionCallback.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading
media/java/android/media/tv/TvInputManager.java +47 −6 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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) { } Loading Loading @@ -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 Loading Loading @@ -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) { Loading Loading @@ -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) { Loading Loading @@ -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); } /** Loading
media/java/android/media/tv/TvInputService.java +26 −10 Original line number Diff line number Diff line Loading @@ -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() { Loading @@ -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. Loading Loading @@ -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; Loading @@ -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