Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b8a2020 authored by Shawn Lin's avatar Shawn Lin
Browse files

[Biometric Onboarding & Edu] Support ways to use section for Face & FP

Move "Ways to use" section from "Face & Fingerprint Unlock" page to
"Face unlock" & "Fingerprint unlock" pages which means Face &
Fingerprint settings now have their own "Unlock your phone" & "Verify
it's your in app" settings.

Bug: 370940762
Test: atest FaceSettingsAppsPreferenceControllerTest
            FaceSettingsKeyguardUnlockPreferenceControllerTest
	    FingerprintSettingsAppsPreferenceControllerTest
	    FingerprintSettingsKeyguardUnlockPreferenceControllerTest
	    FingerprintSettingsFragmentTest
Flag: com.android.settings.flags.biometrics_onboarding_education
Change-Id: I702da9bb9415b6deb741132ccde6b8be7ae38de0
parent 73196499
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -901,6 +901,10 @@
    <string name="security_settings_face_enroll_improve_face_alert_body_fingerprint">Delete your current face model to set up Face Unlock again.\n\nYour face model will be permanently and securely deleted.\n\nAfter deletion, you will need your fingerprint, PIN, pattern, or password to unlock your phone or for authentication in apps.</string>
    <!-- Title for a category shown for the face settings page. [CHAR LIMIT=20] -->
    <string name="security_settings_face_settings_use_face_category">Use Face Unlock for</string>
    <!-- Title for a category shown for the face settings page. [CHAR LIMIT=20] -->
    <string name="security_settings_face_settings_face_category">Face</string>
    <!-- Title for a category shown for the face settings page. [CHAR LIMIT=20] -->
    <string name="security_settings_face_settings_use_face_to_category">Use Face to</string>
    <!-- Title for a category shown for the face settings page, followed by items that the user can toggle on/off to require/disable. [CHAR LIMIT=50] -->
    <string name="security_settings_face_settings_preferences_category">When using Face Unlock</string>
    <!-- Text shown on a toggle which disables/enables face unlock, depending if the user's eyes are open. [CHAR LIMIT=30] -->
@@ -932,6 +936,10 @@
    <!-- Note: Update FingerprintEnrollParentalConsent.CONSENT_STRING_RESOURCES when any _consent_ strings are added or removed. -->
    <!-- Title shown for choose lock options [CHAR LIMIT=22] -->
    <string name="security_settings_fingerprint">Fingerprint</string>
    <!-- Title shown for a category shown for fingerprint settings page. [CHAR LIMIT=22] -->
    <string name="security_settings_fingerprint_title">Fingerprints</string>
    <!-- Fingerprint category title - fingerprint options for unlocking the device. [CHAR LIMIT=60] -->
    <string name="security_settings_category_use_fingerprint">Use fingerprint to</string>
    <!-- Title shown for menu item that launches fingerprint settings or enrollment [CHAR LIMIT=22] -->
    <string name="security_settings_fingerprint_preference_title">Fingerprint</string>
    <!-- Title for a category shown for the fingerprint settings page, followed by items that the user can toggle on/off to require/disable. [CHAR LIMIT=50] -->
+18 −0
Original line number Diff line number Diff line
@@ -19,6 +19,24 @@
    xmlns:settings="http://schemas.android.com/apk/res-auto"
    android:title="@string/security_settings_face_preference_title">

    <PreferenceCategory
        android:key="biometric_settings_use_face_to"
        android:title="@string/security_settings_face_settings_use_face_to_category"
        settings:isPreferenceVisible="false">

        <com.android.settingslib.RestrictedSwitchPreference
            android:key="biometric_settings_face_keyguard"
            android:title="@string/biometric_settings_use_biometric_unlock_phone"
            settings:keywords="@string/keywords_biometric_unlock"
            settings:controller="com.android.settings.biometrics.face.FaceSettingsKeyguardUnlockPreferenceController"/>

        <SwitchPreferenceCompat
            android:key="biometric_settings_face_app"
            android:title="@string/biometric_settings_use_biometric_for_apps"
            settings:keywords="@string/keywords_biometric_unlock"
            settings:controller="com.android.settings.biometrics.face.FaceSettingsAppsPreferenceController"/>
    </PreferenceCategory>

    <PreferenceCategory
        android:key="security_settings_face_unlock_category"
        android:title="@string/security_settings_face_settings_use_face_category"
+18 −0
Original line number Diff line number Diff line
@@ -19,6 +19,24 @@
    xmlns:settings="http://schemas.android.com/apk/res-auto"
    android:title="@string/security_settings_fingerprint_preference_title">

    <PreferenceCategory
        android:key="biometric_settings_use_fingerprint_to"
        android:title="@string/security_settings_category_use_fingerprint"
        settings:isPreferenceVisible="false">

        <com.android.settingslib.RestrictedSwitchPreference
            android:key="biometric_settings_fingerprint_keyguard"
            android:title="@string/biometric_settings_use_biometric_unlock_phone"
            settings:keywords="@string/keywords_biometric_unlock"
            settings:controller="com.android.settings.biometrics.fingerprint.FingerprintSettingsKeyguardUnlockPreferenceController"/>

        <SwitchPreferenceCompat
            android:key="biometric_settings_fingerprint_app"
            android:title="@string/biometric_settings_use_biometric_for_apps"
            settings:keywords="@string/keywords_biometric_unlock"
            settings:controller="com.android.settings.biometrics.fingerprint.FingerprintSettingsAppsPreferenceController"/>
    </PreferenceCategory>

    <PreferenceCategory
        android:key="security_settings_fingerprints_enrolled"
        settings:controller="com.android.settings.biometrics.fingerprint.FingerprintsEnrolledCategoryPreferenceController">
+7 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.Nullable;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;

import com.android.settings.R;
import com.android.settings.biometrics.BiometricEnrollBase;
@@ -76,6 +77,12 @@ public class CombinedBiometricSettings extends BiometricsSettingsBase {
        if (mActiveUnlockStatusUtils.isAvailable()) {
            updateUiForActiveUnlock();
        }
        if (Flags.biometricsOnboardingEducation()) {
            final PreferenceCategory category = findPreference(KEY_USE_BIOMETRIC_PREFERENCE);
            if (category != null) {
                category.setVisible(false);
            }
        }
    }

    private void updateUiForActiveUnlock() {
+9 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.biometrics.BiometricUtils;
import com.android.settings.biometrics.IdentityCheckBiometricErrorDialog;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.flags.Flags;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settings.password.ConfirmDeviceCredentialActivity;
@@ -76,6 +77,8 @@ public class FaceSettings extends DashboardFragment {
            "security_settings_face_delete_faces_container";
    private static final String PREF_KEY_ENROLL_FACE_UNLOCK =
            "security_settings_face_enroll_faces_container";
    private static final String PREF_KEY_USE_FACE_TO_CATEGORY =
            "biometric_settings_use_face_to";
    public static final String SECURITY_SETTINGS_FACE_MANAGE_CATEGORY =
            "security_settings_face_manage_category";

@@ -238,6 +241,12 @@ public class FaceSettings extends DashboardFragment {
        if (savedInstanceState != null) {
            mToken = savedInstanceState.getByteArray(KEY_TOKEN);
        }

        if (Flags.biometricsOnboardingEducation()) {
            final PreferenceCategory category =
                    findPreference(PREF_KEY_USE_FACE_TO_CATEGORY);
            category.setVisible(true);
        }
    }

    @Override
Loading