FPSettings depends on SensorProps for maxEnrolls
Test: Verified that AIDL FP devices honor the maximum number of fp's allowed according to the HAL. Fixes: 223617233 Change-Id: Ia0c46647d77ce52d4fe95154eae8d8b656456f53
This commit is contained in:
@@ -312,9 +312,10 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
|
||||
default:
|
||||
FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this);
|
||||
int enrolled = fpm.getEnrolledFingerprints().size();
|
||||
int max = getResources().getInteger(
|
||||
com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser);
|
||||
if (enrolled >= max) {
|
||||
final List<FingerprintSensorPropertiesInternal> props =
|
||||
fpm.getSensorPropertiesInternal();
|
||||
final int maxEnrollments = props.get(0).maxEnrollmentsPerUser;
|
||||
if (enrolled >= maxEnrollments) {
|
||||
finish();
|
||||
} else {
|
||||
// We came back from enrolling but it wasn't completed, start again.
|
||||
|
@@ -21,6 +21,7 @@ import android.content.ComponentName;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.hardware.fingerprint.FingerprintManager;
|
||||
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
@@ -36,6 +37,7 @@ import com.google.android.setupcompat.template.FooterBarMixin;
|
||||
import com.google.android.setupcompat.template.FooterButton;
|
||||
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||
|
||||
import java.util.List;
|
||||
/**
|
||||
* Activity which concludes fingerprint enrollment.
|
||||
*/
|
||||
@@ -92,10 +94,11 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase {
|
||||
final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this);
|
||||
boolean hideAddAnother = false;
|
||||
if (fpm != null) {
|
||||
final List<FingerprintSensorPropertiesInternal> props =
|
||||
fpm.getSensorPropertiesInternal();
|
||||
int maxEnrollments = props.get(0).maxEnrollmentsPerUser;
|
||||
int enrolled = fpm.getEnrolledFingerprints(mUserId).size();
|
||||
int max = getResources().getInteger(
|
||||
com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser);
|
||||
hideAddAnother = enrolled >= max;
|
||||
hideAddAnother = enrolled >= maxEnrollments;
|
||||
}
|
||||
if (hideAddAnother) {
|
||||
// Don't show "Add" button if too many fingerprints already added
|
||||
|
@@ -457,8 +457,10 @@ public class FingerprintSettings extends SubSettings {
|
||||
final Preference addPreference = findPreference(KEY_FINGERPRINT_ADD);
|
||||
|
||||
/* Disable preference if too many fingerprints added */
|
||||
final int max = getContext().getResources().getInteger(
|
||||
com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser);
|
||||
final List<FingerprintSensorPropertiesInternal> props =
|
||||
mFingerprintManager.getSensorPropertiesInternal();
|
||||
// This will need to be updated for devices with multiple fingerprint sensors
|
||||
final int max = props.get(0).maxEnrollmentsPerUser;
|
||||
boolean tooMany = mFingerprintManager.getEnrolledFingerprints(mUserId).size() >= max;
|
||||
// retryFingerprint() will be called when remove finishes
|
||||
// need to disable enroll or have a way to determine if enroll is in progress
|
||||
|
Reference in New Issue
Block a user