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

Commit 56c745c3 authored by Kevin Chyn's avatar Kevin Chyn
Browse files

Plumb setRequireConfirmation to CC

Bug: 111461540

Test: Tested with modified demo app with
      original and new KeyguardManager APIs

Change-Id: I56585fbfd704195586f2f516b35e9338e91b0346
parent 7c7e0d4d
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ public class BiometricFragment extends InstrumentedFragment {
    private static final String KEY_SUBTITLE = "subtitle";
    private static final String KEY_DESCRIPTION = "description";
    private static final String KEY_NEGATIVE_TEXT = "negative_text";
    private static final String KEY_REQUIRE_CONFIRMATION = "require_confirmation";

    // Re-set by the application. Should be done upon orientation changes, etc
    private Executor mClientExecutor;
@@ -129,6 +130,7 @@ public class BiometricFragment extends InstrumentedFragment {
            .setDescription(mPromptInfo.getDescription())
            .setNegativeButton(mPromptInfo.getNegativeButtonText(), mClientExecutor,
                    mNegativeButtonListener)
            .setRequireConfirmation(mPromptInfo.getRequireConfirmation())
            .build();
        mCancellationSignal = new CancellationSignal();

@@ -173,6 +175,10 @@ public class BiometricFragment extends InstrumentedFragment {
            return mBundle.getCharSequence(KEY_NEGATIVE_TEXT);
        }

        public boolean getRequireConfirmation() {
            return mBundle.getBoolean(KEY_REQUIRE_CONFIRMATION);
        }

        public static class Builder {
            private final Bundle mBundle = new Bundle();

@@ -196,6 +202,11 @@ public class BiometricFragment extends InstrumentedFragment {
                return this;
            }

            public Builder setRequireConfirmation(boolean requireConfirmation) {
                mBundle.putBoolean(KEY_REQUIRE_CONFIRMATION, requireConfirmation);
                return this;
            }

            public PromptInfo build() {
                return new PromptInfo(mBundle);
            }
+8 −3
Original line number Diff line number Diff line
@@ -136,6 +136,10 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity {
        Intent intent = getIntent();
        mTitle = intent.getStringExtra(KeyguardManager.EXTRA_TITLE);
        mDetails = intent.getStringExtra(KeyguardManager.EXTRA_DESCRIPTION);

        final boolean requireConfirmation =
                !intent.getBooleanExtra(KeyguardManager.EXTRA_USE_IMPLICIT, true);

        String alternateButton = intent.getStringExtra(
                KeyguardManager.EXTRA_ALTERNATE_BUTTON_LABEL);
        boolean frp = KeyguardManager.ACTION_CONFIRM_FRP_CREDENTIAL.equals(intent.getAction());
@@ -170,7 +174,7 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity {
                && !lockPatternUtils.isSeparateProfileChallengeEnabled(mUserId)) {
            mCredentialMode = CREDENTIAL_MANAGED;
            if (isBiometricAllowed(effectiveUserId)) {
                showBiometricPrompt();
                showBiometricPrompt(requireConfirmation);
                launchedBiometric = true;
            } else {
                showConfirmCredentials();
@@ -181,7 +185,7 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity {
            if (isBiometricAllowed(effectiveUserId)) {
                // Don't need to check if biometrics / pin/pattern/pass are enrolled. It will go to
                // onAuthenticationError and do the right thing automatically.
                showBiometricPrompt();
                showBiometricPrompt(requireConfirmation);
                launchedBiometric = true;
            } else {
                showConfirmCredentials();
@@ -242,7 +246,7 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity {
                && !isBiometricDisabledByAdmin(effectiveUserId);
    }

    private void showBiometricPrompt() {
    private void showBiometricPrompt(boolean requireConfirmation) {
        mBiometricManager.setActiveUser(mUserId);

        mBiometricFragment = (BiometricFragment) getSupportFragmentManager()
@@ -255,6 +259,7 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity {
                    .setSubtitle(mDetails)
                    .setNegativeButtonText(getResources()
                            .getString(R.string.confirm_device_credential_use_alternate_method))
                    .setRequireConfirmation(requireConfirmation)
                    .build();
            mBiometricFragment = BiometricFragment.newInstance(info);
            newFragment = true;