Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9df31e55 authored by Brad Ebinger's avatar Brad Ebinger Committed by Android (Google) Code Review
Browse files

Merge "WIP - Improves PIN/PUK handling events in keyguard"

parents 9e8626b0 e6c6f729
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -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();
+2 −5
Original line number Diff line number Diff line
@@ -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) {
+7 −0
Original line number Diff line number Diff line
@@ -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;
            }
+5 −2
Original line number Diff line number Diff line
@@ -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;