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

Commit 22ed1f9a authored by Brad Ebinger's avatar Brad Ebinger
Browse files

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
Change-Id: I9507f80edcd4c04dfa0cc3b48a25e619aafa9eb3
parent d3428e9a
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -61,8 +61,18 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
        @Override
        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);
                    mCallback.dismiss(true, KeyguardUpdateMonitor.getCurrentUser());
                    break;
                }
                default:
                    resetState();
       };
            }
        }
    };

    public KeyguardSimPinView(Context context) {
+17 −3
Original line number Diff line number Diff line
@@ -63,8 +63,22 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
        @Override
        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);
                    mCallback.dismiss(true, KeyguardUpdateMonitor.getCurrentUser());
                    break;
                }
                default:
                    resetState();
       };
            }
        }
    };

    public KeyguardSimPukView(Context context) {