Fix bug where fingerprint for wrong userId was attempted to be removed.
- cleaned up private API to ensure userId is distinct from groupId.
- fixed bug where we were sending the wrong userId when attempting to
- fix warning about wrong fingerId when receiving final id of 0.
Fixes bug 28268635
Change-Id: Ic8abfbf6fbf173db2d57a76ac2e38b2a71ffd19e
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index 1182ed5..74ec4bb 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -651,8 +651,10 @@
if (mFingerprintManager != null && mFingerprintManager.isHardwareDetected()
&& mFingerprintManager.hasEnrolledFingerprints(userId)) {
mFingerprintManager.setActiveUser(userId);
- mFingerprintManager.remove(
- new Fingerprint(null, userId, 0, 0), userId,
+ // For the purposes of M and N, groupId is the same as userId.
+ final int groupId = userId;
+ Fingerprint finger = new Fingerprint(null, groupId, 0, 0);
+ mFingerprintManager.remove(finger, userId,
new RemovalCallback() {
@Override
public void onRemovalError(Fingerprint fp, int errMsgId,