diff --git a/api/current.txt b/api/current.txt index 4dbd8ed2addb3..793566f682608 100644 --- a/api/current.txt +++ b/api/current.txt @@ -23025,6 +23025,7 @@ package android.media.tv { method public boolean isRatingBlocked(android.media.tv.TvContentRating); method public void registerCallback(android.media.tv.TvInputManager.TvInputCallback, android.os.Handler); method public void unregisterCallback(android.media.tv.TvInputManager.TvInputCallback); + method public void updateTvInputInfo(android.media.tv.TvInputInfo); field public static final java.lang.String ACTION_BLOCKED_RATINGS_CHANGED = "android.media.tv.action.BLOCKED_RATINGS_CHANGED"; field public static final java.lang.String ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED = "android.media.tv.action.PARENTAL_CONTROLS_ENABLED_CHANGED"; field public static final java.lang.String ACTION_QUERY_CONTENT_RATING_SYSTEMS = "android.media.tv.action.QUERY_CONTENT_RATING_SYSTEMS"; @@ -23062,7 +23063,6 @@ package android.media.tv { method public final android.os.IBinder onBind(android.content.Intent); method public android.media.tv.TvInputService.RecordingSession onCreateRecordingSession(java.lang.String); method public abstract android.media.tv.TvInputService.Session onCreateSession(java.lang.String); - method public static final void updateTvInputInfo(android.content.Context, android.media.tv.TvInputInfo); field public static final java.lang.String SERVICE_INTERFACE = "android.media.tv.TvInputService"; field public static final java.lang.String SERVICE_META_DATA = "android.media.tv.input"; } diff --git a/api/system-current.txt b/api/system-current.txt index c62726927b5c4..e38120480582d 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -24711,6 +24711,7 @@ package android.media.tv { method public void removeBlockedRating(android.media.tv.TvContentRating); method public void setParentalControlsEnabled(boolean); method public void unregisterCallback(android.media.tv.TvInputManager.TvInputCallback); + method public void updateTvInputInfo(android.media.tv.TvInputInfo); field public static final java.lang.String ACTION_BLOCKED_RATINGS_CHANGED = "android.media.tv.action.BLOCKED_RATINGS_CHANGED"; field public static final java.lang.String ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED = "android.media.tv.action.PARENTAL_CONTROLS_ENABLED_CHANGED"; field public static final java.lang.String ACTION_QUERY_CONTENT_RATING_SYSTEMS = "android.media.tv.action.QUERY_CONTENT_RATING_SYSTEMS"; @@ -24765,7 +24766,6 @@ package android.media.tv { method public java.lang.String onHardwareRemoved(android.media.tv.TvInputHardwareInfo); method public android.media.tv.TvInputInfo onHdmiDeviceAdded(android.hardware.hdmi.HdmiDeviceInfo); method public java.lang.String onHdmiDeviceRemoved(android.hardware.hdmi.HdmiDeviceInfo); - method public static final void updateTvInputInfo(android.content.Context, android.media.tv.TvInputInfo); field public static final java.lang.String SERVICE_INTERFACE = "android.media.tv.TvInputService"; field public static final java.lang.String SERVICE_META_DATA = "android.media.tv.input"; } diff --git a/api/test-current.txt b/api/test-current.txt index 51b31b924cbcc..8e562aee22ae0 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -23093,6 +23093,7 @@ package android.media.tv { method public boolean isRatingBlocked(android.media.tv.TvContentRating); method public void registerCallback(android.media.tv.TvInputManager.TvInputCallback, android.os.Handler); method public void unregisterCallback(android.media.tv.TvInputManager.TvInputCallback); + method public void updateTvInputInfo(android.media.tv.TvInputInfo); field public static final java.lang.String ACTION_BLOCKED_RATINGS_CHANGED = "android.media.tv.action.BLOCKED_RATINGS_CHANGED"; field public static final java.lang.String ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED = "android.media.tv.action.PARENTAL_CONTROLS_ENABLED_CHANGED"; field public static final java.lang.String ACTION_QUERY_CONTENT_RATING_SYSTEMS = "android.media.tv.action.QUERY_CONTENT_RATING_SYSTEMS"; @@ -23130,7 +23131,6 @@ package android.media.tv { method public final android.os.IBinder onBind(android.content.Intent); method public android.media.tv.TvInputService.RecordingSession onCreateRecordingSession(java.lang.String); method public abstract android.media.tv.TvInputService.Session onCreateSession(java.lang.String); - method public static final void updateTvInputInfo(android.content.Context, android.media.tv.TvInputInfo); field public static final java.lang.String SERVICE_INTERFACE = "android.media.tv.TvInputService"; field public static final java.lang.String SERVICE_META_DATA = "android.media.tv.input"; } diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index b85ed9c83857d..6af9ef2271fa1 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -8083,11 +8083,11 @@ i + {@link android.media.tv.TvInputManager#updateTvInputInfo(android.media.tv.TvInputInfo)}. --> + {@link android.media.tv.TvInputManager#updateTvInputInfo(android.media.tv.TvInputInfo)}. --> diff --git a/media/java/android/media/tv/TvInputManager.java b/media/java/android/media/tv/TvInputManager.java index bfd938e4bfbdd..5c9d2b230abcd 100644 --- a/media/java/android/media/tv/TvInputManager.java +++ b/media/java/android/media/tv/TvInputManager.java @@ -191,7 +191,9 @@ public final class TvInputManager { /** * Error for {@link TvInputService.RecordingSession#notifyError(int)} and * {@link TvRecordingClient.RecordingCallback#onError(int)}: The requested operation cannot be - * completed due to a problem that does not fit under any other error codes. + * completed due to a problem that does not fit under any other error codes, or the error code + * for the problem is defined on the higher version than application's + * android:targetSdkVersion. */ public static final int RECORDING_ERROR_UNKNOWN = 0; @@ -1181,14 +1183,23 @@ public final class TvInputManager { } /** - * Updates information about an existing TV input. + * Updates the TvInputInfo for an existing TV input. A TV input service + * implementation may call this method to pass the application and system an up-to-date + * TvInputInfo object that describes itself. * - *

This is called internally only by {@link TvInputService}. + *

The system automatically creates a TvInputInfo object for each TV input, + * based on the information collected from the AndroidManifest.xml, thus it is not + * necessary to call this method unless such information has changed dynamically. + * Use {@link TvInputInfo.Builder} to build a new TvInputInfo object. + * + *

Attempting to change information about a TV input that the calling package does not own + * does nothing. * * @param inputInfo The TvInputInfo object that contains new information. * @throws IllegalArgumentException if the argument is {@code null}. + * @see TvInputCallback#onTvInputInfoUpdated(TvInputInfo) */ - void updateTvInputInfo(@NonNull TvInputInfo inputInfo) { + public void updateTvInputInfo(@NonNull TvInputInfo inputInfo) { Preconditions.checkNotNull(inputInfo); try { mService.updateTvInputInfo(inputInfo, mUserId); diff --git a/media/java/android/media/tv/TvInputService.java b/media/java/android/media/tv/TvInputService.java index 21211d74b2462..7ae8da091adb2 100644 --- a/media/java/android/media/tv/TvInputService.java +++ b/media/java/android/media/tv/TvInputService.java @@ -256,31 +256,6 @@ public abstract class TvInputService extends Service { return null; } - /** - * Updates the TvInputInfo for an existing TV input. A TV input service - * implementation may call this method to pass the application and system an up-to-date - * TvInputInfo object that describes itself. - * - *

The system automatically creates a TvInputInfo object for each TV input, - * based on the information collected from the AndroidManifest.xml, thus it is not - * necessary to call this method unless such information has changed dynamically. - * Use {@link TvInputInfo.Builder} to build a new TvInputInfo object. - * - *

Attempting to change information about a TV input that the calling package does not own - * does nothing. - * - * @param context The application context. - * @param inputInfo The TvInputInfo object that contains new information. - * @see TvInputManager.TvInputCallback#onTvInputInfoUpdated(TvInputInfo) - */ - public static final void updateTvInputInfo(Context context, TvInputInfo inputInfo) { - TvInputManager manager = (TvInputManager) context.getSystemService( - Context.TV_INPUT_SERVICE); - if (manager != null) { - manager.updateTvInputInfo(inputInfo); - } - } - private boolean isPassthroughInput(String inputId) { if (mTvInputManager == null) { mTvInputManager = (TvInputManager) getSystemService(Context.TV_INPUT_SERVICE);