Merge "Limit number of fingerprint templates that can be enrolled per device user" into mnc-dev
This commit is contained in:
@@ -772,6 +772,9 @@
|
|||||||
<!-- Text shown in fingerprint enroll when we didn't observe progress for a few seconds. [CHAR LIMIT=100] -->
|
<!-- Text shown in fingerprint enroll when we didn't observe progress for a few seconds. [CHAR LIMIT=100] -->
|
||||||
<string name="security_settings_fingerprint_enroll_lift_touch_again">Lift finger, then touch sensor again</string>
|
<string name="security_settings_fingerprint_enroll_lift_touch_again">Lift finger, then touch sensor again</string>
|
||||||
|
|
||||||
|
<!-- Text shown when "Add fingerprint" button is disabled -->
|
||||||
|
<string name="fingerprint_add_max">You can add up to <xliff:g id="count" example="5">%d</xliff:g> fingerprints</string>
|
||||||
|
|
||||||
<!-- Title of the preferences category for preference items to control encryption -->
|
<!-- Title of the preferences category for preference items to control encryption -->
|
||||||
<string name="crypt_keeper_settings_title">Encryption</string>
|
<string name="crypt_keeper_settings_title">Encryption</string>
|
||||||
|
|
||||||
|
@@ -16,10 +16,18 @@
|
|||||||
|
|
||||||
package com.android.settings.fingerprint;
|
package com.android.settings.fingerprint;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.hardware.fingerprint.Fingerprint;
|
||||||
|
import android.hardware.fingerprint.FingerprintManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.preference.Preference;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.widget.Button;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.fingerprint.FingerprintSettings.FingerprintPreference;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Activity which concludes fingerprint enrollment.
|
* Activity which concludes fingerprint enrollment.
|
||||||
@@ -31,7 +39,18 @@ public class FingerprintEnrollFinish extends FingerprintEnrollBase {
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.fingerprint_enroll_finish);
|
setContentView(R.layout.fingerprint_enroll_finish);
|
||||||
setHeaderText(R.string.security_settings_fingerprint_enroll_finish_title);
|
setHeaderText(R.string.security_settings_fingerprint_enroll_finish_title);
|
||||||
findViewById(R.id.add_another_button).setOnClickListener(this);
|
Button addButton = (Button) findViewById(R.id.add_another_button);
|
||||||
|
|
||||||
|
FingerprintManager fpm = (FingerprintManager) getSystemService(Context.FINGERPRINT_SERVICE);
|
||||||
|
int enrolled = fpm.getEnrolledFingerprints().size();
|
||||||
|
int max = getResources().getInteger(
|
||||||
|
com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser);
|
||||||
|
if (enrolled >= max) {
|
||||||
|
/* Don't show "Add" button if too many fingerprints already added */
|
||||||
|
addButton.setVisibility(View.INVISIBLE);
|
||||||
|
} else {
|
||||||
|
addButton.setOnClickListener(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -179,6 +179,7 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
switch (msg.what) {
|
switch (msg.what) {
|
||||||
case MSG_REFRESH_FINGERPRINT_TEMPLATES:
|
case MSG_REFRESH_FINGERPRINT_TEMPLATES:
|
||||||
removeFingerprintPreference(msg.arg1);
|
removeFingerprintPreference(msg.arg1);
|
||||||
|
updateAddPreference();
|
||||||
break;
|
break;
|
||||||
case MSG_FINGER_AUTH_SUCCESS:
|
case MSG_FINGER_AUTH_SUCCESS:
|
||||||
mFingerprintCancel = null;
|
mFingerprintCancel = null;
|
||||||
@@ -330,6 +331,19 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
addPreference.setIcon(R.drawable.ic_add_24dp);
|
addPreference.setIcon(R.drawable.ic_add_24dp);
|
||||||
root.addPreference(addPreference);
|
root.addPreference(addPreference);
|
||||||
addPreference.setOnPreferenceChangeListener(this);
|
addPreference.setOnPreferenceChangeListener(this);
|
||||||
|
updateAddPreference();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateAddPreference() {
|
||||||
|
/* Disable preference if too many fingerprints added */
|
||||||
|
final int max = getContext().getResources().getInteger(
|
||||||
|
com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser);
|
||||||
|
boolean tooMany = mFingerprintManager.getEnrolledFingerprints().size() >= max;
|
||||||
|
CharSequence maxSummary = tooMany ?
|
||||||
|
getContext().getString(R.string.fingerprint_add_max, max) : "";
|
||||||
|
Preference addPreference = findPreference(KEY_FINGERPRINT_ADD);
|
||||||
|
addPreference.setSummary(maxSummary);
|
||||||
|
addPreference.setEnabled(!tooMany);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String genKey(int id) {
|
private static String genKey(int id) {
|
||||||
|
Reference in New Issue
Block a user