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

Commit 2a650c30 authored by David Zhao's avatar David Zhao Committed by Android (Google) Code Review
Browse files

Merge "Unhide Playback APIs" into main

parents 317117ad 70be42fa
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -27320,6 +27320,7 @@ package android.media.tv {
    field public static final int VIDEO_UNAVAILABLE_REASON_CAS_UNKNOWN = 18; // 0x12
    field public static final int VIDEO_UNAVAILABLE_REASON_INSUFFICIENT_RESOURCE = 6; // 0x6
    field public static final int VIDEO_UNAVAILABLE_REASON_NOT_CONNECTED = 5; // 0x5
    field @FlaggedApi("android.media.tv.flags.tiaf_v_apis") public static final int VIDEO_UNAVAILABLE_REASON_STOPPED = 19; // 0x13
    field public static final int VIDEO_UNAVAILABLE_REASON_TUNING = 1; // 0x1
    field public static final int VIDEO_UNAVAILABLE_REASON_UNKNOWN = 0; // 0x0
    field public static final int VIDEO_UNAVAILABLE_REASON_WEAK_SIGNAL = 2; // 0x2
@@ -27411,6 +27412,7 @@ package android.media.tv {
    method public void onRemoveBroadcastInfo(int);
    method public void onRequestAd(@NonNull android.media.tv.AdRequest);
    method public void onRequestBroadcastInfo(@NonNull android.media.tv.BroadcastInfoRequest);
    method @FlaggedApi("android.media.tv.flags.tiaf_v_apis") public void onResumePlayback();
    method public boolean onSelectAudioPresentation(int, int);
    method public boolean onSelectTrack(int, @Nullable String);
    method public abstract void onSetCaptionEnabled(boolean);
@@ -27418,6 +27420,7 @@ package android.media.tv {
    method public abstract void onSetStreamVolume(@FloatRange(from=0.0, to=1.0) float);
    method public abstract boolean onSetSurface(@Nullable android.view.Surface);
    method public void onSetTvMessageEnabled(int, boolean);
    method @FlaggedApi("android.media.tv.flags.tiaf_v_apis") public void onStopPlayback(int);
    method public void onSurfaceChanged(int, int, int);
    method public long onTimeShiftGetCurrentPosition();
    method public long onTimeShiftGetStartPosition();
@@ -27552,6 +27555,7 @@ package android.media.tv {
    method public boolean onUnhandledInputEvent(android.view.InputEvent);
    method public void overrideTvAppAttributionSource(@NonNull android.content.AttributionSource);
    method public void reset();
    method @FlaggedApi("android.media.tv.flags.tiaf_v_apis") public void resumePlayback();
    method public void selectAudioPresentation(int, int);
    method public void selectTrack(int, String);
    method public void sendAppPrivateCommand(@NonNull String, android.os.Bundle);
@@ -27564,6 +27568,7 @@ package android.media.tv {
    method public void setTvMessageEnabled(int, boolean);
    method public void setZOrderMediaOverlay(boolean);
    method public void setZOrderOnTop(boolean);
    method @FlaggedApi("android.media.tv.flags.tiaf_v_apis") public void stopPlayback(int);
    method public void timeShiftPause();
    method public void timeShiftPlay(String, android.net.Uri);
    method public void timeShiftResume();
+1 −1
Original line number Diff line number Diff line
@@ -111,7 +111,7 @@ interface ITvInputManager {
    void resumeRecording(in IBinder sessionToken, in Bundle params, int userId);

    // For playback control
    void startPlayback(in IBinder sessionToken, int userId);
    void resumePlayback(in IBinder sessionToken, int userId);
    void stopPlayback(in IBinder sessionToken, int mode, int userId);

    // For broadcast info
+1 −1
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ oneway interface ITvInputSession {
    void timeShiftSetMode(int mode);
    void timeShiftEnablePositionTracking(boolean enable);

    void startPlayback();
    void resumePlayback();
    void stopPlayback(int mode);

    // For the recording session
+5 −5
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ public class ITvInputSessionWrapper extends ITvInputSession.Stub implements Hand
    private static final int DO_SET_TV_MESSAGE_ENABLED = 31;
    private static final int DO_NOTIFY_TV_MESSAGE = 32;
    private static final int DO_STOP_PLAYBACK = 33;
    private static final int DO_START_PLAYBACK = 34;
    private static final int DO_RESUME_PLAYBACK = 34;
    private static final int DO_SET_VIDEO_FROZEN = 35;
    private static final int DO_NOTIFY_AD_SESSION_DATA = 36;

@@ -295,8 +295,8 @@ public class ITvInputSessionWrapper extends ITvInputSession.Stub implements Hand
                mTvInputSessionImpl.stopPlayback(msg.arg1);
                break;
            }
            case DO_START_PLAYBACK: {
                mTvInputSessionImpl.startPlayback();
            case DO_RESUME_PLAYBACK: {
                mTvInputSessionImpl.resumePlayback();
                break;
            }
            case DO_SET_VIDEO_FROZEN: {
@@ -523,8 +523,8 @@ public class ITvInputSessionWrapper extends ITvInputSession.Stub implements Hand
    }

    @Override
    public void startPlayback() {
        mCaller.executeOrSendMessage(mCaller.obtainMessage(DO_START_PLAYBACK));
    public void resumePlayback() {
        mCaller.executeOrSendMessage(mCaller.obtainMessage(DO_RESUME_PLAYBACK));
    }


+8 −5
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.media.tv;

import android.annotation.CallbackExecutor;
import android.annotation.FlaggedApi;
import android.annotation.IntDef;
import android.annotation.IntRange;
import android.annotation.NonNull;
@@ -35,6 +36,7 @@ import android.media.AudioFormat.Encoding;
import android.media.AudioPresentation;
import android.media.PlaybackParams;
import android.media.tv.ad.TvAdManager;
import android.media.tv.flags.Flags;
import android.media.tv.interactive.TvInteractiveAppManager;
import android.net.Uri;
import android.os.Binder;
@@ -131,7 +133,8 @@ public final class TvInputManager {
            VIDEO_UNAVAILABLE_REASON_CAS_NEED_ACTIVATION, VIDEO_UNAVAILABLE_REASON_CAS_NEED_PAIRING,
            VIDEO_UNAVAILABLE_REASON_CAS_NO_CARD, VIDEO_UNAVAILABLE_REASON_CAS_CARD_MUTE,
            VIDEO_UNAVAILABLE_REASON_CAS_CARD_INVALID, VIDEO_UNAVAILABLE_REASON_CAS_BLACKOUT,
            VIDEO_UNAVAILABLE_REASON_CAS_REBOOTING, VIDEO_UNAVAILABLE_REASON_CAS_UNKNOWN})
            VIDEO_UNAVAILABLE_REASON_CAS_REBOOTING, VIDEO_UNAVAILABLE_REASON_CAS_UNKNOWN,
            VIDEO_UNAVAILABLE_REASON_STOPPED})
    public @interface VideoUnavailableReason {}

    /** Indicates that this TV message contains watermarking data */
@@ -344,9 +347,9 @@ public final class TvInputManager {
    /**
     * Reason for {@link TvInputService.Session#notifyVideoUnavailable(int)} and
     * {@link TvView.TvInputCallback#onVideoUnavailable(String, int)}: Video is unavailable because
     * it has been stopped by stopPlayback.
     * @hide
     * it has been stopped by {@link TvView#stopPlayback(int)}.
     */
    @FlaggedApi(Flags.FLAG_TIAF_V_APIS)
    public static final int VIDEO_UNAVAILABLE_REASON_STOPPED = 19;

    /** @hide */
@@ -3616,13 +3619,13 @@ public final class TvInputManager {
            }
        }

        void startPlayback() {
        void resumePlayback() {
            if (mToken == null) {
                Log.w(TAG, "The session has been already released");
                return;
            }
            try {
                mService.startPlayback(mToken, mUserId);
                mService.resumePlayback(mToken, mUserId);
            } catch (RemoteException e) {
                throw e.rethrowFromSystemServer();
            }
Loading