diff --git a/api/current.txt b/api/current.txt index dc7e2809447a9..7f4075a24c3d0 100644 --- a/api/current.txt +++ b/api/current.txt @@ -22950,10 +22950,8 @@ package android.media.tv { field public static final int INPUT_STATE_CONNECTED_STANDBY = 1; // 0x1 field public static final int INPUT_STATE_DISCONNECTED = 2; // 0x2 field public static final java.lang.String META_DATA_CONTENT_RATING_SYSTEMS = "android.media.tv.metadata.CONTENT_RATING_SYSTEMS"; - field public static final int RECORDING_ERROR_CONNECTION_FAILED = 1; // 0x1 - field public static final int RECORDING_ERROR_DISCONNECTED = 2; // 0x2 - field public static final int RECORDING_ERROR_INSUFFICIENT_SPACE = 3; // 0x3 - field public static final int RECORDING_ERROR_RESOURCE_BUSY = 4; // 0x4 + 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 long TIME_SHIFT_INVALID_TIME = -9223372036854775808L; // 0x8000000000000000L field public static final int TIME_SHIFT_STATUS_AVAILABLE = 3; // 0x3 @@ -23053,6 +23051,8 @@ package android.media.tv { public static abstract class TvRecordingClient.RecordingCallback { ctor public TvRecordingClient.RecordingCallback(); + method public void onConnectionFailed(java.lang.String); + method public void onDisconnected(java.lang.String); method public void onError(int); method public void onRecordingStopped(android.net.Uri); method public void onTuned(); diff --git a/api/system-current.txt b/api/system-current.txt index 61f72f36ef9f2..75988ababdc91 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -24649,10 +24649,8 @@ package android.media.tv { field public static final int INPUT_STATE_CONNECTED_STANDBY = 1; // 0x1 field public static final int INPUT_STATE_DISCONNECTED = 2; // 0x2 field public static final java.lang.String META_DATA_CONTENT_RATING_SYSTEMS = "android.media.tv.metadata.CONTENT_RATING_SYSTEMS"; - field public static final int RECORDING_ERROR_CONNECTION_FAILED = 1; // 0x1 - field public static final int RECORDING_ERROR_DISCONNECTED = 2; // 0x2 - field public static final int RECORDING_ERROR_INSUFFICIENT_SPACE = 3; // 0x3 - field public static final int RECORDING_ERROR_RESOURCE_BUSY = 4; // 0x4 + 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 long TIME_SHIFT_INVALID_TIME = -9223372036854775808L; // 0x8000000000000000L field public static final int TIME_SHIFT_STATUS_AVAILABLE = 3; // 0x3 @@ -24811,6 +24809,8 @@ package android.media.tv { public static abstract class TvRecordingClient.RecordingCallback { ctor public TvRecordingClient.RecordingCallback(); + method public void onConnectionFailed(java.lang.String); + method public void onDisconnected(java.lang.String); method public void onError(int); method public void onEvent(java.lang.String, java.lang.String, android.os.Bundle); method public void onRecordingStopped(android.net.Uri); diff --git a/api/test-current.txt b/api/test-current.txt index 17d788f16789c..dfbea5f59d04b 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -22959,10 +22959,8 @@ package android.media.tv { field public static final int INPUT_STATE_CONNECTED_STANDBY = 1; // 0x1 field public static final int INPUT_STATE_DISCONNECTED = 2; // 0x2 field public static final java.lang.String META_DATA_CONTENT_RATING_SYSTEMS = "android.media.tv.metadata.CONTENT_RATING_SYSTEMS"; - field public static final int RECORDING_ERROR_CONNECTION_FAILED = 1; // 0x1 - field public static final int RECORDING_ERROR_DISCONNECTED = 2; // 0x2 - field public static final int RECORDING_ERROR_INSUFFICIENT_SPACE = 3; // 0x3 - field public static final int RECORDING_ERROR_RESOURCE_BUSY = 4; // 0x4 + 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 long TIME_SHIFT_INVALID_TIME = -9223372036854775808L; // 0x8000000000000000L field public static final int TIME_SHIFT_STATUS_AVAILABLE = 3; // 0x3 @@ -23062,6 +23060,8 @@ package android.media.tv { public static abstract class TvRecordingClient.RecordingCallback { ctor public TvRecordingClient.RecordingCallback(); + method public void onConnectionFailed(java.lang.String); + method public void onDisconnected(java.lang.String); method public void onError(int); method public void onRecordingStopped(android.net.Uri); method public void onTuned(); diff --git a/media/java/android/media/tv/TvInputManager.java b/media/java/android/media/tv/TvInputManager.java index 1320e382a7eab..00083e6503140 100644 --- a/media/java/android/media/tv/TvInputManager.java +++ b/media/java/android/media/tv/TvInputManager.java @@ -156,36 +156,23 @@ public final class TvInputManager { */ public static final int RECORDING_ERROR_UNKNOWN = 0; - /** - * Error for {@link TvRecordingClient.RecordingCallback#onError(int)}: The recording client has - * failed to establish a connection to a recording session. - */ - public static final int RECORDING_ERROR_CONNECTION_FAILED = 1; - - /** - * Error for {@link TvRecordingClient.RecordingCallback#onError(int)}: The recording client has - * been disconnected from the current recording session. - */ - public static final int RECORDING_ERROR_DISCONNECTED = 2; - /** * Error for {@link TvInputService.RecordingSession#notifyError(int)} and * {@link TvRecordingClient.RecordingCallback#onError(int)}: Recording cannot proceed due to * insufficient storage space. */ - public static final int RECORDING_ERROR_INSUFFICIENT_SPACE = 3; + public static final int RECORDING_ERROR_INSUFFICIENT_SPACE = 1; /** * Error for {@link TvInputService.RecordingSession#notifyError(int)} and * {@link TvRecordingClient.RecordingCallback#onError(int)}: Recording cannot proceed because * a required recording resource was not able to be allocated. */ - public static final int RECORDING_ERROR_RESOURCE_BUSY = 4; + public static final int RECORDING_ERROR_RESOURCE_BUSY = 2; /** @hide */ @Retention(RetentionPolicy.SOURCE) - @IntDef({RECORDING_ERROR_UNKNOWN, RECORDING_ERROR_CONNECTION_FAILED, - RECORDING_ERROR_DISCONNECTED, RECORDING_ERROR_INSUFFICIENT_SPACE, + @IntDef({RECORDING_ERROR_UNKNOWN, RECORDING_ERROR_INSUFFICIENT_SPACE, RECORDING_ERROR_RESOURCE_BUSY}) public @interface RecordingError {} diff --git a/media/java/android/media/tv/TvInputService.java b/media/java/android/media/tv/TvInputService.java index 334c84b1f35e2..4ebd0fccc5c84 100644 --- a/media/java/android/media/tv/TvInputService.java +++ b/media/java/android/media/tv/TvInputService.java @@ -1584,6 +1584,10 @@ public abstract class TvInputService extends Service { * new data entry in the {@link TvContract.RecordedPrograms} table that describes the newly * recorded program. * + *

The recording session must call this method in response to {@link #onStopRecording()}. + * The session may call it even before receiving a call to {@link #onStopRecording()} if a + * partially recorded program is available when there is an error. + * * @param recordedProgramUri The URI of the newly recorded program. */ public void notifyRecordingStopped(final Uri recordedProgramUri) { @@ -1604,8 +1608,14 @@ public abstract class TvInputService extends Service { } /** - * Informs the application that there is an error. It may be called at any time after this - * recording session is created until {@link #onRelease()} is called. + * Informs the application that there is an error and this recording session is no longer + * able to start or continue recording. It may be called at any time after the recording + * session is created until {@link #onRelease()} is called. + * + *

The application may release the current session upon receiving the error code through + * {@link TvRecordingClient.RecordingCallback#onError(int)}. The session may call + * {@link #notifyRecordingStopped(Uri)} if a partially recorded but still playable program + * is available, before calling this method. * * @param error The error code. Should be one of the followings. *