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

Commit b7c17d8e authored by Hyosun Kim's avatar Hyosun Kim
Browse files

Pass emergency session information to modem

Bug: 331710063
Test: atest SatelliteControllerTest, RadioOnStateListenerTest
Test: manual - using SatelliteTestApp
1.click the enableSatellite, verify the isEmergency set as true.
2.click the disableSatellite, verify the isEmergency set as false.

Change-Id: I673600bcffd2de69c8274cca86d99c38a9ad66a4
parent bac19195
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -153,7 +153,7 @@ public class RadioOnHelper implements RadioOnStateListener.Callback {
    private void powerOffSatellite(Phone phoneForEmergencyCall) {
        SatelliteController satelliteController = SatelliteController.getInstance();
        satelliteController.requestSatelliteEnabled(phoneForEmergencyCall.getSubId(),
                false /* enableSatellite */, false /* enableDemoMode */,
                false /* enableSatellite */, false /* enableDemoMode */, false /* isEmergency */,
                new IIntegerConsumer.Stub() {
                    @Override
                    public void accept(int result) {
+1 −0
Original line number Diff line number Diff line
@@ -395,6 +395,7 @@ public class RadioOnStateListener {
                if (mSatelliteController.isSatelliteEnabled()) {
                    mSatelliteController.requestSatelliteEnabled(mPhone.getSubId(),
                            false /* enableSatellite */, false /* enableDemoMode */,
                            false /* isEmergency*/,
                            new IIntegerConsumer.Stub() {
                                @Override
                                public void accept(int result) {
+13 −8
Original line number Diff line number Diff line
@@ -746,13 +746,15 @@ public class SatelliteController extends Handler {
    private static final class RequestSatelliteEnabledArgument {
        public boolean enableSatellite;
        public boolean enableDemoMode;
        public boolean isEmergency;
        @NonNull public Consumer<Integer> callback;
        public long requestId;

        RequestSatelliteEnabledArgument(boolean enableSatellite, boolean enableDemoMode,
                Consumer<Integer> callback) {
                boolean isEmergency, Consumer<Integer> callback) {
            this.enableSatellite = enableSatellite;
            this.enableDemoMode = enableDemoMode;
            this.isEmergency = isEmergency;
            this.callback = callback;
            this.requestId = sNextSatelliteEnableRequestId.getAndUpdate(
                    n -> ((n + 1) % Long.MAX_VALUE));
@@ -1372,12 +1374,13 @@ public class SatelliteController extends Handler {
     * @param enableSatellite {@code true} to enable the satellite modem and
     *                        {@code false} to disable.
     * @param enableDemoMode {@code true} to enable demo mode and {@code false} to disable.
     * @param isEmergency {@code true} to enable emergency mode, {@code false} otherwise.
     * @param callback The callback to get the error code of the request.
     */
    public void requestSatelliteEnabled(int subId, boolean enableSatellite, boolean enableDemoMode,
            @NonNull IIntegerConsumer callback) {
            boolean isEmergency, @NonNull IIntegerConsumer callback) {
        logd("requestSatelliteEnabled subId: " + subId + " enableSatellite: " + enableSatellite
                + " enableDemoMode: " + enableDemoMode);
                + " enableDemoMode: " + enableDemoMode + " isEmergency: " + isEmergency);
        Consumer<Integer> result = FunctionalUtils.ignoreRemoteException(callback::accept);
        int error = evaluateOemSatelliteRequestAllowed(true);
        if (error != SATELLITE_RESULT_SUCCESS) {
@@ -1418,7 +1421,8 @@ public class SatelliteController extends Handler {
        }

        RequestSatelliteEnabledArgument request =
                new RequestSatelliteEnabledArgument(enableSatellite, enableDemoMode, result);
                new RequestSatelliteEnabledArgument(enableSatellite, enableDemoMode, isEmergency,
                        result);
        /**
         * Multiple satellite enabled requests are handled as below:
         * 1. If there are no ongoing requests, store current request in mSatelliteEnabledRequest
@@ -2483,7 +2487,7 @@ public class SatelliteController extends Handler {

        mIsRadioOn = false;
        requestSatelliteEnabled(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
                false /* enableSatellite */, false /* enableDemoMode */,
                false /* enableSatellite */, false /* enableDemoMode */, false /* isEmergency */,
                new IIntegerConsumer.Stub() {
                    @Override
                    public void accept(int result) {
@@ -2968,7 +2972,7 @@ public class SatelliteController extends Handler {

        Message onCompleted = obtainMessage(EVENT_SET_SATELLITE_ENABLED_DONE, request);
        mSatelliteModemInterface.requestSatelliteEnabled(argument.enableSatellite,
                argument.enableDemoMode, onCompleted);
                argument.enableDemoMode, argument.isEmergency, onCompleted);
        startWaitForSatelliteEnablingResponseTimer(argument);
    }

@@ -3008,7 +3012,7 @@ public class SatelliteController extends Handler {
                            logd("requestIsSatelliteProvisioned: resultCode=" + resultCode
                                    + ", resultData=" + resultData);
                            requestSatelliteEnabled(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
                                    false, false,
                                    false, false, false,
                                    new IIntegerConsumer.Stub() {
                                        @Override
                                        public void accept(int result) {
@@ -3240,6 +3244,7 @@ public class SatelliteController extends Handler {
                            + "mIsSatelliteEnabled=true");
                    requestSatelliteEnabled(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
                            false /* enableSatellite */, false /* enableDemoMode */,
                            false /* isEmergency */,
                            new IIntegerConsumer.Stub() {
                                @Override
                                public void accept(int result) {
@@ -4081,7 +4086,7 @@ public class SatelliteController extends Handler {
                    Consumer<Integer> result =
                            FunctionalUtils.ignoreRemoteException(callback::accept);
                    RequestSatelliteEnabledArgument request = new RequestSatelliteEnabledArgument(
                            false, false, result);
                            false, false, false, result);
                    synchronized (mSatelliteEnabledRequestLock) {
                        mSatelliteEnabledRequest = request;
                    }
+8 −7
Original line number Diff line number Diff line
@@ -619,14 +619,15 @@ public class SatelliteModemInterface {
     *
     * @param enableSatellite True to enable the satellite modem and false to disable.
     * @param enableDemoMode True to enable demo mode and false to disable.
     * @param isEmergency {@code true} to enable emergency mode, {@code false} otherwise.
     * @param message The Message to send to result of the operation to.
     */
    public void requestSatelliteEnabled(boolean enableSatellite, boolean enableDemoMode,
            @NonNull Message message) {
            boolean isEmergency, @NonNull Message message) {
        if (mSatelliteService != null) {
            try {
                mSatelliteService.requestSatelliteEnabled(enableSatellite, enableDemoMode,
                        new IIntegerConsumer.Stub() {
                        isEmergency, new IIntegerConsumer.Stub() {
                            @Override
                            public void accept(int result) {
                                int error = SatelliteServiceUtils.fromSatelliteError(result);
+3 −3
Original line number Diff line number Diff line
@@ -205,7 +205,7 @@ public class RadioOnStateListenerTest extends TelephonyTest {
        verify(mCallback).onComplete(eq(mListener), eq(false));
        verify(mMockPhone, times(2)).setRadioPower(eq(true), eq(false), eq(false), eq(false));
        verify(mSatelliteController, never()).requestSatelliteEnabled(
                anyInt(), eq(false), eq(false), any());
                anyInt(), eq(false), eq(false), eq(false), any());
    }

    @Test
@@ -225,7 +225,7 @@ public class RadioOnStateListenerTest extends TelephonyTest {
        verify(mCallback).onComplete(eq(mListener), eq(false));
        verify(mMockPhone, times(2)).setRadioPower(eq(true), eq(true), eq(true), eq(false));
        verify(mSatelliteController, never()).requestSatelliteEnabled(
                anyInt(), eq(false), eq(false), any());
                anyInt(), eq(false), eq(false), eq(false), any());
    }

    @Test
@@ -246,7 +246,7 @@ public class RadioOnStateListenerTest extends TelephonyTest {
        verify(mCallback).onComplete(eq(mListener), eq(false));
        verify(mMockPhone, times(2)).setRadioPower(eq(true), eq(true), eq(true), eq(false));
        verify(mSatelliteController, times(2)).requestSatelliteEnabled(
                anyInt(), eq(false), eq(false), any());
                anyInt(), eq(false), eq(false), eq(false), any());
    }

    @Test
Loading