diff --git a/core/api/current.txt b/core/api/current.txt index 30a2b193cf851..ead304f979b80 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -24893,6 +24893,37 @@ package android.media.session { package android.media.tv { + public final class AdRequest implements android.os.Parcelable { + ctor public AdRequest(int, int, @Nullable android.os.ParcelFileDescriptor, long, long, long, @Nullable String, @NonNull android.os.Bundle); + method public int describeContents(); + method public long getEchoIntervalMillis(); + method @Nullable public android.os.ParcelFileDescriptor getFileDescriptor(); + method public int getId(); + method @Nullable public String getMediaFileType(); + method @NonNull public android.os.Bundle getMetadata(); + method public int getRequestType(); + method public long getStartTimeMillis(); + method public long getStopTimeMillis(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + field public static final int REQUEST_TYPE_START = 1; // 0x1 + field public static final int REQUEST_TYPE_STOP = 2; // 0x2 + } + + public final class AdResponse implements android.os.Parcelable { + ctor public AdResponse(int, int, long); + method public int describeContents(); + method public long getElapsedTimeMillis(); + method public int getId(); + method public int getResponseType(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + field public static final int RESPONSE_TYPE_ERROR = 4; // 0x4 + field public static final int RESPONSE_TYPE_FINISHED = 2; // 0x2 + field public static final int RESPONSE_TYPE_PLAYING = 1; // 0x1 + field public static final int RESPONSE_TYPE_STOPPED = 3; // 0x3 + } + public final class AitInfo implements android.os.Parcelable { ctor public AitInfo(int, int); method public int describeContents(); @@ -25395,6 +25426,9 @@ package android.media.tv { field public static final int RECORDING_ERROR_INSUFFICIENT_SPACE = 1; // 0x1 field public static final int RECORDING_ERROR_RESOURCE_BUSY = 2; // 0x2 field public static final int RECORDING_ERROR_UNKNOWN = 0; // 0x0 + field public static final int SIGNAL_STRENGTH_LOST = 1; // 0x1 + field public static final int SIGNAL_STRENGTH_STRONG = 3; // 0x3 + field public static final int SIGNAL_STRENGTH_WEAK = 2; // 0x2 field public static final long TIME_SHIFT_INVALID_TIME = -9223372036854775808L; // 0x8000000000000000L field public static final int TIME_SHIFT_STATUS_AVAILABLE = 3; // 0x3 field public static final int TIME_SHIFT_STATUS_UNAVAILABLE = 2; // 0x2 @@ -25472,10 +25506,12 @@ package android.media.tv { public abstract static class TvInputService.Session implements android.view.KeyEvent.Callback { ctor public TvInputService.Session(android.content.Context); method public void layoutSurface(int, int, int, int); + method public void notifyAdResponse(@NonNull android.media.tv.AdResponse); method public void notifyAitInfoUpdated(@NonNull android.media.tv.AitInfo); method public void notifyChannelRetuned(android.net.Uri); method public void notifyContentAllowed(); method public void notifyContentBlocked(@NonNull android.media.tv.TvContentRating); + method public void notifySignalStrength(int); method public void notifyTimeShiftStatusChanged(int); method public void notifyTrackSelected(int, String); method public void notifyTracksChanged(java.util.List); @@ -25491,6 +25527,7 @@ package android.media.tv { method public boolean onKeyUp(int, android.view.KeyEvent); method public void onOverlayViewSizeChanged(int, int); method public abstract void onRelease(); + method public void onRequestAd(@NonNull android.media.tv.AdRequest); method public boolean onSelectTrack(int, @Nullable String); method public abstract void onSetCaptionEnabled(boolean); method public void onSetInteractiveAppNotificationEnabled(boolean); @@ -25628,9 +25665,11 @@ package android.media.tv { method public void onContentAllowed(String); method public void onContentBlocked(String, android.media.tv.TvContentRating); method public void onDisconnected(String); + method public void onSignalStrength(@NonNull String, int); method public void onTimeShiftStatusChanged(String, int); method public void onTrackSelected(String, int, String); method public void onTracksChanged(String, java.util.List); + method public void onTuned(@NonNull String, @NonNull android.net.Uri); method public void onVideoAvailable(String); method public void onVideoSizeChanged(String, int, int); method public void onVideoUnavailable(String, int); @@ -25655,8 +25694,11 @@ package android.media.tv.interactive { public final class TvInteractiveAppManager { method @NonNull public java.util.List getTvInteractiveAppServiceList(); + method public void prepare(@NonNull String, int); method public void registerCallback(@NonNull android.media.tv.interactive.TvInteractiveAppManager.TvInteractiveAppCallback, @NonNull java.util.concurrent.Executor); + method public void sendAppLinkCommand(@NonNull String, @NonNull android.os.Bundle); method public void unregisterCallback(@NonNull android.media.tv.interactive.TvInteractiveAppManager.TvInteractiveAppCallback); + field public static final String ACTION_APP_LINK_COMMAND = "android.media.tv.interactive.action.APP_LINK_COMMAND"; field public static final int ERROR_BLOCKED = 5; // 0x5 field public static final int ERROR_ENCRYPTED = 6; // 0x6 field public static final int ERROR_NONE = 0; // 0x0 @@ -25665,26 +25707,55 @@ package android.media.tv.interactive { field public static final int ERROR_UNKNOWN = 1; // 0x1 field public static final int ERROR_UNKNOWN_CHANNEL = 7; // 0x7 field public static final int ERROR_WEAK_SIGNAL = 3; // 0x3 + field public static final String INTENT_KEY_BI_INTERACTIVE_APP_TYPE = "bi_interactive_app_type"; + field public static final String INTENT_KEY_BI_INTERACTIVE_APP_URI = "bi_interactive_app_uri"; + field public static final String INTENT_KEY_CHANNEL_URI = "channel_uri"; + field public static final String INTENT_KEY_INTERACTIVE_APP_SERVICE_ID = "interactive_app_id"; + field public static final String INTENT_KEY_TV_INPUT_ID = "tv_input_id"; field public static final int INTERACTIVE_APP_STATE_ERROR = 3; // 0x3 field public static final int INTERACTIVE_APP_STATE_RUNNING = 2; // 0x2 field public static final int INTERACTIVE_APP_STATE_STOPPED = 1; // 0x1 + field public static final String KEY_BACK_URI = "back_uri"; + field public static final String KEY_CLASS_NAME = "class_name"; + field public static final String KEY_COMMAND_TYPE = "command_type"; + field public static final String KEY_PACKAGE_NAME = "package_name"; + field public static final String KEY_SERVICE_ID = "service_id"; field public static final int SERVICE_STATE_ERROR = 4; // 0x4 field public static final int SERVICE_STATE_PREPARING = 2; // 0x2 field public static final int SERVICE_STATE_READY = 3; // 0x3 field public static final int SERVICE_STATE_UNREALIZED = 1; // 0x1 + field public static final int TELETEXT_APP_STATE_ERROR = 3; // 0x3 + field public static final int TELETEXT_APP_STATE_HIDE = 2; // 0x2 + field public static final int TELETEXT_APP_STATE_SHOW = 1; // 0x1 } public abstract static class TvInteractiveAppManager.TvInteractiveAppCallback { ctor public TvInteractiveAppManager.TvInteractiveAppCallback(); + method public void onInteractiveAppServiceAdded(@NonNull String); + method public void onInteractiveAppServiceRemoved(@NonNull String); + method public void onInteractiveAppServiceUpdated(@NonNull String); method public void onTvInteractiveAppServiceStateChanged(@NonNull String, int, int, int); } public abstract class TvInteractiveAppService extends android.app.Service { ctor public TvInteractiveAppService(); method public final void notifyStateChanged(int, int, int); - method public final android.os.IBinder onBind(android.content.Intent); + method public void onAppLinkCommand(@NonNull android.os.Bundle); + method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent); method @Nullable public abstract android.media.tv.interactive.TvInteractiveAppService.Session onCreateSession(@NonNull String, int); method public abstract void onPrepare(int); + field public static final String COMMAND_PARAMETER_KEY_CHANGE_CHANNEL_QUIETLY = "command_change_channel_quietly"; + field public static final String COMMAND_PARAMETER_KEY_CHANNEL_URI = "command_channel_uri"; + field public static final String COMMAND_PARAMETER_KEY_INPUT_ID = "command_input_id"; + field public static final String COMMAND_PARAMETER_KEY_TRACK_ID = "command_track_id"; + field public static final String COMMAND_PARAMETER_KEY_TRACK_TYPE = "command_track_type"; + field public static final String COMMAND_PARAMETER_KEY_VOLUME = "command_volume"; + field public static final String PLAYBACK_COMMAND_TYPE_SELECT_TRACK = "select_track"; + field public static final String PLAYBACK_COMMAND_TYPE_SET_STREAM_VOLUME = "set_stream_volume"; + field public static final String PLAYBACK_COMMAND_TYPE_STOP = "stop"; + field public static final String PLAYBACK_COMMAND_TYPE_TUNE = "tune"; + field public static final String PLAYBACK_COMMAND_TYPE_TUNE_NEXT = "tune_next"; + field public static final String PLAYBACK_COMMAND_TYPE_TUNE_PREV = "tune_previous"; field public static final String SERVICE_INTERFACE = "android.media.tv.interactive.TvInteractiveAppService"; field public static final String SERVICE_META_DATA = "android.media.tv.interactive.app"; } @@ -25694,17 +25765,48 @@ package android.media.tv.interactive { method public void layoutSurface(int, int, int, int); method public final void notifyBiInteractiveAppCreated(@NonNull android.net.Uri, @Nullable String); method public void notifySessionStateChanged(int, int); + method public final void notifyTeletextAppStateChanged(int); + method public void onAdResponse(@NonNull android.media.tv.AdResponse); + method public void onContentAllowed(); + method public void onContentBlocked(@NonNull android.media.tv.TvContentRating); method public void onCreateBiInteractiveApp(@NonNull android.net.Uri, @Nullable android.os.Bundle); + method @Nullable public android.view.View onCreateMediaView(); + method public void onCurrentChannelLcn(int); + method public void onCurrentChannelUri(@Nullable android.net.Uri); + method public void onCurrentTvInputId(@Nullable String); method public void onDestroyBiInteractiveApp(@NonNull String); + method public boolean onGenericMotionEvent(@NonNull android.view.MotionEvent); method public boolean onKeyDown(int, @NonNull android.view.KeyEvent); method public boolean onKeyLongPress(int, @NonNull android.view.KeyEvent); method public boolean onKeyMultiple(int, int, @NonNull android.view.KeyEvent); method public boolean onKeyUp(int, @NonNull android.view.KeyEvent); + method public void onMediaViewSizeChanged(int, int); + method public abstract void onRelease(); + method public void onResetInteractiveApp(); method public abstract boolean onSetSurface(@Nullable android.view.Surface); + method public void onSetTeletextAppEnabled(boolean); + method public void onSignalStrength(int); method public void onStartInteractiveApp(); method public void onStopInteractiveApp(); + method public void onStreamVolume(float); method public void onSurfaceChanged(int, int, int); + method public boolean onTouchEvent(@NonNull android.view.MotionEvent); + method public void onTrackInfoList(@NonNull java.util.List); + method public void onTrackSelected(int, @NonNull String); + method public boolean onTrackballEvent(@NonNull android.view.MotionEvent); + method public void onTracksChanged(@NonNull java.util.List); method public void onTuned(@NonNull android.net.Uri); + method public void onVideoAvailable(); + method public void onVideoUnavailable(int); + method public void requestAd(@NonNull android.media.tv.AdRequest); + method public void requestCurrentChannelLcn(); + method public void requestCurrentChannelUri(); + method public void requestCurrentTvInputId(); + method public void requestStreamVolume(); + method public void requestTrackInfoList(); + method public void sendPlaybackCommandRequest(@NonNull String, @Nullable android.os.Bundle); + method public void setMediaViewEnabled(boolean); + method public void setVideoBounds(@NonNull android.graphics.Rect); } public class TvInteractiveAppView extends android.view.ViewGroup { @@ -25712,19 +25814,48 @@ package android.media.tv.interactive { ctor public TvInteractiveAppView(@NonNull android.content.Context, @Nullable android.util.AttributeSet); ctor public TvInteractiveAppView(@NonNull android.content.Context, @Nullable android.util.AttributeSet, int); method public void clearCallback(); + method public void clearOnUnhandledInputEventListener(); method public void createBiInteractiveApp(@NonNull android.net.Uri, @Nullable android.os.Bundle); method public void destroyBiInteractiveApp(@NonNull String); + method public boolean dispatchUnhandledInputEvent(@NonNull android.view.InputEvent); + method public void onAttachedToWindow(); + method public void onDetachedFromWindow(); + method public void onLayout(boolean, int, int, int, int); + method public void onMeasure(int, int); + method public boolean onUnhandledInputEvent(@NonNull android.view.InputEvent); + method public void onVisibilityChanged(@NonNull android.view.View, int); method public void prepareInteractiveApp(@NonNull String, int); + method public void reset(); + method public void resetInteractiveApp(); + method public void sendCurrentChannelLcn(int); + method public void sendCurrentChannelUri(@Nullable android.net.Uri); + method public void sendCurrentTvInputId(@Nullable String); + method public void sendStreamVolume(float); + method public void sendTrackInfoList(@Nullable java.util.List); method public void setCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.tv.interactive.TvInteractiveAppView.TvInteractiveAppCallback); + method public void setOnUnhandledInputEventListener(@NonNull java.util.concurrent.Executor, @NonNull android.media.tv.interactive.TvInteractiveAppView.OnUnhandledInputEventListener); + method public void setTeletextAppEnabled(boolean); method public int setTvView(@Nullable android.media.tv.TvView); method public void startInteractiveApp(); method public void stopInteractiveApp(); } + public static interface TvInteractiveAppView.OnUnhandledInputEventListener { + method public boolean onUnhandledInputEvent(@NonNull android.view.InputEvent); + } + public abstract static class TvInteractiveAppView.TvInteractiveAppCallback { ctor public TvInteractiveAppView.TvInteractiveAppCallback(); method public void onBiInteractiveAppCreated(@NonNull String, @NonNull android.net.Uri, @Nullable String); + method public void onPlaybackCommandRequest(@NonNull String, @NonNull String, @NonNull android.os.Bundle); + method public void onRequestCurrentChannelLcn(@NonNull String); + method public void onRequestCurrentChannelUri(@NonNull String); + method public void onRequestCurrentTvInputId(@NonNull String); + method public void onRequestStreamVolume(@NonNull String); + method public void onRequestTrackInfoList(@NonNull String); + method public void onSetVideoBounds(@NonNull String, @NonNull android.graphics.Rect); method public void onStateChanged(@NonNull String, int, int); + method public void onTeletextAppStateChanged(@NonNull String, int); } } diff --git a/media/java/android/media/tv/AdRequest.java b/media/java/android/media/tv/AdRequest.java index adcf541e2bab7..0542c5598c012 100644 --- a/media/java/android/media/tv/AdRequest.java +++ b/media/java/android/media/tv/AdRequest.java @@ -29,7 +29,6 @@ import java.lang.annotation.RetentionPolicy; /** * An advertisement request which can be sent to TV input to request AD operations. - * @hide */ public final class AdRequest implements Parcelable { /** @hide */ diff --git a/media/java/android/media/tv/AdResponse.java b/media/java/android/media/tv/AdResponse.java index 5dba82cd7aeb0..0c20954d1382c 100644 --- a/media/java/android/media/tv/AdResponse.java +++ b/media/java/android/media/tv/AdResponse.java @@ -26,7 +26,6 @@ import java.lang.annotation.RetentionPolicy; /** * An advertisement request which can be sent to TV interactive App service to inform AD status. - * @hide */ public final class AdResponse implements Parcelable { /** @hide */ diff --git a/media/java/android/media/tv/TvInputManager.java b/media/java/android/media/tv/TvInputManager.java index f438d293ac8e4..cc33a1e94d955 100644 --- a/media/java/android/media/tv/TvInputManager.java +++ b/media/java/android/media/tv/TvInputManager.java @@ -394,17 +394,14 @@ public final class TvInputManager { /** * Signal lost. - * @hide */ public static final int SIGNAL_STRENGTH_LOST = 1; /** * Weak signal. - * @hide */ public static final int SIGNAL_STRENGTH_WEAK = 2; /** * Strong signal. - * @hide */ public static final int SIGNAL_STRENGTH_STRONG = 3; diff --git a/media/java/android/media/tv/TvInputService.java b/media/java/android/media/tv/TvInputService.java index 98d4182eb97ca..f63f44487e35b 100755 --- a/media/java/android/media/tv/TvInputService.java +++ b/media/java/android/media/tv/TvInputService.java @@ -896,7 +896,6 @@ public abstract class TvInputService extends Service { * * @param response advertisement response. * @see android.media.tv.interactive.TvInteractiveAppService.Session#requestAd(AdRequest) - * @hide */ public void notifyAdResponse(@NonNull final AdResponse response) { executeOrPostRunnableOnMainThread(new Runnable() { @@ -977,7 +976,6 @@ public abstract class TvInputService extends Service { /** * Notifies signal strength. - * @hide */ public void notifySignalStrength(@TvInputManager.SignalStrength final int strength) { executeOrPostRunnableOnMainThread(new Runnable() { @@ -1128,7 +1126,6 @@ public abstract class TvInputService extends Service { * Called when advertisement request is received. * * @param request advertisement request received - * @hide */ public void onRequestAd(@NonNull AdRequest request) { } diff --git a/media/java/android/media/tv/TvView.java b/media/java/android/media/tv/TvView.java index 6c25a70ae5a16..4d63af7be4740 100644 --- a/media/java/android/media/tv/TvView.java +++ b/media/java/android/media/tv/TvView.java @@ -1079,21 +1079,20 @@ public class TvView extends ViewGroup { /** * This is called when signal strength is updated. + * * @param inputId The ID of the TV input bound to this view. * @param strength The current signal strength. - * - * @hide */ - public void onSignalStrength(String inputId, @TvInputManager.SignalStrength int strength) { + public void onSignalStrength( + @NonNull String inputId, @TvInputManager.SignalStrength int strength) { } /** * This is called when the session has been tuned to the given channel. * * @param channelUri The URI of a channel. - * @hide */ - public void onTuned(String inputId, Uri channelUri) { + public void onTuned(@NonNull String inputId, @NonNull Uri channelUri) { } } diff --git a/media/java/android/media/tv/interactive/TvInteractiveAppManager.java b/media/java/android/media/tv/interactive/TvInteractiveAppManager.java index f1f0af1a2cc9a..4a997152a183f 100755 --- a/media/java/android/media/tv/interactive/TvInteractiveAppManager.java +++ b/media/java/android/media/tv/interactive/TvInteractiveAppManager.java @@ -174,18 +174,15 @@ public final class TvInteractiveAppManager { public @interface TeletextAppState {} /** - * Show state of Teletext app. - * @hide + * State of Teletext app: show */ public static final int TELETEXT_APP_STATE_SHOW = 1; /** - * Hide state of Teletext app. - * @hide + * State of Teletext app: hide */ public static final int TELETEXT_APP_STATE_HIDE = 2; /** - * Error state of Teletext app. - * @hide + * State of Teletext app: error */ public static final int TELETEXT_APP_STATE_ERROR = 3; @@ -193,9 +190,7 @@ public final class TvInteractiveAppManager { * Key for package name in app link. *

Type: String * - * @see #registerAppLinkInfo(String, Bundle) * @see #sendAppLinkCommand(String, Bundle) - * @hide */ public static final String KEY_PACKAGE_NAME = "package_name"; @@ -203,45 +198,15 @@ public final class TvInteractiveAppManager { * Key for class name in app link. *

Type: String * - * @see #registerAppLinkInfo(String, Bundle) * @see #sendAppLinkCommand(String, Bundle) - * @hide */ public static final String KEY_CLASS_NAME = "class_name"; - /** - * Key for URI scheme in app link. - *

Type: String - * - * @see #registerAppLinkInfo(String, Bundle) - * @hide - */ - public static final String KEY_URI_SCHEME = "uri_scheme"; - - /** - * Key for URI host in app link. - *

Type: String - * - * @see #registerAppLinkInfo(String, Bundle) - * @hide - */ - public static final String KEY_URI_HOST = "uri_host"; - - /** - * Key for URI prefix in app link. - *

Type: String - * - * @see #registerAppLinkInfo(String, Bundle) - * @hide - */ - public static final String KEY_URI_PREFIX = "uri_prefix"; - /** * Key for command type in app link command. *

Type: String * * @see #sendAppLinkCommand(String, Bundle) - * @hide */ public static final String KEY_COMMAND_TYPE = "command_type"; @@ -250,7 +215,6 @@ public final class TvInteractiveAppManager { *

Type: String * * @see #sendAppLinkCommand(String, Bundle) - * @hide */ public static final String KEY_SERVICE_ID = "service_id"; @@ -259,10 +223,68 @@ public final class TvInteractiveAppManager { *

Type: String * * @see #sendAppLinkCommand(String, Bundle) - * @hide */ public static final String KEY_BACK_URI = "back_uri"; + /** + * Broadcast intent action to send app command to TV app. + * + * @see #sendAppLinkCommand(String, Bundle) + */ + public static final String ACTION_APP_LINK_COMMAND = + "android.media.tv.interactive.action.APP_LINK_COMMAND"; + + /** + * Intent key for TV input ID. It's used to send app command to TV app. + *

Type: String + * + * @see #sendAppLinkCommand(String, Bundle) + * @see #ACTION_APP_LINK_COMMAND + */ + public static final String INTENT_KEY_TV_INPUT_ID = "tv_input_id"; + + /** + * Intent key for TV interactive app ID. It's used to send app command to TV app. + *

Type: String + * + * @see #sendAppLinkCommand(String, Bundle) + * @see #ACTION_APP_LINK_COMMAND + * @see android.media.tv.interactive.TvInteractiveAppInfo#getId() + */ + public static final String INTENT_KEY_INTERACTIVE_APP_SERVICE_ID = "interactive_app_id"; + + /** + * Intent key for TV channel URI. It's used to send app command to TV app. + *

Type: android.net.Uri + * + * @see #sendAppLinkCommand(String, Bundle) + * @see #ACTION_APP_LINK_COMMAND + */ + public static final String INTENT_KEY_CHANNEL_URI = "channel_uri"; + + /** + * Intent key for broadcast-independent(BI) interactive app type. It's used to send app command + * to TV app. + *

Type: int + * + * @see #sendAppLinkCommand(String, Bundle) + * @see #ACTION_APP_LINK_COMMAND + * @see android.media.tv.interactive.TvInteractiveAppInfo#getSupportedTypes() + * @see android.media.tv.interactive.TvInteractiveAppView#createBiInteractiveApp(Uri, Bundle) + */ + public static final String INTENT_KEY_BI_INTERACTIVE_APP_TYPE = "bi_interactive_app_type"; + + /** + * Intent key for broadcast-independent(BI) interactive app URI. It's used to send app command + * to TV app. + *

Type: android.net.Uri + * + * @see #sendAppLinkCommand(String, Bundle) + * @see #ACTION_APP_LINK_COMMAND + * @see android.media.tv.interactive.TvInteractiveAppView#createBiInteractiveApp(Uri, Bundle) + */ + public static final String INTENT_KEY_BI_INTERACTIVE_APP_URI = "bi_interactive_app_uri"; + private final ITvInteractiveAppManager mService; private final int mUserId; @@ -358,7 +380,7 @@ public final class TvInteractiveAppManager { @Override public void onCommandRequest( - @TvInteractiveAppService.InteractiveAppServiceCommandType String cmdType, + @TvInteractiveAppService.PlaybackCommandType String cmdType, Bundle parameters, int seq) { synchronized (mSessionCallbackRecordMap) { @@ -559,7 +581,6 @@ public final class TvInteractiveAppManager { * that implements {@link TvInteractiveAppService} interface. * * @param iAppServiceId The ID of the TV Interactive App service. - * @hide */ public void onInteractiveAppServiceAdded(@NonNull String iAppServiceId) { } @@ -571,7 +592,6 @@ public final class TvInteractiveAppManager { * App service package. * * @param iAppServiceId The ID of the TV Interactive App service. - * @hide */ public void onInteractiveAppServiceRemoved(@NonNull String iAppServiceId) { } @@ -583,7 +603,6 @@ public final class TvInteractiveAppManager { * re-installed or a newer version of the package exists becomes available/unavailable. * * @param iAppServiceId The ID of the TV Interactive App service. - * @hide */ public void onInteractiveAppServiceUpdated(@NonNull String iAppServiceId) { } @@ -730,8 +749,7 @@ public final class TvInteractiveAppManager { } /** - * Prepares TV Interactive App service for the given type. - * @hide + * Prepares TV Interactive App service environment for the given type. */ public void prepare(@NonNull String tvIAppServiceId, int type) { try { @@ -773,7 +791,6 @@ public final class TvInteractiveAppManager { * @param tvIAppServiceId The ID of TV interactive service which the command to be sent to. The * ID can be found in {@link TvInputInfo#getId()}. * @param command The command to be sent. - * @hide */ public void sendAppLinkCommand(@NonNull String tvIAppServiceId, @NonNull Bundle command) { try { @@ -1565,7 +1582,7 @@ public final class TvInteractiveAppManager { } void postCommandRequest( - final @TvInteractiveAppService.InteractiveAppServiceCommandType String cmdType, + final @TvInteractiveAppService.PlaybackCommandType String cmdType, final Bundle parameters) { mHandler.post(new Runnable() { @Override @@ -1713,7 +1730,7 @@ public final class TvInteractiveAppManager { */ public void onCommandRequest( Session session, - @TvInteractiveAppService.InteractiveAppServiceCommandType String cmdType, + @TvInteractiveAppService.PlaybackCommandType String cmdType, Bundle parameters) { } diff --git a/media/java/android/media/tv/interactive/TvInteractiveAppService.java b/media/java/android/media/tv/interactive/TvInteractiveAppService.java index 4716bed903cee..c9856bfa2d970 100755 --- a/media/java/android/media/tv/interactive/TvInteractiveAppService.java +++ b/media/java/android/media/tv/interactive/TvInteractiveAppService.java @@ -32,6 +32,7 @@ import android.media.tv.AdResponse; import android.media.tv.BroadcastInfoRequest; import android.media.tv.BroadcastInfoResponse; import android.media.tv.TvContentRating; +import android.media.tv.TvInputInfo; import android.media.tv.TvInputManager; import android.media.tv.TvTrackInfo; import android.media.tv.TvView; @@ -97,46 +98,82 @@ public abstract class TvInteractiveAppService extends Service { /** @hide */ @Retention(RetentionPolicy.SOURCE) - @StringDef(prefix = "INTERACTIVE_APP_SERVICE_COMMAND_TYPE_", value = { - INTERACTIVE_APP_SERVICE_COMMAND_TYPE_TUNE, - INTERACTIVE_APP_SERVICE_COMMAND_TYPE_TUNE_NEXT, - INTERACTIVE_APP_SERVICE_COMMAND_TYPE_TUNE_PREV, - INTERACTIVE_APP_SERVICE_COMMAND_TYPE_STOP, - INTERACTIVE_APP_SERVICE_COMMAND_TYPE_SET_STREAM_VOLUME, - INTERACTIVE_APP_SERVICE_COMMAND_TYPE_SELECT_TRACK + @StringDef(prefix = "PLAYBACK_COMMAND_TYPE_", value = { + PLAYBACK_COMMAND_TYPE_TUNE, + PLAYBACK_COMMAND_TYPE_TUNE_NEXT, + PLAYBACK_COMMAND_TYPE_TUNE_PREV, + PLAYBACK_COMMAND_TYPE_STOP, + PLAYBACK_COMMAND_TYPE_SET_STREAM_VOLUME, + PLAYBACK_COMMAND_TYPE_SELECT_TRACK }) - public @interface InteractiveAppServiceCommandType {} + public @interface PlaybackCommandType {} - /** @hide */ - public static final String INTERACTIVE_APP_SERVICE_COMMAND_TYPE_TUNE = "tune"; - /** @hide */ - public static final String INTERACTIVE_APP_SERVICE_COMMAND_TYPE_TUNE_NEXT = "tune_next"; - /** @hide */ - public static final String INTERACTIVE_APP_SERVICE_COMMAND_TYPE_TUNE_PREV = "tune_previous"; - /** @hide */ - public static final String INTERACTIVE_APP_SERVICE_COMMAND_TYPE_STOP = "stop"; - /** @hide */ - public static final String INTERACTIVE_APP_SERVICE_COMMAND_TYPE_SET_STREAM_VOLUME = + /** + * Playback command type: tune to the given channel. + * @see #COMMAND_PARAMETER_KEY_CHANNEL_URI + */ + public static final String PLAYBACK_COMMAND_TYPE_TUNE = "tune"; + /** + * Playback command type: tune to the next channel. + */ + public static final String PLAYBACK_COMMAND_TYPE_TUNE_NEXT = "tune_next"; + /** + * Playback command type: tune to the previous channel. + */ + public static final String PLAYBACK_COMMAND_TYPE_TUNE_PREV = "tune_previous"; + /** + * Playback command type: stop the playback. + */ + public static final String PLAYBACK_COMMAND_TYPE_STOP = "stop"; + /** + * Playback command type: set the volume. + */ + public static final String PLAYBACK_COMMAND_TYPE_SET_STREAM_VOLUME = "set_stream_volume"; - /** @hide */ - public static final String INTERACTIVE_APP_SERVICE_COMMAND_TYPE_SELECT_TRACK = "select_track"; - /** @hide */ + /** + * Playback command type: select the given track. + */ + public static final String PLAYBACK_COMMAND_TYPE_SELECT_TRACK = "select_track"; + /** + * Playback command parameter: channel URI. + *

Type: android.net.Uri + * + * @see #PLAYBACK_COMMAND_TYPE_TUNE + */ public static final String COMMAND_PARAMETER_KEY_CHANNEL_URI = "command_channel_uri"; - /** @hide */ + /** + * Playback command parameter: TV input ID. + *

Type: String + * + * @see TvInputInfo#getId() + */ public static final String COMMAND_PARAMETER_KEY_INPUT_ID = "command_input_id"; - /** @hide */ + /** + * Playback command parameter: stream volume. + *

Type: float + * + * @see #PLAYBACK_COMMAND_TYPE_SET_STREAM_VOLUME + */ public static final String COMMAND_PARAMETER_KEY_VOLUME = "command_volume"; - /** @hide */ + /** + * Playback command parameter: track type. + *

Type: int + * + * @see #PLAYBACK_COMMAND_TYPE_SELECT_TRACK + * @see TvTrackInfo#getType() + */ public static final String COMMAND_PARAMETER_KEY_TRACK_TYPE = "command_track_type"; - /** @hide */ + /** + * Playback command parameter: track ID. + *

Type: String + * + * @see #PLAYBACK_COMMAND_TYPE_SELECT_TRACK + * @see TvTrackInfo#getId() + */ public static final String COMMAND_PARAMETER_KEY_TRACK_ID = "command_track_id"; - /** @hide */ - public static final String COMMAND_PARAMETER_KEY_TRACK_SELECT_MODE = - "command_track_select_mode"; /** * Command to quiet channel change. No channel banner or channel info is shown. *

Refer to HbbTV Spec 2.0.4 chapter A.2.4.3. - * @hide */ public static final String COMMAND_PARAMETER_KEY_CHANGE_CHANNEL_QUIETLY = "command_change_channel_quietly"; @@ -145,9 +182,9 @@ public abstract class TvInteractiveAppService extends Service { private final RemoteCallbackList mCallbacks = new RemoteCallbackList<>(); - /** @hide */ @Override - public final IBinder onBind(Intent intent) { + @Nullable + public final IBinder onBind(@NonNull Intent intent) { ITvInteractiveAppService.Stub tvIAppServiceBinder = new ITvInteractiveAppService.Stub() { @Override public void registerCallback(ITvInteractiveAppServiceCallback cb) { @@ -210,23 +247,20 @@ public abstract class TvInteractiveAppService extends Service { * Registers App link info. * @hide */ - public void onRegisterAppLinkInfo(AppLinkInfo appLinkInfo) { - // TODO: make it abstract when unhide + public void onRegisterAppLinkInfo(@NonNull AppLinkInfo appLinkInfo) { } /** * Unregisters App link info. * @hide */ - public void onUnregisterAppLinkInfo(AppLinkInfo appLinkInfo) { - // TODO: make it abstract when unhide + public void onUnregisterAppLinkInfo(@NonNull AppLinkInfo appLinkInfo) { } /** * Called when app link command is received. * * @see android.media.tv.interactive.TvInteractiveAppManager#sendAppLinkCommand(String, Bundle) - * @hide */ public void onAppLinkCommand(@NonNull Bundle command) { } @@ -318,7 +352,6 @@ public abstract class TvInteractiveAppService extends Service { * * @param enable {@code true} if you want to enable the media view. {@code false} * otherwise. - * @hide */ public void setMediaViewEnabled(final boolean enable) { mHandler.post(new Runnable() { @@ -353,7 +386,6 @@ public abstract class TvInteractiveAppService extends Service { /** * Resets TvIAppService session. - * @hide */ public void onResetInteractiveApp() { } @@ -384,43 +416,37 @@ public abstract class TvInteractiveAppService extends Service { /** * To toggle Digital Teletext Application if there is one in AIT app list. - * @param enable - * @hide + * @param enable {@code true} to enable teletext app; {@code false} otherwise. */ public void onSetTeletextAppEnabled(boolean enable) { } /** * Receives current channel URI. - * @hide */ public void onCurrentChannelUri(@Nullable Uri channelUri) { } /** * Receives logical channel number (LCN) of current channel. - * @hide */ public void onCurrentChannelLcn(int lcn) { } /** - * Receives stream volume. - * @hide + * Receives current stream volume. */ public void onStreamVolume(float volume) { } /** * Receives track list. - * @hide */ public void onTrackInfoList(@NonNull List tracks) { } /** * Receives current TV input ID. - * @hide */ public void onCurrentTvInputId(@Nullable String inputId) { } @@ -460,7 +486,6 @@ public abstract class TvInteractiveAppService extends Service { * * @param width The width of the media view. * @param height The height of the media view. - * @hide */ public void onMediaViewSizeChanged(int width, int height) { } @@ -470,7 +495,6 @@ public abstract class TvInteractiveAppService extends Service { * implementation can override this method and return its own view. * * @return a view attached to the media window - * @hide */ @Nullable public View onCreateMediaView() { @@ -479,10 +503,8 @@ public abstract class TvInteractiveAppService extends Service { /** * Releases TvInteractiveAppService session. - * @hide */ - public void onRelease() { - } + public abstract void onRelease(); /** * Called when the corresponding TV input tuned to a channel. @@ -494,49 +516,42 @@ public abstract class TvInteractiveAppService extends Service { /** * Called when the corresponding TV input selected to a track. - * @hide */ - public void onTrackSelected(int type, String trackId) { + public void onTrackSelected(@TvTrackInfo.Type int type, @NonNull String trackId) { } /** * Called when the tracks are changed. - * @hide */ - public void onTracksChanged(List tracks) { + public void onTracksChanged(@NonNull List tracks) { } /** * Called when video is available. - * @hide */ public void onVideoAvailable() { } /** * Called when video is unavailable. - * @hide */ - public void onVideoUnavailable(int reason) { + public void onVideoUnavailable(@TvInputManager.VideoUnavailableReason int reason) { } /** * Called when content is allowed. - * @hide */ public void onContentAllowed() { } /** * Called when content is blocked. - * @hide */ - public void onContentBlocked(TvContentRating rating) { + public void onContentBlocked(@NonNull TvContentRating rating) { } /** * Called when signal strength is changed. - * @hide */ public void onSignalStrength(@TvInputManager.SignalStrength int strength) { } @@ -550,60 +565,61 @@ public abstract class TvInteractiveAppService extends Service { /** * Called when an advertisement response is received. - * @hide */ public void onAdResponse(@NonNull AdResponse response) { } - /** - * TODO: JavaDoc of APIs related to input events. - * @hide - */ @Override public boolean onKeyDown(int keyCode, @NonNull KeyEvent event) { return false; } - /** - * @hide - */ @Override public boolean onKeyLongPress(int keyCode, @NonNull KeyEvent event) { return false; } - /** - * @hide - */ @Override public boolean onKeyMultiple(int keyCode, int count, @NonNull KeyEvent event) { return false; } - /** - * @hide - */ @Override public boolean onKeyUp(int keyCode, @NonNull KeyEvent event) { return false; } /** - * @hide + * Implement this method to handle touch screen motion events on the current session. + * + * @param event The motion event being received. + * @return If you handled the event, return {@code true}. If you want to allow the event to + * be handled by the next receiver, return {@code false}. + * @see View#onTouchEvent */ public boolean onTouchEvent(@NonNull MotionEvent event) { return false; } /** - * @hide + * Implement this method to handle trackball events on the current session. + * + * @param event The motion event being received. + * @return If you handled the event, return {@code true}. If you want to allow the event to + * be handled by the next receiver, return {@code false}. + * @see View#onTrackballEvent */ public boolean onTrackballEvent(@NonNull MotionEvent event) { return false; } /** - * @hide + * Implement this method to handle generic motion events on the current session. + * + * @param event The motion event being received. + * @return If you handled the event, return {@code true}. If you want to allow the event to + * be handled by the next receiver, return {@code false}. + * @see View#onGenericMotionEvent */ public boolean onGenericMotionEvent(@NonNull MotionEvent event) { return false; @@ -693,13 +709,13 @@ public abstract class TvInteractiveAppService extends Service { } /** - * requests a specific command to be processed by the related TV input. + * Sends a specific playback command to be processed by the related TV input. + * * @param cmdType type of the specific command * @param parameters parameters of the specific command - * @hide */ - public void requestCommand( - @InteractiveAppServiceCommandType String cmdType, Bundle parameters) { + public void sendPlaybackCommandRequest( + @PlaybackCommandType @NonNull String cmdType, @Nullable Bundle parameters) { executeOrPostRunnableOnMainThread(new Runnable() { @MainThread @Override @@ -721,9 +737,8 @@ public abstract class TvInteractiveAppService extends Service { /** * Sets broadcast video bounds. - * @hide */ - public void setVideoBounds(Rect rect) { + public void setVideoBounds(@NonNull Rect rect) { executeOrPostRunnableOnMainThread(new Runnable() { @MainThread @Override @@ -744,7 +759,6 @@ public abstract class TvInteractiveAppService extends Service { /** * Requests the URI of the current channel. - * @hide */ public void requestCurrentChannelUri() { executeOrPostRunnableOnMainThread(new Runnable() { @@ -767,7 +781,6 @@ public abstract class TvInteractiveAppService extends Service { /** * Requests the logic channel number (LCN) of the current channel. - * @hide */ public void requestCurrentChannelLcn() { executeOrPostRunnableOnMainThread(new Runnable() { @@ -790,7 +803,6 @@ public abstract class TvInteractiveAppService extends Service { /** * Requests stream volume. - * @hide */ public void requestStreamVolume() { executeOrPostRunnableOnMainThread(new Runnable() { @@ -813,7 +825,6 @@ public abstract class TvInteractiveAppService extends Service { /** * Requests the list of {@link TvTrackInfo}. - * @hide */ public void requestTrackInfoList() { executeOrPostRunnableOnMainThread(new Runnable() { @@ -838,7 +849,6 @@ public abstract class TvInteractiveAppService extends Service { * Requests current TV input ID. * * @see android.media.tv.TvInputInfo - * @hide */ public void requestCurrentTvInputId() { executeOrPostRunnableOnMainThread(new Runnable() { @@ -863,7 +873,6 @@ public abstract class TvInteractiveAppService extends Service { * Sends an advertisement request to be processed by the related TV input. * * @param request The advertisement request - * @hide */ public void requestAd(@NonNull final AdRequest request) { executeOrPostRunnableOnMainThread(new Runnable() { @@ -1082,7 +1091,6 @@ public abstract class TvInteractiveAppService extends Service { /** * Notifies when the digital teletext app state is changed. * @param state the current state. - * @hide */ public final void notifyTeletextAppStateChanged( @TvInteractiveAppManager.TeletextAppState int state) { diff --git a/media/java/android/media/tv/interactive/TvInteractiveAppView.java b/media/java/android/media/tv/interactive/TvInteractiveAppView.java index 2922baeee32f3..773e54f307443 100755 --- a/media/java/android/media/tv/interactive/TvInteractiveAppView.java +++ b/media/java/android/media/tv/interactive/TvInteractiveAppView.java @@ -170,23 +170,20 @@ public class TvInteractiveAppView extends ViewGroup { } } - /** @hide */ @Override - protected void onAttachedToWindow() { + public void onAttachedToWindow() { super.onAttachedToWindow(); createSessionMediaView(); } - /** @hide */ @Override - protected void onDetachedFromWindow() { + public void onDetachedFromWindow() { removeSessionMediaView(); super.onDetachedFromWindow(); } - /** @hide */ @Override - protected void onLayout(boolean changed, int left, int top, int right, int bottom) { + public void onLayout(boolean changed, int left, int top, int right, int bottom) { if (DEBUG) { Log.d(TAG, "onLayout (left=" + left + ", top=" + top + ", right=" + right + ", bottom=" + bottom + ",)"); @@ -199,9 +196,8 @@ public class TvInteractiveAppView extends ViewGroup { } } - /** @hide */ @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { mSurfaceView.measure(widthMeasureSpec, heightMeasureSpec); int width = mSurfaceView.getMeasuredWidth(); int height = mSurfaceView.getMeasuredHeight(); @@ -211,9 +207,8 @@ public class TvInteractiveAppView extends ViewGroup { childState << MEASURED_HEIGHT_STATE_SHIFT)); } - /** @hide */ @Override - protected void onVisibilityChanged(View changedView, int visibility) { + public void onVisibilityChanged(@NonNull View changedView, int visibility) { super.onVisibilityChanged(changedView, visibility); mSurfaceView.setVisibility(visibility); if (visibility == View.VISIBLE) { @@ -244,7 +239,6 @@ public class TvInteractiveAppView extends ViewGroup { /** * Resets this TvInteractiveAppView. - * @hide */ public void reset() { if (DEBUG) Log.d(TAG, "reset()"); @@ -330,7 +324,11 @@ public class TvInteractiveAppView extends ViewGroup { /** * Dispatches an unhandled input event to the next receiver. - * @hide + * + * It gives the host application a chance to dispatch the unhandled input events. + * + * @param event The input event. + * @return {@code true} if the event was handled by the view, {@code false} otherwise. */ public boolean dispatchUnhandledInputEvent(@NonNull InputEvent event) { if (mOnUnhandledInputEventListener != null) { @@ -349,21 +347,28 @@ public class TvInteractiveAppView extends ViewGroup { * @param event The input event. * @return If you handled the event, return {@code true}. If you want to allow the event to be * handled by the next receiver, return {@code false}. - * @hide */ public boolean onUnhandledInputEvent(@NonNull InputEvent event) { return false; } /** - * Registers a callback to be invoked when an input event is not handled + * Sets a listener to be invoked when an input event is not handled * by the TV Interactive App. * * @param listener The callback to be invoked when the unhandled input event is received. - * @hide */ - public void setOnUnhandledInputEventListener(@NonNull OnUnhandledInputEventListener listener) { + public void setOnUnhandledInputEventListener( + @NonNull @CallbackExecutor Executor executor, + @NonNull OnUnhandledInputEventListener listener) { mOnUnhandledInputEventListener = listener; + // TODO: handle CallbackExecutor + } + /** + * Clears the {@link OnUnhandledInputEventListener}. + */ + public void clearOnUnhandledInputEventListener() { + mOnUnhandledInputEventListener = null; } @Override @@ -427,7 +432,6 @@ public class TvInteractiveAppView extends ViewGroup { /** * Resets the interactive application. - * @hide */ public void resetInteractiveApp() { if (DEBUG) { @@ -440,9 +444,11 @@ public class TvInteractiveAppView extends ViewGroup { /** * Sends current channel URI to related TV interactive app. - * @hide + * + * @param channelUri The current channel URI; {@code null} if there is no currently tuned + * channel. */ - public void sendCurrentChannelUri(Uri channelUri) { + public void sendCurrentChannelUri(@Nullable Uri channelUri) { if (DEBUG) { Log.d(TAG, "sendCurrentChannelUri"); } @@ -453,7 +459,6 @@ public class TvInteractiveAppView extends ViewGroup { /** * Sends current channel logical channel number (LCN) to related TV interactive app. - * @hide */ public void sendCurrentChannelLcn(int lcn) { if (DEBUG) { @@ -466,7 +471,6 @@ public class TvInteractiveAppView extends ViewGroup { /** * Sends stream volume to related TV interactive app. - * @hide */ public void sendStreamVolume(float volume) { if (DEBUG) { @@ -479,9 +483,8 @@ public class TvInteractiveAppView extends ViewGroup { /** * Sends track info list to related TV interactive app. - * @hide */ - public void sendTrackInfoList(List tracks) { + public void sendTrackInfoList(@Nullable List tracks) { if (DEBUG) { Log.d(TAG, "sendTrackInfoList"); } @@ -496,7 +499,6 @@ public class TvInteractiveAppView extends ViewGroup { * @param inputId The current TV input ID whose channel is tuned. {@code null} if no channel is * tuned. * @see android.media.tv.TvInputInfo - * @hide */ public void sendCurrentTvInputId(@Nullable String inputId) { if (DEBUG) { @@ -588,8 +590,11 @@ public class TvInteractiveAppView extends ViewGroup { /** * To toggle Digital Teletext Application if there is one in AIT app list. - * @param enable - * @hide + * + *

A Teletext Application is a broadcast-related application to display text and basic + * graphics. + * + * @param enable {@code true} to enable Teletext app; {@code false} to disable it. */ public void setTeletextAppEnabled(boolean enable) { if (DEBUG) { @@ -607,17 +612,17 @@ public class TvInteractiveAppView extends ViewGroup { // TODO: unhide the following public APIs /** - * This is called when a command is requested to be processed by the related TV input. + * This is called when a playback command is requested to be processed by the related TV + * input. * * @param iAppServiceId The ID of the TV interactive app service bound to this view. * @param cmdType type of the command * @param parameters parameters of the command - * @hide */ - public void onCommandRequest( + public void onPlaybackCommandRequest( @NonNull String iAppServiceId, - @NonNull @TvInteractiveAppService.InteractiveAppServiceCommandType String cmdType, - @Nullable Bundle parameters) { + @NonNull @TvInteractiveAppService.PlaybackCommandType String cmdType, + @NonNull Bundle parameters) { } /** @@ -656,7 +661,6 @@ public class TvInteractiveAppView extends ViewGroup { * * @param iAppServiceId The ID of the TV interactive app service bound to this view. * @param state digital teletext app current state. - * @hide */ public void onTeletextAppStateChanged( @NonNull String iAppServiceId, @@ -664,59 +668,55 @@ public class TvInteractiveAppView extends ViewGroup { } /** - * This is called when {@link TvInteractiveAppService.Session#SetVideoBounds} is called. + * This is called when {@link TvInteractiveAppService.Session#setVideoBounds(Rect)} is + * called. * * @param iAppServiceId The ID of the TV interactive app service bound to this view. - * @hide */ public void onSetVideoBounds(@NonNull String iAppServiceId, @NonNull Rect rect) { } /** - * This is called when {@link TvInteractiveAppService.Session#RequestCurrentChannelUri} is + * This is called when {@link TvInteractiveAppService.Session#requestCurrentChannelUri()} is * called. * * @param iAppServiceId The ID of the TV interactive app service bound to this view. - * @hide */ public void onRequestCurrentChannelUri(@NonNull String iAppServiceId) { } /** - * This is called when {@link TvInteractiveAppService.Session#RequestCurrentChannelLcn} is + * This is called when {@link TvInteractiveAppService.Session#requestCurrentChannelLcn()} is * called. * * @param iAppServiceId The ID of the TV interactive app service bound to this view. - * @hide */ public void onRequestCurrentChannelLcn(@NonNull String iAppServiceId) { } /** - * This is called when {@link TvInteractiveAppService.Session#RequestStreamVolume} is + * This is called when {@link TvInteractiveAppService.Session#requestStreamVolume()} is * called. * * @param iAppServiceId The ID of the TV interactive app service bound to this view. - * @hide */ public void onRequestStreamVolume(@NonNull String iAppServiceId) { } /** - * This is called when {@link TvInteractiveAppService.Session#RequestTrackInfoList} is + * This is called when {@link TvInteractiveAppService.Session#requestTrackInfoList()} is * called. * * @param iAppServiceId The ID of the TV interactive app service bound to this view. - * @hide */ public void onRequestTrackInfoList(@NonNull String iAppServiceId) { } /** - * This is called when {@link TvIAppService.Session#RequestCurrentTvInputId} is called. + * This is called when {@link TvInteractiveAppService.Session#requestCurrentTvInputId()} is + * called. * * @param iAppServiceId The ID of the TV interactive app service bound to this view. - * @hide */ public void onRequestCurrentTvInputId(@NonNull String iAppServiceId) { } @@ -725,7 +725,6 @@ public class TvInteractiveAppView extends ViewGroup { /** * Interface definition for a callback to be invoked when the unhandled input event is received. - * @hide */ public interface OnUnhandledInputEventListener { /** @@ -818,7 +817,7 @@ public class TvInteractiveAppView extends ViewGroup { @Override public void onCommandRequest( Session session, - @TvInteractiveAppService.InteractiveAppServiceCommandType String cmdType, + @TvInteractiveAppService.PlaybackCommandType String cmdType, Bundle parameters) { if (DEBUG) { Log.d(TAG, "onCommandRequest (cmdType=" + cmdType + ", parameters=" @@ -833,7 +832,8 @@ public class TvInteractiveAppView extends ViewGroup { mCallbackExecutor.execute(() -> { synchronized (mCallbackLock) { if (mCallback != null) { - mCallback.onCommandRequest(mIAppServiceId, cmdType, parameters); + mCallback.onPlaybackCommandRequest( + mIAppServiceId, cmdType, parameters); } } }); diff --git a/services/core/java/com/android/server/tv/interactive/TvInteractiveAppManagerService.java b/services/core/java/com/android/server/tv/interactive/TvInteractiveAppManagerService.java index 468612fe1041f..53a9244837ed7 100644 --- a/services/core/java/com/android/server/tv/interactive/TvInteractiveAppManagerService.java +++ b/services/core/java/com/android/server/tv/interactive/TvInteractiveAppManagerService.java @@ -2100,7 +2100,7 @@ public class TvInteractiveAppManagerService extends SystemService { @Override public void onCommandRequest( - @TvInteractiveAppService.InteractiveAppServiceCommandType String cmdType, + @TvInteractiveAppService.PlaybackCommandType String cmdType, Bundle parameters) { synchronized (mLock) { if (DEBUG) {