[Biometric Onboarding & Edu] Update fingerprint settings page

- Added a feature provider for fingerprint settings page in
  FingerprintFeatureProvider for customization
- When no fingerprint enrolled, disabled the settings buttons instead of
  hiding them.
- Update new UX style for add fingerprint button

Bug: 370940762
Test: manual - 1. Enroll a fingerprint
               2. Go Fingerprint Settings page and remove fingerprint
	       3. Enroll fingerprint again
Test: atest FingerprintSettingsFragmentTest
Flag: com.android.settings.flags.biometrics_onboarding_education

Change-Id: Ibe47bb241c4b20e8e0c5b4a9172aef90bf3727ea
This commit is contained in:
Shawn Lin
2025-01-24 07:08:46 +00:00
parent d6e99d3783
commit e2051d50e3
8 changed files with 177 additions and 20 deletions

View File

@@ -23,6 +23,7 @@ import android.hardware.fingerprint.FingerprintManager;
import android.provider.Settings;
import androidx.annotation.NonNull;
import androidx.preference.Preference;
import com.android.settings.Utils;
import com.android.settings.biometrics.activeunlock.ActiveUnlockStatusUtils;
@@ -53,6 +54,20 @@ public class FingerprintSettingsAppsPreferenceController
isChecked ? ON : OFF, getUserId());
}
@Override
public void updateState(Preference preference) {
super.updateState(preference);
if (!FingerprintSettings.isFingerprintHardwareDetected(mContext)) {
preference.setEnabled(false);
} else if (!mFingerprintManager.hasEnrolledTemplates(getUserId())) {
preference.setEnabled(false);
} else if (getRestrictingAdmin() != null) {
preference.setEnabled(false);
} else {
preference.setEnabled(true);
}
}
@Override
public int getAvailabilityStatus() {
final ActiveUnlockStatusUtils activeUnlockStatusUtils =