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

Commit c217f7fa authored by Aaron Liu's avatar Aaron Liu Committed by Automerger Merge Worker
Browse files

Merge "Handle when sim state indicates that it is absent" into udc-qpr-dev am:...

Merge "Handle when sim state indicates that it is absent" into udc-qpr-dev am: a0eec99a am: 9717c024

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23834308



Change-Id: Iaf43164479e2c4cbe9529d8069ffeeded42b3dd1
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 2ccedbf4 9717c024
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -303,6 +303,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
    private static final ComponentName FALLBACK_HOME_COMPONENT = new ComponentName(
            "com.android.settings", "com.android.settings.FallbackHome");

    private static final List<Integer> ABSENT_SIM_STATE_LIST = Arrays.asList(
            TelephonyManager.SIM_STATE_ABSENT,
            TelephonyManager.SIM_STATE_UNKNOWN,
            TelephonyManager.SIM_STATE_NOT_READY);

    private final Context mContext;
    private final UserTracker mUserTracker;
    private final KeyguardUpdateMonitorLogger mLogger;
@@ -3742,8 +3747,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
        mLogger.logSimState(subId, slotId, state);

        boolean becameAbsent = false;
        if (!SubscriptionManager.isValidSubscriptionId(subId)
                && state != TelephonyManager.SIM_STATE_UNKNOWN) {
        if (!SubscriptionManager.isValidSubscriptionId(subId)) {
            mLogger.w("invalid subId in handleSimStateChange()");
            /* Only handle No SIM(ABSENT) and Card Error(CARD_IO_ERROR) due to
             * handleServiceStateChange() handle other case */
@@ -3761,11 +3765,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
                }
            } else if (state == TelephonyManager.SIM_STATE_CARD_IO_ERROR) {
                updateTelephonyCapable(true);
            } else {
                return;
            }
        }

        becameAbsent |= ABSENT_SIM_STATE_LIST.contains(state);

        SimData data = mSimDatas.get(subId);
        final boolean changed;
        if (data == null) {
@@ -3778,7 +3782,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
            data.subId = subId;
            data.slotId = slotId;
        }
        if ((changed || becameAbsent) || state == TelephonyManager.SIM_STATE_UNKNOWN) {
        if ((changed || becameAbsent)) {
            for (int i = 0; i < mCallbacks.size(); i++) {
                KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
                if (cb != null) {
+2 −3
Original line number Diff line number Diff line
@@ -649,6 +649,8 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
            switch (simState) {
                case TelephonyManager.SIM_STATE_NOT_READY:
                case TelephonyManager.SIM_STATE_ABSENT:
                case TelephonyManager.SIM_STATE_UNKNOWN:
                    mPendingPinLock = false;
                    // only force lock screen in case of missing sim if user hasn't
                    // gone through setup wizard
                    synchronized (KeyguardViewMediator.this) {
@@ -713,9 +715,6 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
                        }
                    }
                    break;
                case TelephonyManager.SIM_STATE_UNKNOWN:
                    mPendingPinLock = false;
                    break;
                default:
                    if (DEBUG_SIM_STATES) Log.v(TAG, "Unspecific state: " + simState);
                    break;
+10 −0
Original line number Diff line number Diff line
@@ -3001,6 +3001,16 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
                TelephonyManager.SIM_STATE_UNKNOWN);
    }

    @Test
    public void testOnSimStateChanged_HandleSimStateNotReady() {
        KeyguardUpdateMonitorCallback keyguardUpdateMonitorCallback = spy(
                KeyguardUpdateMonitorCallback.class);
        mKeyguardUpdateMonitor.registerCallback(keyguardUpdateMonitorCallback);
        mKeyguardUpdateMonitor.handleSimStateChange(-1, 0, TelephonyManager.SIM_STATE_NOT_READY);
        verify(keyguardUpdateMonitorCallback).onSimStateChanged(-1, 0,
                TelephonyManager.SIM_STATE_NOT_READY);
    }

    @Test
    public void onAuthEnrollmentChangesCallbacksAreNotified() {
        KeyguardUpdateMonitorCallback callback = mock(KeyguardUpdateMonitorCallback.class);