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

Commit 9fbff535 authored by Aishwarya Mallampati's avatar Aishwarya Mallampati
Browse files

update start and stop transmission updates methods

send request immediataly to handler

Bug: 409584433
Test: atest
Flag: com.android.internal.telephony.flags.satellite_improve_multi_thread_design
Change-Id: I6738367daa93734754fb77c070023d0080b4d903
parent 7ca3cdcd
Loading
Loading
Loading
Loading
+60 −0
Original line number Diff line number Diff line
@@ -330,6 +330,8 @@ public class SatelliteController extends Handler {
    private static final int REQUEST_IS_EMERGENCY_MODE_ENABLED = 69;
    private static final int REQUEST_IS_SATELLITE_SUPPORTED = 70;
    private static final int REQUEST_SATELLITE_CAPABILITIES = 71;
    private static final int REQUEST_START_SATELLITE_TRANSMISSION_UPDATES = 72;
    private static final int REQUEST_STOP_SATELLITE_TRANSMISSION_UPDATES = 73;

    @NonNull private static SatelliteController sInstance;
    @NonNull private final Context mContext;
@@ -2402,6 +2404,34 @@ public class SatelliteController extends Handler {
                break;
            }

            case REQUEST_START_SATELLITE_TRANSMISSION_UPDATES: {
                plogd("REQUEST_START_SATELLITE_TRANSMISSION_UPDATES");
                SomeArgs args = (SomeArgs) msg.obj;
                IIntegerConsumer errorCallback = (IIntegerConsumer) args.arg1;
                ISatelliteTransmissionUpdateCallback callback =
                        (ISatelliteTransmissionUpdateCallback) args.arg2;
                try {
                    handleRequestStartSatelliteTransmissionUpdates(errorCallback, callback);
                } finally {
                    args.recycle();
                }
                break;
            }

            case REQUEST_STOP_SATELLITE_TRANSMISSION_UPDATES: {
                plogd("REQUEST_STOP_SATELLITE_TRANSMISSION_UPDATES");
                SomeArgs args = (SomeArgs) msg.obj;
                IIntegerConsumer errorCallback = (IIntegerConsumer) args.arg1;
                ISatelliteTransmissionUpdateCallback callback =
                        (ISatelliteTransmissionUpdateCallback) args.arg2;
                try {
                    handleRequestStopSatelliteTransmissionUpdates(errorCallback, callback);
                } finally {
                    args.recycle();
                }
                break;
            }

            default:
                Log.w(TAG, "SatelliteControllerHandler: unexpected message code: " +
                        msg.what);
@@ -3018,6 +3048,21 @@ public class SatelliteController extends Handler {
    public void startSatelliteTransmissionUpdates(
            @NonNull IIntegerConsumer errorCallback,
            @NonNull ISatelliteTransmissionUpdateCallback callback) {
        if (mFeatureFlags.satelliteImproveMultiThreadDesign()) {
            SomeArgs args = SomeArgs.obtain();
            args.arg1 = errorCallback;
            args.arg2 = callback;
            sendMessage(obtainMessage(REQUEST_START_SATELLITE_TRANSMISSION_UPDATES, args));
            return;
        }

        handleRequestStartSatelliteTransmissionUpdates(errorCallback, callback);
    }

    private void handleRequestStartSatelliteTransmissionUpdates(
            @NonNull IIntegerConsumer errorCallback,
            @NonNull ISatelliteTransmissionUpdateCallback callback) {
        plogd("handleRequestStartSatelliteTransmissionUpdates");
        Consumer<Integer> result = FunctionalUtils.ignoreRemoteException(errorCallback::accept);
        int error = evaluateOemSatelliteRequestAllowed(true);
        if (error != SATELLITE_RESULT_SUCCESS) {
@@ -3041,6 +3086,21 @@ public class SatelliteController extends Handler {
     */
    public void stopSatelliteTransmissionUpdates(@NonNull IIntegerConsumer errorCallback,
            @NonNull ISatelliteTransmissionUpdateCallback callback) {
        if (mFeatureFlags.satelliteImproveMultiThreadDesign()) {
            SomeArgs args = SomeArgs.obtain();
            args.arg1 = errorCallback;
            args.arg2 = callback;
            sendMessage(obtainMessage(REQUEST_STOP_SATELLITE_TRANSMISSION_UPDATES, args));
            return;
        }

        handleRequestStopSatelliteTransmissionUpdates(errorCallback, callback);
    }

    private void handleRequestStopSatelliteTransmissionUpdates(
            @NonNull IIntegerConsumer errorCallback,
            @NonNull ISatelliteTransmissionUpdateCallback callback) {
        plogd("handleRequestStopSatelliteTransmissionUpdates");
        Consumer<Integer> result = FunctionalUtils.ignoreRemoteException(errorCallback::accept);
        mPointingAppController.unregisterForSatelliteTransmissionUpdates(
                getSelectedSatelliteSubId(), result, callback);
+3 −0
Original line number Diff line number Diff line
@@ -1539,6 +1539,7 @@ public class SatelliteControllerTest extends TelephonyTest {
        setUpResponseForStartSatelliteTransmissionUpdates(SATELLITE_RESULT_SUCCESS);
        mSatelliteControllerUT.startSatelliteTransmissionUpdates(mIIntegerConsumer,
                mStartTransmissionUpdateCallback);
        processAllMessages();
        verify(mMockPointingAppController).registerForSatelliteTransmissionUpdates(anyInt(),
                eq(mStartTransmissionUpdateCallback));
        processAllMessages();
@@ -1570,6 +1571,7 @@ public class SatelliteControllerTest extends TelephonyTest {
        setUpResponseForStopSatelliteTransmissionUpdates(SATELLITE_RESULT_SUCCESS);
        mSatelliteControllerUT.stopSatelliteTransmissionUpdates(mIIntegerConsumer,
                mStopTransmissionUpdateCallback);
        processAllMessages();
        verify(mMockPointingAppController).unregisterForSatelliteTransmissionUpdates(anyInt(),
                any(), eq(mStopTransmissionUpdateCallback));
        processAllMessages();
@@ -1583,6 +1585,7 @@ public class SatelliteControllerTest extends TelephonyTest {
        setUpResponseForStopSatelliteTransmissionUpdates(SATELLITE_RESULT_INVALID_TELEPHONY_STATE);
        mSatelliteControllerUT.stopSatelliteTransmissionUpdates(mIIntegerConsumer,
                mStopTransmissionUpdateCallback);
        processAllMessages();
        verify(mMockPointingAppController, times(2)).unregisterForSatelliteTransmissionUpdates(
                anyInt(), any(), eq(mStopTransmissionUpdateCallback));
        processAllMessages();