From eb8962d2734984d6e16f87261c01d8080ff16757 Mon Sep 17 00:00:00 2001 From: Clara Bayarri Date: Fri, 19 Feb 2016 17:24:28 +0000 Subject: [PATCH] Fixes for Work Challenge Fingerprint When enrolling fingerprints on both personal and work and then setting the lock to none or swipe, the fingerprints for that user were not being correctly removed due to wrong userIds being passed in. Also fix the wipe dialog message as it was always querying whether the main user has fingerprints instead of the user the dialog applies to. Bug: 27263452, 27199237 Change-Id: I8d170e36f31b5595bc0bb41168a87db9f57eda2f --- .../android/settings/ChooseLockGeneric.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java index 4dde3409de4..8847321e93a 100644 --- a/src/com/android/settings/ChooseLockGeneric.java +++ b/src/com/android/settings/ChooseLockGeneric.java @@ -611,12 +611,26 @@ public class ChooseLockGeneric extends SettingsActivity { private void removeAllFingerprintTemplatesAndFinish() { if (mFingerprintManager != null && mFingerprintManager.isHardwareDetected() - && mFingerprintManager.getEnrolledFingerprints().size() > 0) { + && mFingerprintManager.hasEnrolledFingerprints(mUserId)) { + mFingerprintManager.setActiveUser(mUserId); mFingerprintManager.remove( - new Fingerprint(null, 0, 0, 0), mUserId, mRemovalCallback); - } else { - finish(); + new Fingerprint(null, mUserId, 0, 0), mUserId, + new RemovalCallback() { + @Override + public void onRemovalError(Fingerprint fp, int errMsgId, + CharSequence errString) { + mRemovalCallback.onRemovalError(fp, errMsgId, errString); + mFingerprintManager.setActiveUser(UserHandle.myUserId()); + } + + @Override + public void onRemovalSucceeded(Fingerprint fingerprint) { + mRemovalCallback.onRemovalSucceeded(fingerprint); + mFingerprintManager.setActiveUser(UserHandle.myUserId()); + } + }); } + finish(); } @Override @@ -636,7 +650,7 @@ public class ChooseLockGeneric extends SettingsActivity { } private int getResIdForFactoryResetProtectionWarningMessage() { - boolean hasFingerprints = mFingerprintManager.hasEnrolledFingerprints(); + boolean hasFingerprints = mFingerprintManager.hasEnrolledFingerprints(mUserId); boolean isProfile = Utils.isManagedProfile(UserManager.get(getActivity()), mUserId); switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(mUserId)) { case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING: