[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

@@ -135,16 +135,20 @@ public class FingerprintSettingsFragmentTest {
@Mock
private Vibrator mVibrator;
private FingerprintSettingsFeatureProvider mFingerprintSettingsFeatureProvider;
private FakeFeatureFactory mFakeFeatureFactory;
private FingerprintAuthenticateSidecar mFingerprintAuthenticateSidecar;
private FingerprintRemoveSidecar mFingerprintRemoveSidecar;
@Before
public void setUp() {
ShadowUtils.setFingerprintManager(mFingerprintManager);
FakeFeatureFactory.setupForTest();
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
mContext = spy(ApplicationProvider.getApplicationContext());
mFragment = spy(new FingerprintSettingsFragment());
mFingerprintSettingsFeatureProvider = new FingerprintSettingsFeatureProvider();
doReturn(mContext).when(mFragment).getContext();
doReturn(mBiometricManager).when(mContext).getSystemService(BiometricManager.class);
doReturn(true).when(mFingerprintManager).isHardwareDetected();
@@ -152,6 +156,9 @@ public class FingerprintSettingsFragmentTest {
when(mBiometricManager.canAuthenticate(PRIMARY_USER_ID,
BiometricManager.Authenticators.IDENTITY_CHECK))
.thenReturn(BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
when(mFakeFeatureFactory.getFingerprintFeatureProvider()
.getFingerprintSettingsFeatureProvider())
.thenReturn(mFingerprintSettingsFeatureProvider);
}
@After