diff --git a/res/xml/security_settings_fingerprint.xml b/res/xml/security_settings_fingerprint.xml
index 32f09244f97..331549c2743 100644
--- a/res/xml/security_settings_fingerprint.xml
+++ b/res/xml/security_settings_fingerprint.xml
@@ -29,6 +29,14 @@
android:title="@string/fingerprint_add_title"
android:icon="@drawable/ic_add_24dp"/>
+
+
items = mFingerprintManager.getEnrolledFingerprints(mUserId);
final int fingerprintCount = items.size();
for (int i = 0; i < fingerprintCount; i++) {
@@ -715,13 +723,30 @@ public class FingerprintSettings extends SubSettings {
mFingerprintsEnrolledCategory.addPreference(pref);
pref.setOnPreferenceChangeListener(this);
}
- mAddFingerprintPreference = findPreference(KEY_FINGERPRINT_ADD);
+ mAddFingerprintPreference = findPreference(mIsExpressiveThemeStyle
+ ? KEY_FINGERPRINT_ADD_EXPRESSIVE : KEY_FINGERPRINT_ADD);
setupAddFingerprintPreference();
return keyToReturn;
}
private void setupAddFingerprintPreference() {
mAddFingerprintPreference.setOnPreferenceChangeListener(this);
+ if (mIsExpressiveThemeStyle
+ && (mAddFingerprintPreference instanceof ButtonPreference)) {
+ ((ButtonPreference) mAddFingerprintPreference).setOnClickListener(view -> {
+ mIsEnrolling = true;
+ Intent intent = new Intent();
+ intent.setClassName(SETTINGS_PACKAGE_NAME,
+ FingerprintEnroll.AddAdditionalFingerprint.class.getName());
+ intent.putExtra(Intent.EXTRA_USER_ID, mUserId);
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken);
+ if (mCalibrator != null) {
+ intent.putExtras(mCalibrator.getExtrasForNextIntent());
+ }
+ startActivityForResult(intent, ADD_FINGERPRINT_REQUEST);
+ });
+ }
+
updateAddPreference();
}
@@ -803,12 +828,15 @@ public class FingerprintSettings extends SubSettings {
return; // Activity went away
}
- mAddFingerprintPreference = findPreference(KEY_FINGERPRINT_ADD);
+ mAddFingerprintPreference = findPreference(
+ mIsExpressiveThemeStyle ? KEY_FINGERPRINT_ADD_EXPRESSIVE : KEY_FINGERPRINT_ADD);
if (mAddFingerprintPreference == null) {
return; // b/275519315 Skip if updateAddPreference() invoke before addPreference()
}
+ updateAddingButtonStyle();
+
/* Disable preference if too many fingerprints added */
final int max = getContext().getResources().getInteger(
com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser);
@@ -828,6 +856,20 @@ public class FingerprintSettings extends SubSettings {
&& !tooMany && !removalInProgress && mToken != null);
}
+ private void updateAddingButtonStyle() {
+ final Preference nonExpressiveBtnPreference = findPreference(KEY_FINGERPRINT_ADD);
+ final ButtonPreference expressiveBtnPreference =
+ findPreference(KEY_FINGERPRINT_ADD_EXPRESSIVE);
+
+ if (nonExpressiveBtnPreference != null) {
+ nonExpressiveBtnPreference.setVisible(!mIsExpressiveThemeStyle);
+ }
+
+ if (expressiveBtnPreference != null) {
+ expressiveBtnPreference.setVisible(mIsExpressiveThemeStyle);
+ }
+ }
+
private void createFooterPreference(PreferenceGroup root) {
final Context context = getActivity();
if (context == null) {
@@ -925,11 +967,11 @@ public class FingerprintSettings extends SubSettings {
@Override
public boolean onPreferenceTreeClick(Preference pref) {
final String key = pref.getKey();
- if (KEY_FINGERPRINT_ADD.equals(key)) {
+ if (!mIsExpressiveThemeStyle && KEY_FINGERPRINT_ADD.equals(key)) {
mIsEnrolling = true;
Intent intent = new Intent();
intent.setClassName(SETTINGS_PACKAGE_NAME,
- FingerprintEnroll.AddAdditionalFingerprint.class.getName());
+ FingerprintEnroll.AddAdditionalFingerprint.class.getName());
intent.putExtra(Intent.EXTRA_USER_ID, mUserId);
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken);
if (mCalibrator != null) {