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

Commit c4bcf041 authored by Curtis Belmonte's avatar Curtis Belmonte
Browse files

Pass CDC text as credential-only to BiometricPrompt

Invokes the new hidden API to allow the work authentication prompt to
supply specific text to BiometricPrompt for credential auth. This
allows the prompt to use work-specific language when verifying work
credentials, while retaining more generic language when authenticating
with biometrics.

Test: Work lock prompt shows "Enter your work ___" for credential
Test: Work lock prompt now shows "Verify it's you" for face

Bug: 149003660
Change-Id: Icab8e16702ca31d08fa8b0b00f0519c9a37f609f
parent 4d6527e0
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -130,8 +130,12 @@ public class BiometricFragment extends InstrumentedFragment {
                .setDeviceCredentialAllowed(true)
                .setSubtitle(mBundle.getString(BiometricPrompt.KEY_SUBTITLE))
                .setDescription(mBundle.getString(BiometricPrompt.KEY_DESCRIPTION))
                .setConfirmationRequired(
                        mBundle.getBoolean(BiometricPrompt.KEY_REQUIRE_CONFIRMATION, true))
                .setTextForDeviceCredential(
                        mBundle.getCharSequence(BiometricPrompt.KEY_DEVICE_CREDENTIAL_TITLE),
                        mBundle.getCharSequence(BiometricPrompt.KEY_DEVICE_CREDENTIAL_SUBTITLE),
                        mBundle.getCharSequence(BiometricPrompt.KEY_DEVICE_CREDENTIAL_DESCRIPTION))
                .setConfirmationRequired(mBundle.getBoolean(
                        BiometricPrompt.KEY_REQUIRE_CONFIRMATION, true))
                .setDisallowBiometricsIfPolicyExists(mBundle.getBoolean(
                        BiometricPrompt.EXTRA_DISALLOW_BIOMETRICS_IF_POLICY_EXISTS, false));

+12 −8
Original line number Diff line number Diff line
@@ -182,14 +182,7 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity {
        if ((mTitle == null) && isManagedProfile) {
            mTitle = getTitleFromOrganizationName(mUserId);
        }
        final @LockPatternUtils.CredentialType int credentialType = Utils.getCredentialType(
                mContext, effectiveUserId);
        if (mTitle == null) {
            mTitle = getTitleFromCredentialType(credentialType, isManagedProfile);
        }
        if (mDetails == null) {
            mDetails = getDetailsFromCredentialType(credentialType, isManagedProfile);
        }


        mChooseLockSettingsHelper = new ChooseLockSettingsHelper(this);
        final LockPatternUtils lockPatternUtils = new LockPatternUtils(this);
@@ -200,6 +193,17 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity {
        bpBundle.putBoolean(BiometricPrompt.EXTRA_DISALLOW_BIOMETRICS_IF_POLICY_EXISTS,
                mCheckDevicePolicyManager);

        final @LockPatternUtils.CredentialType int credentialType = Utils.getCredentialType(
                mContext, effectiveUserId);
        if (mTitle == null) {
            bpBundle.putString(BiometricPrompt.KEY_DEVICE_CREDENTIAL_TITLE,
                    getTitleFromCredentialType(credentialType, isManagedProfile));
        }
        if (mDetails == null) {
            bpBundle.putString(BiometricPrompt.KEY_DEVICE_CREDENTIAL_DESCRIPTION,
                    getDetailsFromCredentialType(credentialType, isManagedProfile));
        }

        boolean launchedBiometric = false;
        boolean launchedCDC = false;
        // If the target is a managed user and user key not unlocked yet, we will force unlock