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

Commit bd1c98fe authored by David Zhao's avatar David Zhao
Browse files

Add getRecordingInfo API

Test: atest
Bug: 261648703
Change-Id: Ifbfd294f64bfae79d05ffb044437eca527f4a995
parent 5e999775
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ oneway interface ITvInteractiveAppClient {
    void onRequestStartRecording(in Uri programUri, int seq);
    void onRequestStopRecording(in String recordingId, int seq);
    void onSetTvRecordingInfo(in String recordingId, in TvRecordingInfo recordingInfo, int seq);
    void onRequestTvRecordingInfo(in String recordingId, int seq);
    void onRequestSigning(
            in String id, in String algorithm, in String alias, in byte[] data, int seq);
    void onAdRequest(in AdRequest request, int Seq);
+1 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ oneway interface ITvInteractiveAppSessionCallback {
    void onRequestStartRecording(in Uri programUri);
    void onRequestStopRecording(in String recordingId);
    void onSetTvRecordingInfo(in String recordingId, in TvRecordingInfo recordingInfo);
    void onRequestTvRecordingInfo(in String recordingId);
    void onRequestSigning(in String id, in String algorithm, in String alias, in byte[] data);
    void onAdRequest(in AdRequest request);
}
+31 −0
Original line number Diff line number Diff line
@@ -525,6 +525,18 @@ public final class TvInteractiveAppManager {
                }
            }

            @Override
            public void onRequestTvRecordingInfo(String recordingId, int seq) {
                synchronized (mSessionCallbackRecordMap) {
                    SessionCallbackRecord record = mSessionCallbackRecordMap.get(seq);
                    if (record == null) {
                        Log.e(TAG, "Callback not found for seq " + seq);
                        return;
                    }
                    record.postRequestTvRecordingInfo(recordingId);
                }
            }

            @Override
            public void onRequestSigning(
                    String id, String algorithm, String alias, byte[] data, int seq) {
@@ -1813,6 +1825,15 @@ public final class TvInteractiveAppManager {
            });
        }

        void postRequestTvRecordingInfo(String recordingId) {
            mHandler.post(new Runnable() {
                @Override
                public void run() {
                    mSessionCallback.onRequestTvRecordingInfo(mSession, recordingId);
                }
            });
        }

        void postSetTvRecordingInfo(String recordingId, TvRecordingInfo recordingInfo) {
            mHandler.post(new Runnable() {
                @Override
@@ -2007,6 +2028,16 @@ public final class TvInteractiveAppManager {
                TvRecordingInfo recordingInfo) {
        }

        /**
         * This is called when {@link TvInteractiveAppService.Session#requestTvRecordingInfo} is
         * called.
         *
         * @param session A {@link TvInteractiveAppService.Session} associated with this callback.
         * @param recordingId The recordingId of the recording to be stopped.
         */
        public void onRequestTvRecordingInfo(Session session, String recordingId) {
        }

        /**
         * This is called when
         * {@link TvInteractiveAppService.Session#requestSigning(String, String, String, byte[])} is
+21 −0
Original line number Diff line number Diff line
@@ -1010,6 +1010,27 @@ public abstract class TvInteractiveAppService extends Service {
            });
        }

        /**
         * Gets the recording info for the specified recording
         *
         * @hide
         */
        @CallSuper
        public void requestTvRecordingInfo(@NonNull String recordingId) {
            executeOrPostRunnableOnMainThread(() -> {
                try {
                    if (DEBUG) {
                        Log.d(TAG, "requestTvRecordingInfo");
                    }
                    if (mSessionCallback != null) {
                        mSessionCallback.onRequestTvRecordingInfo(recordingId);
                    }
                } catch (RemoteException e) {
                    Log.w(TAG, "error in requestTvRecordingInfo", e);
                }
            });
        }

        /**
         * Requests signing of the given data.
         *
+18 −0
Original line number Diff line number Diff line
@@ -2333,6 +2333,24 @@ public class TvInteractiveAppManagerService extends SystemService {
            }
        }

        @Override
        public void onRequestTvRecordingInfo(String recordingId) {
            synchronized (mLock) {
                if (DEBUG) {
                    Slogf.d(TAG, "onRequestTvRecordingInfo");
                }
                if (mSessionState.mSession == null || mSessionState.mClient == null) {
                    return;
                }
                try {
                    mSessionState.mClient.onRequestTvRecordingInfo(recordingId, mSessionState.mSeq);
                } catch (RemoteException e) {
                    Slogf.e(TAG, "error in onRequestTvRecordingInfo", e);
                }
            }
        }


        @Override
        public void onRequestSigning(String id, String algorithm, String alias, byte[] data) {
            synchronized (mLock) {