Merge "Limit number of fingerprint templates that can be enrolled per device user" into mnc-dev

This commit is contained in:
Jim Miller
2015-06-16 03:48:55 +00:00
committed by Android (Google) Code Review
3 changed files with 42 additions and 6 deletions

View File

@@ -695,11 +695,11 @@
<!-- Fingerprint managment category title - configuration options for managing enrolled fingerprints [CHAR LIMIT=22] -->
<string name="fingerprint_manage_category_title">Manage fingerprints</string>
<!-- Fingerprint category title - configuration options for managing fingerprint enrollment [CHAR LIMIT=22] -->
<string name="fingerprint_usage_category_title">Use fingerprint for</string>
<!-- Preference to add another fingerprint -->
<string name="fingerprint_add_title">Add fingerprint</string>
<!-- switch for allowing fingerprint to be used for keyguard -->
<string name="fingerprint_enable_keyguard_toggle_title">screen lock</string>
<string name="fingerprint_usage_category_title">Use fingerprint for</string>
<!-- Preference to add another fingerprint -->
<string name="fingerprint_add_title">Add fingerprint</string>
<!-- switch for allowing fingerprint to be used for keyguard -->
<string name="fingerprint_enable_keyguard_toggle_title">screen lock</string>
<!-- message shown for menu item that launches fingerprint settings or enrollment -->
<plurals name="security_settings_fingerprint_preference_summary">
<item quantity="one"><xliff:g id="count">%1$d</xliff:g> fingerprint set up</item>
@@ -772,6 +772,9 @@
<!-- 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>
<!-- 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 -->
<string name="crypt_keeper_settings_title">Encryption</string>

View File

@@ -16,10 +16,18 @@
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.preference.Preference;
import android.view.View;
import android.widget.Button;
import com.android.settings.R;
import com.android.settings.fingerprint.FingerprintSettings.FingerprintPreference;
import java.util.List;
/**
* Activity which concludes fingerprint enrollment.
@@ -31,7 +39,18 @@ public class FingerprintEnrollFinish extends FingerprintEnrollBase {
super.onCreate(savedInstanceState);
setContentView(R.layout.fingerprint_enroll_finish);
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

View File

@@ -179,6 +179,7 @@ public class FingerprintSettings extends SubSettings {
switch (msg.what) {
case MSG_REFRESH_FINGERPRINT_TEMPLATES:
removeFingerprintPreference(msg.arg1);
updateAddPreference();
break;
case MSG_FINGER_AUTH_SUCCESS:
mFingerprintCancel = null;
@@ -330,6 +331,19 @@ public class FingerprintSettings extends SubSettings {
addPreference.setIcon(R.drawable.ic_add_24dp);
root.addPreference(addPreference);
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) {