summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adrian Roos <roosa@google.com> 2016-12-14 01:07:02 +0000
committer android-build-merger <android-build-merger@google.com> 2016-12-14 01:07:02 +0000
commit6f65fad6060239bae1bcd8a10fba98b0b7e08c2d (patch)
tree6c85da960f88fde15baa08f625270b98b5c311e0
parentea566a0687b1cd8e5d6567e5808a87b4890a9a5b (diff)
parente92de95261f45ff9f8b7374eddca63e17866592a (diff)
Keyguard: Don't lock if SIM is NOT_READY
am: e92de95261 Change-Id: I3aaaa7099c7b114606e90c62ed3376369b0d86d2
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java20
1 files changed, 12 insertions, 8 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index 54cd77b11e0f..be7a8beb4d05 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -17,6 +17,8 @@
package com.android.systemui.keyguard;
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
+
+import static com.android.internal.telephony.IccCardConstants.State.ABSENT;
import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST;
import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW;
import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT;
@@ -443,7 +445,11 @@ public class KeyguardViewMediator extends SystemUI {
resetStateLocked();
}
}
- onSimNotReadyLocked();
+ if (simState == ABSENT) {
+ // MVNO SIMs can become transiently NOT_READY when switching networks,
+ // so we should only lock when they are ABSENT.
+ onSimAbsentLocked();
+ }
}
break;
case PIN_REQUIRED:
@@ -470,7 +476,7 @@ public class KeyguardViewMediator extends SystemUI {
+ "show permanently disabled message in lockscreen.");
resetStateLocked();
}
- onSimNotReadyLocked();
+ onSimAbsentLocked();
}
break;
case READY:
@@ -484,22 +490,20 @@ public class KeyguardViewMediator extends SystemUI {
default:
if (DEBUG_SIM_STATES) Log.v(TAG, "Unspecific state: " + simState);
synchronized (KeyguardViewMediator.this) {
- onSimNotReadyLocked();
+ onSimAbsentLocked();
}
break;
}
}
- private void onSimNotReadyLocked() {
+ private void onSimAbsentLocked() {
if (isSecure() && mLockWhenSimRemoved) {
mLockWhenSimRemoved = false;
MetricsLogger.action(mContext,
MetricsEvent.ACTION_LOCK_BECAUSE_SIM_REMOVED, mShowing);
if (!mShowing) {
- if (DEBUG_SIM_STATES) Log.d(TAG, "SIM removed, showing keyguard");
+ Log.i(TAG, "SIM removed, showing keyguard");
doKeyguardLocked(null);
- } else {
- resetStateLocked();
}
}
}
@@ -1246,7 +1250,7 @@ public class KeyguardViewMediator extends SystemUI {
// if the setup wizard hasn't run yet, don't show
final boolean requireSim = !SystemProperties.getBoolean("keyguard.no_require_sim", false);
final boolean absent = SubscriptionManager.isValidSubscriptionId(
- mUpdateMonitor.getNextSubIdForState(IccCardConstants.State.ABSENT));
+ mUpdateMonitor.getNextSubIdForState(ABSENT));
final boolean disabled = SubscriptionManager.isValidSubscriptionId(
mUpdateMonitor.getNextSubIdForState(IccCardConstants.State.PERM_DISABLED));
final boolean lockedOrMissing = mUpdateMonitor.isSimPinSecure()