Merge "Don't use fingerId when creating names" into mnc-dev

This commit is contained in:
Jim Miller
2015-07-08 22:58:21 +00:00
committed by Android (Google) Code Review
2 changed files with 27 additions and 5 deletions

View File

@@ -56,7 +56,7 @@ public class FingerprintUtils {
}
public void addFingerprintForUser(Context ctx, int fingerId, int userId) {
getStateForUser(ctx, userId).addFingerprint(fingerId);
getStateForUser(ctx, userId).addFingerprint(fingerId, userId);
}
public void removeFingerprintIdForUser(Context ctx, int fingerId, int userId) {

View File

@@ -68,9 +68,9 @@ class FingerprintsUserState {
}
}
public void addFingerprint(int fingerId) {
public void addFingerprint(int fingerId, int groupId) {
synchronized (this) {
mFingerprints.add(new Fingerprint(getDefaultFingerprintName(fingerId), 0, fingerId, 0));
mFingerprints.add(new Fingerprint(getUniqueName(), groupId, fingerId, 0));
scheduleWriteStateLocked();
}
}
@@ -107,8 +107,30 @@ class FingerprintsUserState {
}
}
private String getDefaultFingerprintName(int fingerId) {
return mCtx.getString(com.android.internal.R.string.fingerprint_name_template, fingerId);
/**
* Finds a unique name for the given fingerprint
* @return unique name
*/
private String getUniqueName() {
int guess = 1;
while (true) {
// Not the most efficient algorithm in the world, but there shouldn't be more than 10
String name = mCtx.getString(com.android.internal.R.string.fingerprint_name_template,
guess);
if (isUnique(name)) {
return name;
}
guess++;
}
}
private boolean isUnique(String name) {
for (Fingerprint fp : mFingerprints) {
if (fp.getName().equals(name)) {
return false;
}
}
return true;
}
private static File getFileForUser(int userId) {