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

Commit 176f1a63 authored by Jigar Thakkar's avatar Jigar Thakkar
Browse files

Do not request confirmation by default for private space unlocks

Fix face unlock confirmation button behavior to respect "always
require confirmation" setting. Adjust the description of the
confirmation toggle in private space face unlock settings to
reflect this change.
Screenshot: https://screenshot.googleplex.com/4uHfm9Z3ZE56ZaT.png

Bug: 342383195
Test: Tested manually by flashing local build
Change-Id: I0f742839a862fe66cacad9f5704dbe8b0df3a0c2
parent 9bc1bc3c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1262,6 +1262,8 @@
    <string name="private_space_face_settings_require_attention_details">To unlock private space, your eyes must be open. For best results, take off sunglasses.</string>
    <!-- Text shown in face settings in private space explaining what your face can be used for. [CHAR LIMIT=NONE] -->
    <string name="private_space_face_settings_footer">Use your face to unlock your private space.\n\nKeep in mind:\nYou can only have one face set up at a time. To add another face, delete the current one.\n\nLooking at the phone can unlock it when you don\u2019t intend to.\n\nYour private space can be unlocked by someone else if your device is held up to your face.\n\nYour private space can be unlocked by someone who looks a lot like you, like an identical sibling.</string>
    <!-- Text shown on the details of a toggle which enables/disables confirmation (i.e. confirm button) each time face unlock is used for private space. [CHAR LIMIT=90] -->
    <string name="private_space_face_settings_require_confirmation_details">When using Face Unlock, always require confirmation step</string>
    <!-- Biometric category title - biometric options for unlocking the device. [CHAR LIMIT=50] -->
    <string name="private_space_category_ways_to_unlock">Ways to unlock</string>
    <!-- Summary for one lock when device screen lock is used as private profile lock. [CHAR LIMIT=40] -->
+6 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.provider.Settings;

import androidx.preference.Preference;

import com.android.settings.R;
import com.android.settings.Utils;

import java.util.List;
@@ -76,6 +77,11 @@ public class FaceSettingsConfirmPreferenceController extends FaceSettingsPrefere
            preference.setEnabled(false);
        } else {
            preference.setEnabled(true);
            // Update summary for private space face settings toggle
            if (Utils.isPrivateProfile(getUserId(), mContext)) {
                preference.setSummary(mContext.getString(
                        R.string.private_space_face_settings_require_confirmation_details));
            }
        }
    }

+6 −1
Original line number Diff line number Diff line
@@ -313,7 +313,7 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity {
            mForceVerifyPath = userProperties.isCredentialShareableWithParent();
            if (android.multiuser.Flags.enableBiometricsToUnlockPrivateSpace()
                    && isBiometricAllowed(effectiveUserId, mUserId)) {
                promptInfo.setUseParentProfileForDeviceCredential(true);
                setBiometricPromptPropertiesForPrivateProfile(promptInfo);
                showBiometricPrompt(promptInfo, effectiveUserId);
                launchedBiometric = true;
            } else {
@@ -344,6 +344,11 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity {
        }
    }

    private static void setBiometricPromptPropertiesForPrivateProfile(PromptInfo promptInfo) {
        promptInfo.setUseParentProfileForDeviceCredential(true);
        promptInfo.setConfirmationRequested(false);
    }

    private String getTitleFromCredentialType(@LockPatternUtils.CredentialType int credentialType,
            boolean isEffectiveUserManagedProfile) {
        switch (credentialType) {