Loading policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java +3 −0 Original line number Diff line number Diff line Loading @@ -258,6 +258,9 @@ public class KeyguardHostView extends KeyguardViewBase { } public void dismiss(boolean authenticated) { // If the biometric unlock was suppressed due to a user switch, it can now be safely // unsuppressed because the user has left the unlock screen. KeyguardUpdateMonitor.getInstance(mContext).clearBiometricUnlockUserSwitched(); showNextSecurityScreenOrFinish(authenticated); } Loading policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityModel.java +2 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,8 @@ public class KeyguardSecurityModel { KeyguardUpdateMonitor monitor = KeyguardUpdateMonitor.getInstance(mContext); final boolean backupIsTimedOut = monitor.getFailedUnlockAttempts() >= LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT; return monitor.getMaxBiometricUnlockAttemptsReached() || backupIsTimedOut; return monitor.getMaxBiometricUnlockAttemptsReached() || backupIsTimedOut || monitor.didBiometricUnlockUserSwitch(); } SecurityMode getSecurityMode() { Loading policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java +11 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,8 @@ public class KeyguardUpdateMonitor { private int mFailedAttempts = 0; private int mFailedBiometricUnlockAttempts = 0; private boolean mBiometricUnlockUserSwitched; private boolean mClockVisible; private final ArrayList<WeakReference<KeyguardUpdateMonitorCallback>> Loading Loading @@ -404,6 +406,7 @@ public class KeyguardUpdateMonitor { cb.onUserSwitched(userId); } } mBiometricUnlockUserSwitched = true; try { reply.sendResult(null); } catch (RemoteException e) { Loading Loading @@ -721,6 +724,14 @@ public class KeyguardUpdateMonitor { return mFailedBiometricUnlockAttempts >= FAILED_BIOMETRIC_UNLOCK_ATTEMPTS_BEFORE_BACKUP; } public boolean didBiometricUnlockUserSwitch() { return mBiometricUnlockUserSwitched; } public void clearBiometricUnlockUserSwitched() { mBiometricUnlockUserSwitched = false; } public boolean isSimLocked() { return isSimLocked(mSimState); } Loading Loading
policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java +3 −0 Original line number Diff line number Diff line Loading @@ -258,6 +258,9 @@ public class KeyguardHostView extends KeyguardViewBase { } public void dismiss(boolean authenticated) { // If the biometric unlock was suppressed due to a user switch, it can now be safely // unsuppressed because the user has left the unlock screen. KeyguardUpdateMonitor.getInstance(mContext).clearBiometricUnlockUserSwitched(); showNextSecurityScreenOrFinish(authenticated); } Loading
policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityModel.java +2 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,8 @@ public class KeyguardSecurityModel { KeyguardUpdateMonitor monitor = KeyguardUpdateMonitor.getInstance(mContext); final boolean backupIsTimedOut = monitor.getFailedUnlockAttempts() >= LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT; return monitor.getMaxBiometricUnlockAttemptsReached() || backupIsTimedOut; return monitor.getMaxBiometricUnlockAttemptsReached() || backupIsTimedOut || monitor.didBiometricUnlockUserSwitch(); } SecurityMode getSecurityMode() { Loading
policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java +11 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,8 @@ public class KeyguardUpdateMonitor { private int mFailedAttempts = 0; private int mFailedBiometricUnlockAttempts = 0; private boolean mBiometricUnlockUserSwitched; private boolean mClockVisible; private final ArrayList<WeakReference<KeyguardUpdateMonitorCallback>> Loading Loading @@ -404,6 +406,7 @@ public class KeyguardUpdateMonitor { cb.onUserSwitched(userId); } } mBiometricUnlockUserSwitched = true; try { reply.sendResult(null); } catch (RemoteException e) { Loading Loading @@ -721,6 +724,14 @@ public class KeyguardUpdateMonitor { return mFailedBiometricUnlockAttempts >= FAILED_BIOMETRIC_UNLOCK_ATTEMPTS_BEFORE_BACKUP; } public boolean didBiometricUnlockUserSwitch() { return mBiometricUnlockUserSwitched; } public void clearBiometricUnlockUserSwitched() { mBiometricUnlockUserSwitched = false; } public boolean isSimLocked() { return isSimLocked(mSimState); } Loading