From 9f74303eb8432aa64a7030f58ab0c3279a20c53e Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Mon, 4 May 2015 15:22:40 -0700 Subject: [PATCH] Track unlock attempts per user. Bug: 19330825 Change-Id: I3e09f676b945dbeee16dc0fb3cb126cb884a6934 --- .../keyguard/KeyguardSecurityContainer.java | 1 - .../keyguard/KeyguardUpdateMonitor.java | 27 +++++++------------ 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java index ae4baad65617b..4d89a8dd54e1a 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java @@ -260,7 +260,6 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe if (DEBUG) Log.d(TAG, "reportFailedPatternAttempt: #" + failedAttempts); SecurityMode mode = mSecurityModel.getSecurityMode(); - final boolean usingPattern = mode == KeyguardSecurityModel.SecurityMode.Pattern; final int currentUser = KeyguardUpdateMonitor.getCurrentUser(); final DevicePolicyManager dpm = mLockPatternUtils.getDevicePolicyManager(); final int failedAttemptsBeforeWipe = diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java index b8d9053093d13..c7b762866a12e 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -65,6 +65,7 @@ import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener; import android.telephony.TelephonyManager; import android.util.Log; import android.util.SparseBooleanArray; +import android.util.SparseIntArray; import com.google.android.collect.Lists; @@ -139,7 +140,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private BatteryStatus mBatteryStatus; // Password attempts - private int mFailedAttempts = 0; + private SparseIntArray mFailedAttempts = new SparseIntArray(); private boolean mClockVisible; @@ -1260,30 +1261,22 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { return mDeviceProvisioned; } - public int getFailedUnlockAttempts() { - return mFailedAttempts; + public void clearFailedUnlockAttempts() { + mFailedAttempts.delete(sCurrentUser); } - public void clearFailedUnlockAttempts() { - mFailedAttempts = 0; + public int getFailedUnlockAttempts() { + return mFailedAttempts.get(sCurrentUser, 0); + } + + public void reportFailedUnlockAttempt() { + mFailedAttempts.put(sCurrentUser, getFailedUnlockAttempts() + 1); } public void clearFingerprintRecognized() { mUserFingerprintAuthenticated.clear(); } - public void reportFailedUnlockAttempt() { - mFailedAttempts++; - } - - public boolean isClockVisible() { - return mClockVisible; - } - - public int getPhoneState() { - return mPhoneState; - } - public boolean isSimPinVoiceSecure() { // TODO: only count SIMs that handle voice return isSimPinSecure();