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

Commit c09c6328 authored by Sooraj Sasindran's avatar Sooraj Sasindran Committed by Android (Google) Code Review
Browse files

Merge "Remove carrier configuration value check when registering screen on/off...

Merge "Remove carrier configuration value check when registering screen on/off callback and add check when screen off timer starts." into main
parents bf985606 deeaae81
Loading
Loading
Loading
Loading
+32 −1
Original line number Diff line number Diff line
@@ -308,6 +308,7 @@ public class SatelliteController extends Handler {
    private static final int CMD_UPDATE_SYSTEM_SELECTION_CHANNELS = 58;
    private static final int EVENT_UPDATE_SYSTEM_SELECTION_CHANNELS_DONE = 59;
    private static final int EVENT_SELECTED_NB_IOT_SATELLITE_SUBSCRIPTION_CHANGED = 60;
    private static final int CMD_EVALUATE_CARRIER_ROAMING_NTN_ELIGIBILITY_CHANGE = 61;

    @NonNull private static SatelliteController sInstance;
    @NonNull private final Context mContext;
@@ -2168,6 +2169,19 @@ public class SatelliteController extends Handler {
                break;
            }

            case CMD_EVALUATE_CARRIER_ROAMING_NTN_ELIGIBILITY_CHANGE: {
                plogd("CMD_EVALUATE_CARRIER_ROAMING_NTN_ELIGIBILITY_CHANGE");
                evaluateCarrierRoamingNtnEligibilityChange();
                boolean eligible = isCarrierRoamingNtnEligible(getSatellitePhone());
                plogd("CMD_EVALUATE_CARRIER_ROAMING_NTN_ELIGIBILITY_CHANGE: eligible=" + eligible);
                int selectedSatelliteSubId = getSelectedSatelliteSubId();
                Phone phone = SatelliteServiceUtils.getPhone(selectedSatelliteSubId);
                if (eligible) {
                    phone.notifyCarrierRoamingNtnEligibleStateChanged(eligible);
                }
                break;
            }

            default:
                Log.w(TAG, "SatelliteControllerHandler: unexpected message code: " +
                        msg.what);
@@ -4535,7 +4549,7 @@ public class SatelliteController extends Handler {
        RequestSatelliteEnabledArgument argument =
                (RequestSatelliteEnabledArgument) request.argument;
        handlePersistentLoggingOnSessionStart(argument);
        selectBindingSatelliteSubscription(argument.enableSatellite);
        selectBindingSatelliteSubscription(false);
        SatelliteModemEnableRequestAttributes enableRequestAttributes =
                    createModemEnableRequest(argument);
        if (enableRequestAttributes == null) {
@@ -5274,6 +5288,10 @@ public class SatelliteController extends Handler {
                false, "moveSatelliteToOffStateAndCleanUpResources");
        selectBindingSatelliteSubscription(false);
        updateLastNotifiedNtnModeAndNotify(getSatellitePhone());

        sendMessage(obtainMessage(CMD_EVALUATE_ESOS_PROFILES_PRIORITIZATION));
        // Evaluate eligibility after satellite session is disabled
        sendMessage(obtainMessage(CMD_EVALUATE_CARRIER_ROAMING_NTN_ELIGIBILITY_CHANGE));
    }

    private void setDemoModeEnabled(boolean enabled) {
@@ -6159,6 +6177,12 @@ public class SatelliteController extends Handler {

        registerForSatelliteCommunicationAccessStateChanged();

        if (isSatelliteEnabledOrBeingEnabled()) {
            plogd("evaluateCarrierRoamingNtnEligibilityChange: "
                    + "Skip eligibility check as satellite is enabled or being enabled");
            return;
        }

        boolean eligible = isCarrierRoamingNtnEligible(getSatellitePhone());
        plogd("evaluateCarrierRoamingNtnEligibilityChange: "
                + "isCarrierRoamingNtnEligible=" + eligible);
@@ -7143,6 +7167,13 @@ public class SatelliteController extends Handler {
            plogd("evaluateESOSProfilesPrioritization: Flag CarrierRoamingNbIotNtn is disabled");
            return;
        }

        if (isSatelliteEnabledOrBeingEnabled()) {
            plogd("evaluateESOSProfilesPrioritization: Skip evaluation as satellite is enabled "
                    + "or being enabled");
            return;
        }

        boolean isChanged = false;
        List<SubscriptionInfo> allSubInfos = mSubscriptionManagerService.getAllSubInfoList(
                mContext.getOpPackageName(), mContext.getAttributionTag());
+5 −11
Original line number Diff line number Diff line
@@ -1614,17 +1614,6 @@ public class SatelliteSessionController extends StateMachine {
            return;
        }

        if (!mSatelliteController.isInCarrierRoamingNbIotNtn()) {
            logd("registerScreenOnOffChanged: device is not in CarrierRoamingNbIotNtn");
            return;
        }

        if (mSatelliteController.getRequestIsEmergency()) {
            logd("registerScreenOnOffChanged: not register, device is in Emergency mode");
            // screen on/off timer is available in not emergency mode
            return;
        }

        if (!mIsRegisteredScreenStateChanged && mDeviceStateMonitor != null) {
            mDeviceStateMonitor.registerForScreenStateChanged(
                    getHandler(), EVENT_SCREEN_STATE_CHANGED, null);
@@ -1670,6 +1659,11 @@ public class SatelliteSessionController extends StateMachine {
        }
        mIsScreenOn = screenOn;

        if (!mSatelliteController.isInCarrierRoamingNbIotNtn()) {
            logd("handleEventScreenStateChanged: device is not in CarrierRoamingNbIotNtn");
            return;
        }

        if (mSatelliteController.getRequestIsEmergency()) {
            if (DBG) logd("handleEventScreenStateChanged: Emergency mode");
            // This is for coexistence
+29 −1
Original line number Diff line number Diff line
@@ -1632,8 +1632,8 @@ public class SatelliteControllerTest extends TelephonyTest {
    @Test
    public void testIsSatelliteEnabled() {
        logd("testIsSatelliteEnabled: starting");
        setUpResponseForRequestIsSatelliteEnabled(true, SATELLITE_RESULT_SUCCESS);
        assertFalse(mSatelliteControllerUT.isSatelliteEnabledOrBeingEnabled());
        setUpResponseForRequestIsSatelliteEnabled(true, SATELLITE_RESULT_SUCCESS);
        mIsSatelliteEnabledSemaphore.drainPermits();
        mSatelliteControllerUT.requestIsSatelliteEnabled(mIsSatelliteEnabledReceiver);
        processAllMessages();
@@ -5497,6 +5497,7 @@ public class SatelliteControllerTest extends TelephonyTest {
            message.sendToTarget();
            return null;
        }).when(mMockSatelliteModemInterface).requestIsSatelliteEnabled(any(Message.class));
        mSatelliteControllerUT.isSatelliteEnabledOrBeingEnabled = isSatelliteEnabled;
    }

    private void setUpResponseForRequestIsSatelliteSupported(
@@ -5976,6 +5977,11 @@ public class SatelliteControllerTest extends TelephonyTest {
        msg.sendToTarget();
    }

    private void sendCmdEvaluateCarrierRoamingNtnEligibilityChange() {
        mSatelliteControllerUT.obtainMessage(
                61 /* CMD_EVALUATE_CARRIER_ROAMING_NTN_ELIGIBILITY_CHANGE */).sendToTarget();
    }

    private void setRadioPower(boolean on) {
        mSimulatedCommands.setRadioPower(on, false, false, null);
    }
@@ -6193,6 +6199,7 @@ public class SatelliteControllerTest extends TelephonyTest {
        public boolean isSatelliteProvisioned;

        private boolean callOnlySuperMethod = false;
        public boolean isSatelliteEnabledOrBeingEnabled = false;

        TestSatelliteController(
                Context context, Looper looper, @NonNull FeatureFlags featureFlags) {
@@ -6278,6 +6285,11 @@ public class SatelliteControllerTest extends TelephonyTest {
            return isSatelliteBeingDisabled;
        }

        @Override
        public boolean isSatelliteEnabledOrBeingEnabled() {
            return isSatelliteEnabledOrBeingEnabled;
        }

        protected String getConfigSatelliteGatewayServicePackage() {
            String packageName = "com.example.app";
            return packageName;
@@ -6877,4 +6889,20 @@ public class SatelliteControllerTest extends TelephonyTest {
        String expectedResult = "123456" + "0987654321";
        assertEquals(expectedResult, mSatelliteControllerUT.getPhoneNumberBasedCarrier(SUB_ID));
    }

    @Test
    public void testEvaluateCarrierRoamingNtnEligibilityChange_inSatelliteMode() {
        when(mFeatureFlags.carrierRoamingNbIotNtn()).thenReturn(true);

        mSatelliteControllerUT.isSatelliteEnabledOrBeingEnabled = true;
        mSatelliteControllerUT.setSatellitePhone(1);
        mSatelliteControllerUT.setSelectedSatelliteSubId(SUB_ID);
        mSatelliteControllerUT.isSatelliteProvisioned = true;
        mSatelliteControllerUT.isSatelliteAllowedCallback = null;
        setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
        mSatelliteControllerUT.setIsSatelliteAllowedState(true);
        sendCmdEvaluateCarrierRoamingNtnEligibilityChange();
        processAllMessages();
        verify(mPhone, times(0)).notifyCarrierRoamingNtnEligibleStateChanged(anyBoolean());
    }
}
+6 −14
Original line number Diff line number Diff line
@@ -242,7 +242,7 @@ public class SatelliteSessionControllerTest extends TelephonyTest {
        bundle.putInt(KEY_SATELLITE_ROAMING_SCREEN_OFF_INACTIVITY_TIMEOUT_SEC_INT,
                SCREEN_OFF_INACTIVITY_TIMEOUT_SEC);
        when(mMockSatelliteController.getPersistableBundle(anyInt())).thenReturn(bundle);
        when(mMockSatelliteController.isInCarrierRoamingNbIotNtn()).thenReturn(true);
        when(mMockSatelliteController.isInCarrierRoamingNbIotNtn()).thenReturn(false);

        // Since satellite is supported, SatelliteSessionController should move to POWER_OFF state.
        assertNotNull(mTestSatelliteSessionController);
@@ -250,10 +250,13 @@ public class SatelliteSessionControllerTest extends TelephonyTest {

        moveToIdleState();

        // Even if the device is not in CarrierRoamingNbIotNtn
        // SatelliteSessionController should call registerForScreenStateChanged.
        verify(mDeviceStateMonitor).registerForScreenStateChanged(mHandlerCaptor.capture(),
                mMsgCaptor.capture(), any());

        when(mMockSatelliteController.isInCarrierRoamingNbIotNtn()).thenReturn(true);

        // Notify Screen off
        sendScreenStateChanged(mHandlerCaptor.getValue(), mMsgCaptor.getValue(), false);
        processAllMessages();
@@ -291,7 +294,7 @@ public class SatelliteSessionControllerTest extends TelephonyTest {
        doNothing().when(mDeviceStateMonitor).registerForScreenStateChanged(
                eq(mTestSatelliteSessionController.getHandler()), anyInt(), any());
        // Satellite enabling request is for an emergency.
        when(mMockSatelliteController.getRequestIsEmergency()).thenReturn(true);
        when(mMockSatelliteController.getRequestIsEmergency()).thenReturn(false);
        PersistableBundle bundle = new PersistableBundle();
        bundle.putInt(KEY_SATELLITE_ROAMING_SCREEN_OFF_INACTIVITY_TIMEOUT_SEC_INT,
                SCREEN_OFF_INACTIVITY_TIMEOUT_SEC);
@@ -304,17 +307,6 @@ public class SatelliteSessionControllerTest extends TelephonyTest {

        moveToIdleState();

        // SatelliteSessionController should not call registerForScreenStateChanged.
        verify(mDeviceStateMonitor, never()).registerForScreenStateChanged(
                eq(mTestSatelliteSessionController.getHandler()), anyInt(), any());

        moveToPowerOffState();

        // Satellite enabling request is not for an emergency.
        when(mMockSatelliteController.getRequestIsEmergency()).thenReturn(false);

        moveToIdleState();

         // SatelliteSessionController should call registerForScreenStateChanged.
        verify(mDeviceStateMonitor).registerForScreenStateChanged(mHandlerCaptor.capture(),
                mMsgCaptor.capture(), any());