diff options
author | Brad Ebinger <breadley@google.com> | 2017-08-21 14:58:52 -0700 |
---|---|---|
committer | Brad Ebinger <breadley@google.com> | 2017-09-01 10:04:37 -0700 |
commit | 4cd3bdcfa39500a85e09de889986b155dec9daa0 (patch) | |
tree | 97f315e4b2a7db5e98e5347e1eebb4c379e3cccd /packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java | |
parent | 7aff46195e9fd9750d1643b479d8a7a2cb10dca9 (diff) |
Remove PIN/PUK keyguard when SIM is removed/ready
1) If the PIN/PUK keyguard comes up for a locked
SIM, it can not be removed by removing the
affected SIM. It can only be removed by
rebooting the device or entering a bogus PIN.
This change automatically clears the keyguard
when when the locked SIM is removed. It will
be shown again if the locked SIM is re-entered.
2) If the device is PUK locked and the code
**05*PUK*new pin* new Pin# is entered in the
emergency dialer, it will unlock the SIM.
By listening to the READY state, we can remove
the keyguard when the SIM is unlocked by
other means.
Bug: 64469515
Bug: 64044132
Test: Manual
Merged-In: I7b576ee7e38f141075cae094e3d1f74b7145d53f
Change-Id: I9507f80edcd4c04dfa0cc3b48a25e619aafa9eb3
Diffstat (limited to 'packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java')
-rw-r--r-- | packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java index 0cf890037f55..fe03fba5bfda 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java @@ -58,9 +58,19 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView { KeyguardUpdateMonitorCallback mUpdateMonitorCallback = new KeyguardUpdateMonitorCallback() { @Override public void onSimStateChanged(int subId, int slotId, State simState) { - if (DEBUG) Log.v(TAG, "onSimStateChanged(subId=" + subId + ",state=" + simState + ")"); - resetState(); - }; + if (DEBUG) Log.v(TAG, "onSimStateChanged(subId=" + subId + ",state=" + simState + ")"); + switch(simState) { + // If the SIM is removed, then we must remove the keyguard. It will be put up + // again when the PUK locked SIM is re-entered. + case ABSENT: { + KeyguardUpdateMonitor.getInstance(getContext()).reportSimUnlocked(mSubId); + mCallback.dismiss(true, KeyguardUpdateMonitor.getCurrentUser()); + break; + } + default: + resetState(); + } + } }; public KeyguardSimPinView(Context context) { |