Loading packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +9 −5 Original line number Diff line number Diff line Loading @@ -296,6 +296,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; Loading Loading @@ -3698,8 +3703,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 */ Loading @@ -3717,11 +3721,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) { Loading @@ -3734,7 +3738,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) { Loading packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +2 −3 Original line number Diff line number Diff line Loading @@ -642,6 +642,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) { Loading Loading @@ -706,9 +708,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; Loading packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -2935,6 +2935,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); } private void verifyFingerprintAuthenticateNeverCalled() { verify(mFingerprintManager, never()).authenticate(any(), any(), any(), any(), any()); verify(mFingerprintManager, never()).authenticate(any(), any(), any(), any(), anyInt(), Loading Loading
packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +9 −5 Original line number Diff line number Diff line Loading @@ -296,6 +296,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; Loading Loading @@ -3698,8 +3703,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 */ Loading @@ -3717,11 +3721,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) { Loading @@ -3734,7 +3738,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) { Loading
packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +2 −3 Original line number Diff line number Diff line Loading @@ -642,6 +642,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) { Loading Loading @@ -706,9 +708,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; Loading
packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -2935,6 +2935,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); } private void verifyFingerprintAuthenticateNeverCalled() { verify(mFingerprintManager, never()).authenticate(any(), any(), any(), any(), any()); verify(mFingerprintManager, never()).authenticate(any(), any(), any(), any(), anyInt(), Loading