summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java
diff options
context:
space:
mode:
authorBrad Ebinger <breadley@google.com>2017-08-21 14:58:52 -0700
committerBrad Ebinger <breadley@google.com>2017-09-01 10:04:37 -0700
commit4cd3bdcfa39500a85e09de889986b155dec9daa0 (patch)
tree97f315e4b2a7db5e98e5347e1eebb4c379e3cccd /packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java
parent7aff46195e9fd9750d1643b479d8a7a2cb10dca9 (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.java16
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) {