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

Commit 2f11594d authored by David Zhao's avatar David Zhao
Browse files

Add sendRecordingInfo API

Bug: 261648703
Test: atest
Change-Id: I4ad5a1dd8ea1722504a1ac1a963b4c761eeb9084
parent bd1c98fe
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.media.tv.AdBuffer;
import android.media.tv.AdResponse;
import android.media.tv.BroadcastInfoResponse;
import android.media.tv.TvTrackInfo;
import android.media.tv.TvRecordingInfo;
import android.media.tv.interactive.AppLinkInfo;
import android.media.tv.interactive.ITvInteractiveAppClient;
import android.media.tv.interactive.ITvInteractiveAppManagerCallback;
@@ -52,6 +53,7 @@ interface ITvInteractiveAppManager {
    void sendCurrentTvInputId(in IBinder sessionToken, in String inputId, int userId);
    void sendSigningResult(in IBinder sessionToken, in String signingId, in byte[] result,
            int userId);
    void sendTvRecordingInfo(in IBinder sessionToken, in TvRecordingInfo recordingInfo, int userId);
    void notifyError(in IBinder sessionToken, in String errMsg, in Bundle params, int userId);
    void createSession(in ITvInteractiveAppClient client, in String iAppServiceId, int type,
            int seq, int userId);
+2 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.media.tv.AdBuffer;
import android.media.tv.AdResponse;
import android.media.tv.BroadcastInfoResponse;
import android.media.tv.TvTrackInfo;
import android.media.tv.TvRecordingInfo;
import android.os.Bundle;
import android.view.Surface;

@@ -44,6 +45,7 @@ oneway interface ITvInteractiveAppSession {
    void sendTrackInfoList(in List<TvTrackInfo> tracks);
    void sendCurrentTvInputId(in String inputId);
    void sendSigningResult(in String signingId, in byte[] result);
    void sendTvRecordingInfo(in TvRecordingInfo recordingInfo);
    void notifyError(in String errMsg, in Bundle params);
    void release();
    void notifyTuned(in Uri channelUri);
+12 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.media.tv.AdBuffer;
import android.media.tv.AdResponse;
import android.media.tv.BroadcastInfoResponse;
import android.media.tv.TvContentRating;
import android.media.tv.TvRecordingInfo;
import android.media.tv.TvTrackInfo;
import android.media.tv.interactive.TvInteractiveAppService.Session;
import android.net.Uri;
@@ -85,6 +86,7 @@ public class ITvInteractiveAppSessionWrapper
    private static final int DO_NOTIFY_RECORDING_STARTED = 30;
    private static final int DO_NOTIFY_RECORDING_STOPPED = 31;
    private static final int DO_NOTIFY_AD_BUFFER_CONSUMED = 32;
    private static final int DO_SEND_RECORDING_INFO = 33;

    private final HandlerCaller mCaller;
    private Session mSessionImpl;
@@ -168,6 +170,10 @@ public class ITvInteractiveAppSessionWrapper
                mSessionImpl.sendCurrentTvInputId((String) msg.obj);
                break;
            }
            case DO_SEND_RECORDING_INFO: {
                mSessionImpl.sendTvRecordingInfo((TvRecordingInfo) msg.obj);
                break;
            }
            case DO_NOTIFY_RECORDING_STARTED: {
                mSessionImpl.notifyRecordingStarted((String) msg.obj);
                break;
@@ -337,6 +343,12 @@ public class ITvInteractiveAppSessionWrapper
                mCaller.obtainMessageO(DO_SEND_CURRENT_TV_INPUT_ID, inputId));
    }

    @Override
    public void sendTvRecordingInfo(@Nullable TvRecordingInfo recordingInfo) {
        mCaller.executeOrSendMessage(
                mCaller.obtainMessageO(DO_SEND_RECORDING_INFO, recordingInfo));
    }

    @Override
    public void sendSigningResult(@NonNull String signingId, @NonNull byte[] result) {
        mCaller.executeOrSendMessage(
+12 −0
Original line number Diff line number Diff line
@@ -1098,6 +1098,18 @@ public final class TvInteractiveAppManager {
            }
        }

        void sendTvRecordingInfo(@Nullable TvRecordingInfo recordingInfo) {
            if (mToken == null) {
                Log.w(TAG, "The session has been already released");
                return;
            }
            try {
                mService.sendTvRecordingInfo(mToken, recordingInfo, mUserId);
            } catch (RemoteException e) {
                throw e.rethrowFromSystemServer();
            }
        }

        void notifyRecordingStarted(String recordingId) {
            if (mToken == null) {
                Log.w(TAG, "The session has been already released");
+13 −0
Original line number Diff line number Diff line
@@ -456,6 +456,15 @@ public abstract class TvInteractiveAppService extends Service {
        public void onCurrentTvInputId(@Nullable String inputId) {
        }

        /**
         * Receives requested recording info.
         *
         * @param recordingInfo The requested recordingh info. Null if recording not found.
         * @hide
         */
        public void onRecordingInfo(@Nullable TvRecordingInfo recordingInfo) {
        }

        /**
         * Receives started recording's ID.
         *
@@ -1141,6 +1150,10 @@ public abstract class TvInteractiveAppService extends Service {
            onCurrentTvInputId(inputId);
        }

        void sendTvRecordingInfo(@Nullable TvRecordingInfo recordingInfo) {
            onRecordingInfo(recordingInfo);
        }

        void sendSigningResult(String signingId, byte[] result) {
            onSigningResult(signingId, result);
        }
Loading