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

Commit db9abe8d authored by Antony Sargent's avatar Antony Sargent Committed by android-build-merger
Browse files

Merge "Prevent NullPointerException in SimStatusDialogController" into qt-dev am: e959c201

am: ce8495d6

Change-Id: If27659f370ed97e07ad024d125ae56b0f4a9efb4
parents e0a95352 ce8495d6
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -297,6 +297,9 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
    }

    private void updateSignalStrength(SignalStrength signalStrength) {
        if (signalStrength == null) {
            return;
        }
        final int subscriptionId = mSubscriptionInfo.getSubscriptionId();
        final PersistableBundle carrierConfig =
                mCarrierConfigManager.getConfigForSubId(subscriptionId);
@@ -430,13 +433,11 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
                mSubscriptionInfo.getSubscriptionId());
    }

    @VisibleForTesting
    int getDbm(SignalStrength signalStrength) {
    private int getDbm(SignalStrength signalStrength) {
        return signalStrength.getDbm();
    }

    @VisibleForTesting
    int getAsuLevel(SignalStrength signalStrength) {
    private int getAsuLevel(SignalStrength signalStrength) {
        return signalStrength.getAsuLevel();
    }

+16 −6
Original line number Diff line number Diff line
@@ -121,8 +121,8 @@ public class SimStatusDialogControllerTest {
        mLifecycle = new Lifecycle(mLifecycleOwner);
        mController = spy(new SimStatusDialogController(mDialog, mLifecycle, 0 /* phone id */));
        doReturn(mServiceState).when(mController).getCurrentServiceState();
        doReturn(0).when(mController).getDbm(any());
        doReturn(0).when(mController).getAsuLevel(any());
        doReturn(0).when(mSignalStrength).getDbm();
        doReturn(0).when(mSignalStrength).getAsuLevel();
        doReturn(mPhoneStateListener).when(mController).getPhoneStateListener();
        doReturn("").when(mController).getPhoneNumber();
        doReturn(mSignalStrength).when(mController).getSignalStrength();
@@ -136,6 +136,9 @@ public class SimStatusDialogControllerTest {
        ReflectionHelpers.setField(mController, "mEuiccManager", mEuiccManager);
        ReflectionHelpers.setField(mController, "mSubscriptionManager", mSubscriptionManager);
        when(mCarrierConfigManager.getConfigForSubId(anyInt())).thenReturn(mPersistableBundle);
        when(mPersistableBundle.getBoolean(
                CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL))
                .thenReturn(true);

        final ShadowPackageManager shadowPackageManager =
            Shadows.shadowOf(RuntimeEnvironment.application.getPackageManager());
@@ -228,8 +231,8 @@ public class SimStatusDialogControllerTest {
    public void initialize_updateSignalStrengthWith50_shouldUpdateSignalStrengthTo50() {
        final int signalDbm = 50;
        final int signalAsu = 50;
        doReturn(signalDbm).when(mController).getDbm(mSignalStrength);
        doReturn(signalAsu).when(mController).getAsuLevel(mSignalStrength);
        doReturn(signalDbm).when(mSignalStrength).getDbm();
        doReturn(signalAsu).when(mSignalStrength).getAsuLevel();
        when(mPersistableBundle.getBoolean(
                CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL)).thenReturn(true);

@@ -249,8 +252,8 @@ public class SimStatusDialogControllerTest {

        final int signalDbm = 50;
        final int signalAsu = 50;
        doReturn(signalDbm).when(mController).getDbm(mSignalStrength);
        doReturn(signalAsu).when(mController).getAsuLevel(mSignalStrength);
        doReturn(signalDbm).when(mSignalStrength).getDbm();
        doReturn(signalAsu).when(mSignalStrength).getAsuLevel();
        when(mPersistableBundle.getBoolean(
                CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL)).thenReturn(true);

@@ -415,4 +418,11 @@ public class SimStatusDialogControllerTest {
        verify(mDialog).removeSettingFromScreen(IMS_REGISTRATION_STATE_LABEL_ID);
        verify(mDialog).removeSettingFromScreen(IMS_REGISTRATION_STATE_VALUE_ID);
    }

    @Test
    public void initialize_nullSignalStrength_noCrash() {
        doReturn(null).when(mController).getSignalStrength();
        // we should not crash when running the following line
        mController.initialize();
    }
}