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

Commit 336be7f7 authored by Adrian Roos's avatar Adrian Roos
Browse files

Improve trust handling on dimsissing keyguard

The check for whether the device is in trusted mode happened at
the wrong time previously. Now it is checked when trying to dismiss
the keyguard.

Bug: 15072996
Change-Id: I81a3793ba1cf25468d3c923b2075f4c987b79e53
parent a76a150f
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -42,6 +42,8 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
    private boolean mIsBouncing;
    private SecurityCallback mSecurityCallback;

    private final KeyguardUpdateMonitor mUpdateMonitor;

    // Used to notify the container when something interesting happens.
    public interface SecurityCallback {
        public boolean dismiss(boolean authenticated);
@@ -62,6 +64,7 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
        super(context, attrs, defStyle);
        mSecurityModel = new KeyguardSecurityModel(context);
        mLockPatternUtils = new LockPatternUtils(context);
        mUpdateMonitor = KeyguardUpdateMonitor.getInstance(mContext);
    }

    public void setSecurityCallback(SecurityCallback callback) {
@@ -303,7 +306,9 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
    boolean showNextSecurityScreenOrFinish(boolean authenticated) {
        if (DEBUG) Log.d(TAG, "showNextSecurityScreenOrFinish(" + authenticated + ")");
        boolean finish = false;
        if (SecurityMode.None == mCurrentSecuritySelection) {
        if (mUpdateMonitor.getUserHasTrust(mLockPatternUtils.getCurrentUser())) {
            finish = true;
        } else if (SecurityMode.None == mCurrentSecuritySelection) {
            SecurityMode securityMode = mSecurityModel.getSecurityMode();
            // Allow an alternate, such as biometric unlock
            securityMode = mSecurityModel.getAlternateFor(securityMode);
+0 −2
Original line number Diff line number Diff line
@@ -83,8 +83,6 @@ public class KeyguardSecurityModel {
        } else if (simState == IccCardConstants.State.PUK_REQUIRED
                && mLockPatternUtils.isPukUnlockScreenEnable()) {
            mode = SecurityMode.SimPuk;
        } else if (updateMonitor.getUserHasTrust(mLockPatternUtils.getCurrentUser())) {
            mode = SecurityMode.None;
        } else {
            final int security = mLockPatternUtils.getKeyguardStoredPasswordQuality();
            switch (security) {