summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java11
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java7
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java7
4 files changed, 14 insertions, 18 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java
index 6528d8c07a6c..c0ec405e7dc1 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java
@@ -66,17 +66,6 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
public void onSimStateChanged(int subId, int slotId, State simState) {
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);
- // onSimStateChanged callback can fire when the SIM PIN lock is not currently
- // active and mCallback is null.
- if (mCallback != null) {
- mCallback.dismiss(true, KeyguardUpdateMonitor.getCurrentUser());
- }
- break;
- }
case READY: {
mRemainingAttempts = -1;
resetState();
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java
index 1157f86872ec..b17d117b68e3 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java
@@ -69,14 +69,11 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
public void onSimStateChanged(int subId, int slotId, State simState) {
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:
- // intentional fall-through
// If the SIM is unlocked via a key sequence through the emergency dialer, it will
// move into the READY state and the PUK lock keyguard should be removed.
case READY: {
- KeyguardUpdateMonitor.getInstance(getContext()).reportSimUnlocked(mSubId);
+ mRemainingAttempts = -1;
+ mShowDefaultMessage = true;
// mCallback can be null if onSimStateChanged callback is called when keyguard
// isn't active.
if (mCallback != null) {
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 416441e33a05..bcd41a076eee 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -1936,6 +1936,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
// Even though the subscription is not valid anymore, we need to notify that the
// SIM card was removed so we can update the UI.
becameAbsent = true;
+ for (SimData data : mSimDatas.values()) {
+ // Set the SIM state of all SimData associated with that slot to ABSENT se we
+ // do not move back into PIN/PUK locked and not detect the change below.
+ if (data.slotId == slotId) {
+ data.simState = State.ABSENT;
+ }
+ }
} else {
return;
}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index b133346bcf8f..323cf1fe7022 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -445,8 +445,7 @@ public class KeyguardViewMediator extends SystemUI {
boolean simWasLocked;
synchronized (KeyguardViewMediator.this) {
IccCardConstants.State lastState = mLastSimStates.get(slotId);
- simWasLocked = (lastState == PIN_REQUIRED || lastState == PUK_REQUIRED)
- && simState == READY;
+ simWasLocked = (lastState == PIN_REQUIRED || lastState == PUK_REQUIRED);
mLastSimStates.append(slotId, simState);
}
@@ -471,6 +470,8 @@ public class KeyguardViewMediator extends SystemUI {
// so we should only lock when they are ABSENT.
onSimAbsentLocked();
if (simWasLocked) {
+ if (DEBUG_SIM_STATES) Log.d(TAG, "SIM moved to ABSENT when the "
+ + "previous state was locked. Reset the state.");
resetStateLocked();
}
}
@@ -507,6 +508,8 @@ public class KeyguardViewMediator extends SystemUI {
synchronized (KeyguardViewMediator.this) {
if (DEBUG_SIM_STATES) Log.d(TAG, "READY, reset state? " + mShowing);
if (mShowing && simWasLocked) {
+ if (DEBUG_SIM_STATES) Log.d(TAG, "SIM moved to READY when the "
+ + "previous state was locked. Reset the state.");
resetStateLocked();
}
mLockWhenSimRemoved = true;