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

Commit 937f7e25 authored by Arun Voddu's avatar Arun Voddu Committed by Android (Google) Code Review
Browse files

Merge "adb shell command to trigger...

Merge "adb shell command to trigger phone.notifyCarrierRoamingNtnEligibleStateChanged API." into main
parents b0ec17ba 4afd6be9
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
@@ -573,6 +573,7 @@ public class SatelliteController extends Handler {
    private static final String HOW_IT_WORKS_BUTTON = "how_it_works_button";
    private static final String ACTION_NOTIFICATION_CLICK = "action_notification_click";
    private static final String ACTION_NOTIFICATION_DISMISS = "action_notification_dismiss";
    private AtomicBoolean mOverrideNtnEligibility;
    private BroadcastReceiver
            mDefaultSmsSubscriptionChangedBroadcastReceiver = new BroadcastReceiver() {
                @Override
@@ -5360,6 +5361,11 @@ public class SatelliteController extends Handler {
            return;
        }

        if (mOverrideNtnEligibility != null) {
            mSatellitePhone.notifyCarrierRoamingNtnEligibleStateChanged(currentNtnEligibility);
            return;
        }

        synchronized (mSatellitePhoneLock) {
            if (mSatellitePhone == null) {
                ploge("notifyNtnEligibility: mSatellitePhone is null");
@@ -6529,6 +6535,11 @@ public class SatelliteController extends Handler {
            return false;
        }

        if (mOverrideNtnEligibility != null) {
            // TODO need to send the value from `mOverrideNtnEligibility` or simply true ?
            return true;
        }

        if (SatelliteServiceUtils.isCellularAvailable()) {
            plogd("isCarrierRoamingNtnEligible[phoneId=" + phone.getPhoneId()
                    + "]: cellular is available");
@@ -6758,4 +6769,29 @@ public class SatelliteController extends Handler {
            return !mWaitingForSatelliteModemOff;
        }
    }

    /**
     * Method to override the Carrier roaming Non-terrestrial network eligibility check
     *
     * @param state         flag to enable or disable the Ntn eligibility check.
     * @param resetRequired reset overriding the check with adb command.
     */
    public boolean overrideCarrierRoamingNtnEligibilityChanged(boolean state,
            boolean resetRequired) {
        Log.d(TAG, "overrideCarrierRoamingNtnEligibilityChanged state = " + state
                + "  resetRequired = " + resetRequired);
        if (resetRequired) {
            mOverrideNtnEligibility = null;
        } else {
            if (mOverrideNtnEligibility == null) {
                mOverrideNtnEligibility = new AtomicBoolean(state);
            } else {
                mOverrideNtnEligibility.set(state);
            }
            if (this.mSatellitePhone != null) {
                updateLastNotifiedNtnEligibilityAndNotify(state);
            }
        }
        return true;
    }
}
+27 −0
Original line number Diff line number Diff line
@@ -4038,6 +4038,33 @@ public class SatelliteControllerTest extends TelephonyTest {
        processAllMessages();

        assertTrue(mSatelliteControllerUT.isCarrierRoamingNtnEligible(mPhone));

        when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
        when(mServiceState2.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
        processAllMessages();
        assertFalse(mSatelliteControllerUT.isCarrierRoamingNtnEligible(mPhone));

        when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
        when(mServiceState2.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
        mSatelliteControllerUT.overrideCarrierRoamingNtnEligibilityChanged(true, false);
        processAllMessages();
        assertTrue(mSatelliteControllerUT.isCarrierRoamingNtnEligible(mPhone));
    }

    @Test
    public void testOverrideCarrierRoamingNtNEligibilityChange() {
        when(mFeatureFlags.carrierRoamingNbIotNtn()).thenReturn(true);
        mSatelliteControllerUT.overrideCarrierRoamingNtnEligibilityChanged(true, false);
        verify(mPhone, times(1)).notifyCarrierRoamingNtnEligibleStateChanged(eq(true));
        clearInvocations(mPhone);

        mSatelliteControllerUT.overrideCarrierRoamingNtnEligibilityChanged(false, false);
        verify(mPhone, times(1)).notifyCarrierRoamingNtnEligibleStateChanged(eq(false));
        clearInvocations(mPhone);

        mSatelliteControllerUT.overrideCarrierRoamingNtnEligibilityChanged(false, true);
        verify(mPhone, times(0)).notifyCarrierRoamingNtnEligibleStateChanged(eq(true));
        clearInvocations(mPhone);
    }

    @Test