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

Commit 3f3c3062 authored by Thomas Nguyen's avatar Thomas Nguyen
Browse files

Don't send disable request to modem when enable is in progress if device does...

Don't send disable request to modem when enable is in progress if device does not support this feature

Flag: EXEMPT bugfix
Bug: 396157049
Test: SatelliteManagerTestOnMockService SatelliteControllerTest
Manual system tests

Change-Id: I3eb0acbd9ad9b6330b5742b213ee0fc7f52cab74
parent d3414f5e
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
@@ -692,6 +692,7 @@ public class SatelliteController extends Handler {
    private AtomicBoolean mOverrideNtnEligibility;
    private String mDefaultSmsPackageName = "";
    private String mSatelliteGatewayServicePackageName = "";
    private Boolean mOverriddenDisableSatelliteWhileEnableInProgressSupported = null;

    private final Object mNtnSmsSupportedByMessagesAppLock = new Object();
    @GuardedBy("mNtnSmsSupportedByMessagesAppLock")
@@ -2503,6 +2504,13 @@ public class SatelliteController extends Handler {
                                SatelliteManager.SATELLITE_RESULT_ENABLE_IN_PROGRESS, result);
                        return;
                    }
                    if (!isDisableSatelliteWhileEnableInProgressSupported()) {
                        plogd("requestSatelliteEnabled: disable satellite while enable in progress"
                                + " is not supported");
                        sendErrorAndReportSessionMetrics(
                                SatelliteManager.SATELLITE_RESULT_ENABLE_IN_PROGRESS, result);
                        return;
                    }
                    mSatelliteDisabledRequest = request;
                }
            }
@@ -2523,6 +2531,14 @@ public class SatelliteController extends Handler {
        }
    }

    private boolean isDisableSatelliteWhileEnableInProgressSupported() {
        if (mOverriddenDisableSatelliteWhileEnableInProgressSupported != null) {
            return mOverriddenDisableSatelliteWhileEnableInProgressSupported;
        }
        return mContext.getResources().getBoolean(
            R.bool.config_support_disable_satellite_while_enable_in_progress);
    }

    private void checkNetworkSelectionModeAuto(RequestSatelliteEnabledArgument argument) {
        plogd("checkNetworkSelectionModeAuto");
        if (argument.isEmergency) {
@@ -3587,6 +3603,31 @@ public class SatelliteController extends Handler {
        return mSatelliteSessionController.setSatelliteIgnoreCellularServiceState(enabled);
    }

    /**
     * This API can be used by only CTS to control the feature
     * {@code config_support_disable_satellite_while_enable_in_progress}.
     *
     * @param reset Whether to reset the override.
     * @param supported Whether to support the feature.
     * @return {@code true} if the value is set successfully, {@code false} otherwise.
     */
    public boolean setSupportDisableSatelliteWhileEnableInProgress(
        boolean reset, boolean supported) {
        if (!isMockModemAllowed()) {
            plogd("setSupportDisableSatelliteWhileEnableInProgress: mock modem not allowed");
            return false;
        }

        plogd("setSupportDisableSatelliteWhileEnableInProgress - reset=" + reset
                  + ", supported=" + supported);
        if (reset) {
            mOverriddenDisableSatelliteWhileEnableInProgressSupported = null;
        } else {
            mOverriddenDisableSatelliteWhileEnableInProgressSupported = supported;
        }
        return true;
    }

    /**
     * This API can be used by only CTS to override timeout durations used by DatagramController
     * module.
+4 −0
Original line number Diff line number Diff line
@@ -643,6 +643,8 @@ public class SatelliteControllerTest extends TelephonyTest {
        mContextFixture.putIntArrayResource(
                R.array.config_foldedDeviceStates,
                new int[0]);
        mContextFixture.putBooleanResource(
            R.bool.config_support_disable_satellite_while_enable_in_progress, true);
        doReturn(ACTIVE_SUB_IDS).when(mMockSubscriptionManagerService).getActiveSubIdList(true);

        mCarrierConfigBundle = mContextFixture.getCarrierConfigBundle();
@@ -4613,6 +4615,8 @@ public class SatelliteControllerTest extends TelephonyTest {
                eq(R.string.config_satellite_gateway_service_package));
        doReturn("className").when(mResources).getString(
                eq(R.string.config_satellite_carrier_roaming_esos_provisioned_class));
        doReturn(true).when(mResources).getBoolean(
                eq(R.bool.config_support_disable_satellite_while_enable_in_progress));
    }

    private List<SatelliteSubscriberInfo> getExpectedSatelliteSubscriberInfoList() {