Track unlock attempts per user.
Bug: 19330825
Change-Id: I3e09f676b945dbeee16dc0fb3cb126cb884a6934
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
index ae4baad..4d89a8d 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
@@ -260,7 +260,6 @@
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 b8d9053..c7b7628 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.TelephonyManager;
import android.util.Log;
import android.util.SparseBooleanArray;
+import android.util.SparseIntArray;
import com.google.android.collect.Lists;
@@ -139,7 +140,7 @@
private BatteryStatus mBatteryStatus;
// Password attempts
- private int mFailedAttempts = 0;
+ private SparseIntArray mFailedAttempts = new SparseIntArray();
private boolean mClockVisible;
@@ -1260,30 +1261,22 @@
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();