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

Commit 10bc1279 authored by Chengfei Tao's avatar Chengfei Tao Committed by Android (Google) Code Review
Browse files

Merge "Better biometric subtitle with createConfirmDeviceCredentialIntent() API"

parents 5de1e9db 0e562c95
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -187,6 +187,19 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan
            return this;
        }

        /**
         * Shows a default subtitle for the prompt if the subtitle would otherwise be
         * null or empty. Currently for internal use only.
         * @return This builder.
         * @hide
         */
        @RequiresPermission(USE_BIOMETRIC_INTERNAL)
        @NonNull
        public Builder setUseDefaultSubtitle() {
            mPromptInfo.setUseDefaultSubtitle(true);
            return this;
        }

        /**
         * Optional: Sets a description that will be shown on the prompt.
         * @param description The description to display.
@@ -628,6 +641,16 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan
        return mPromptInfo.getSubtitle();
    }

    /**
     * Whether to use a default subtitle. For internal use only.
     * @return See {@link Builder#setUseDefaultSubtitle()}.
     * @hide
     */
    @RequiresPermission(USE_BIOMETRIC_INTERNAL)
    public boolean shouldUseDefaultSubtitle() {
        return mPromptInfo.isUseDefaultSubtitle();
    }

    /**
     * Gets the description for the prompt, as set by {@link Builder#setDescription(CharSequence)}.
     * @return The description for the prompt, or null if the prompt has no description.
+13 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ public class PromptInfo implements Parcelable {
    @NonNull private CharSequence mTitle;
    private boolean mUseDefaultTitle;
    @Nullable private CharSequence mSubtitle;
    private boolean mUseDefaultSubtitle;
    @Nullable private CharSequence mDescription;
    @Nullable private CharSequence mDeviceCredentialTitle;
    @Nullable private CharSequence mDeviceCredentialSubtitle;
@@ -56,6 +57,7 @@ public class PromptInfo implements Parcelable {
        mTitle = in.readCharSequence();
        mUseDefaultTitle = in.readBoolean();
        mSubtitle = in.readCharSequence();
        mUseDefaultSubtitle = in.readBoolean();
        mDescription = in.readCharSequence();
        mDeviceCredentialTitle = in.readCharSequence();
        mDeviceCredentialSubtitle = in.readCharSequence();
@@ -94,6 +96,7 @@ public class PromptInfo implements Parcelable {
        dest.writeCharSequence(mTitle);
        dest.writeBoolean(mUseDefaultTitle);
        dest.writeCharSequence(mSubtitle);
        dest.writeBoolean(mUseDefaultSubtitle);
        dest.writeCharSequence(mDescription);
        dest.writeCharSequence(mDeviceCredentialTitle);
        dest.writeCharSequence(mDeviceCredentialSubtitle);
@@ -128,6 +131,8 @@ public class PromptInfo implements Parcelable {
            return true;
        } else if (mUseDefaultTitle) {
            return true;
        } else if (mUseDefaultSubtitle) {
            return true;
        } else if (mDeviceCredentialTitle != null) {
            return true;
        } else if (mDeviceCredentialSubtitle != null) {
@@ -154,6 +159,10 @@ public class PromptInfo implements Parcelable {
        mSubtitle = subtitle;
    }

    public void setUseDefaultSubtitle(boolean useDefaultSubtitle) {
        mUseDefaultSubtitle = useDefaultSubtitle;
    }

    public void setDescription(CharSequence description) {
        mDescription = description;
    }
@@ -227,6 +236,10 @@ public class PromptInfo implements Parcelable {
        return mSubtitle;
    }

    public boolean isUseDefaultSubtitle() {
        return mUseDefaultSubtitle;
    }

    public CharSequence getDescription() {
        return mDescription;
    }
+8 −0
Original line number Diff line number Diff line
@@ -563,6 +563,14 @@ public class BiometricService extends SystemService {
                }
            }

            // Set the default subtitle if necessary.
            if (promptInfo.isUseDefaultSubtitle()) {
                if (TextUtils.isEmpty(promptInfo.getSubtitle())) {
                    promptInfo.setSubtitle(getContext()
                            .getString(R.string.biometric_dialog_default_subtitle));
                }
            }

            final long requestId = mRequestCounter.get();
            mHandler.post(() -> handleAuthenticate(
                    token, requestId, operationId, userId, receiver, opPackageName, promptInfo));