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

Commit d22f674d authored by Kyeongkab.Nam's avatar Kyeongkab.Nam Committed by Henry Fang
Browse files

Add pause and resume recoding APIs

When a program is inserted during recoding(ex. Flash News), some
applications want to pause that temporary.
Add pause and resume recording feature so that it permits to tune on
pause status while recoding.

Bug: 172029807
Test: run cts -m CtsTvTestCases -t
android.media.tv.cts.TvInputServiceTest

Change-Id: Ib11ae5d3eddcd01dbd48efa58fb2d4011040b210
parent 4a1e4df7
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -393,6 +393,7 @@ package android {
    field public static final int calendarViewShown = 16843596; // 0x101034c
    field public static final int calendarViewStyle = 16843613; // 0x101035d
    field public static final int canControlMagnification = 16844039; // 0x1010507
    field public static final int canPauseRecording = 16844314; // 0x101061a
    field public static final int canPerformGestures = 16844045; // 0x101050d
    field public static final int canRecord = 16844060; // 0x101051c
    field @Deprecated public static final int canRequestEnhancedWebAccessibility = 16843736; // 0x10103d8
@@ -1054,11 +1055,11 @@ package android {
    field public static final int parentActivityName = 16843687; // 0x10103a7
    field @Deprecated public static final int password = 16843100; // 0x101015c
    field public static final int path = 16842794; // 0x101002a
    field public static final int pathAdvancedPattern = 16844318; // 0x101061e
    field public static final int pathAdvancedPattern = 16844319; // 0x101061f
    field public static final int pathData = 16843781; // 0x1010405
    field public static final int pathPattern = 16842796; // 0x101002c
    field public static final int pathPrefix = 16842795; // 0x101002b
    field public static final int pathSuffix = 16844316; // 0x101061c
    field public static final int pathSuffix = 16844317; // 0x101061d
    field public static final int patternPathData = 16843978; // 0x10104ca
    field public static final int permission = 16842758; // 0x1010006
    field public static final int permissionFlags = 16843719; // 0x10103c7
@@ -1151,7 +1152,7 @@ package android {
    field public static final int reqNavigation = 16843306; // 0x101022a
    field public static final int reqTouchScreen = 16843303; // 0x1010227
    field public static final int requestLegacyExternalStorage = 16844291; // 0x1010603
    field public static final int requireDeviceScreenOn = 16844315; // 0x101061b
    field public static final int requireDeviceScreenOn = 16844316; // 0x101061c
    field public static final int requireDeviceUnlock = 16843756; // 0x10103ec
    field public static final int required = 16843406; // 0x101028e
    field public static final int requiredAccountType = 16843734; // 0x10103d6
@@ -1292,10 +1293,10 @@ package android {
    field public static final int spotShadowAlpha = 16843967; // 0x10104bf
    field public static final int src = 16843033; // 0x1010119
    field public static final int ssp = 16843747; // 0x10103e3
    field public static final int sspAdvancedPattern = 16844319; // 0x101061f
    field public static final int sspAdvancedPattern = 16844320; // 0x1010620
    field public static final int sspPattern = 16843749; // 0x10103e5
    field public static final int sspPrefix = 16843748; // 0x10103e4
    field public static final int sspSuffix = 16844317; // 0x101061d
    field public static final int sspSuffix = 16844318; // 0x101061e
    field public static final int stackFromBottom = 16843005; // 0x10100fd
    field public static final int stackViewStyle = 16843838; // 0x101043e
    field public static final int starStyle = 16842882; // 0x1010082
@@ -24751,6 +24752,7 @@ package android.media.tv {
  }
  public final class TvInputInfo implements android.os.Parcelable {
    method public boolean canPauseRecording();
    method public boolean canRecord();
    method @Deprecated public android.content.Intent createSettingsIntent();
    method public android.content.Intent createSetupIntent();
@@ -24784,6 +24786,7 @@ package android.media.tv {
  public static final class TvInputInfo.Builder {
    ctor public TvInputInfo.Builder(android.content.Context, android.content.ComponentName);
    method public android.media.tv.TvInputInfo build();
    method @NonNull public android.media.tv.TvInputInfo.Builder setCanPauseRecording(boolean);
    method public android.media.tv.TvInputInfo.Builder setCanRecord(boolean);
    method public android.media.tv.TvInputInfo.Builder setExtras(android.os.Bundle);
    method public android.media.tv.TvInputInfo.Builder setTunerCount(int);
@@ -24875,7 +24878,9 @@ package android.media.tv {
    method public void notifyRecordingStopped(android.net.Uri);
    method public void notifyTuned(android.net.Uri);
    method public void onAppPrivateCommand(@NonNull String, android.os.Bundle);
    method public void onPauseRecording(@NonNull android.os.Bundle);
    method public abstract void onRelease();
    method public void onResumeRecording(@NonNull android.os.Bundle);
    method public abstract void onStartRecording(@Nullable android.net.Uri);
    method public void onStartRecording(@Nullable android.net.Uri, @NonNull android.os.Bundle);
    method public abstract void onStopRecording();
@@ -24925,7 +24930,11 @@ package android.media.tv {
  public class TvRecordingClient {
    ctor public TvRecordingClient(android.content.Context, String, @NonNull android.media.tv.TvRecordingClient.RecordingCallback, android.os.Handler);
    method public void pauseRecording();
    method public void pauseRecording(@NonNull android.os.Bundle);
    method public void release();
    method public void resumeRecording();
    method public void resumeRecording(@NonNull android.os.Bundle);
    method public void sendAppPrivateCommand(@NonNull String, android.os.Bundle);
    method public void startRecording(@Nullable android.net.Uri);
    method public void startRecording(@Nullable android.net.Uri, @NonNull android.os.Bundle);
+5 −0
Original line number Diff line number Diff line
@@ -9013,6 +9013,11 @@
             changed at runtime by calling
             {@link android.media.tv.TvInputManager#updateTvInputInfo(android.media.tv.TvInputInfo)}. -->
        <attr name="tunerCount" format="integer" />
        <!-- Attribute whether the TV input service can pause recording programs.
             This value can be changed at runtime by calling
             {@link android.media.tv.TvInputManager#updateTvInputInfo(android.media.tv.TvInputInfo)}
             . -->
        <attr name="canPauseRecording" format="boolean" />
    </declare-styleable>

    <!-- Attributes that can be used with <code>rating-system-definition</code> tags inside of the
+1 −0
Original line number Diff line number Diff line
@@ -3047,6 +3047,7 @@
    <public name="rollbackDataPolicy" />
    <public name="allowClickWhenDisabled" />
    <public name="windowLayoutAffinity" />
    <public name="canPauseRecording" />
    <!-- @hide -->
    <public name="windowBackgroundBlurRadius"/>
    <public name="requireDeviceScreenOn" />
+2 −0
Original line number Diff line number Diff line
@@ -94,6 +94,8 @@ interface ITvInputManager {
    // For the recording session
    void startRecording(in IBinder sessionToken, in Uri programUri, in Bundle params, int userId);
    void stopRecording(in IBinder sessionToken, int userId);
    void pauseRecording(in IBinder sessionToken, in Bundle params, int userId);
    void resumeRecording(in IBinder sessionToken, in Bundle params, int userId);

    // For TV input hardware binding
    List<TvInputHardwareInfo> getHardwareList();
+2 −0
Original line number Diff line number Diff line
@@ -58,4 +58,6 @@ oneway interface ITvInputSession {
    // For the recording session
    void startRecording(in Uri programUri, in Bundle params);
    void stopRecording();
    void pauseRecording(in Bundle params);
    void resumeRecording(in Bundle params);
}
Loading