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

Commit f96a5a05 authored by Hao Dong's avatar Hao Dong
Browse files

Combine customBiometricPrompt() with constraintBp().

Flag: ACONFIG constraint_bp DEVELOPMENT
Flag: ACONFIG android.hardware.biometrics.custom_biometric_prompt DEVELOPMENT
Test: atest AuthContainerViewTest
Test: atest PromptViewModelTest
Bug: 302735104
Change-Id: Ief073244913131cfdd3c02acf66a5cdb7d112f61
parent 73dc5d51
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -881,7 +881,7 @@ public class AuthContainerView extends LinearLayout

        final Runnable endActionRunnable = () -> {
            setVisibility(View.INVISIBLE);
            if (Flags.customBiometricPrompt()) {
            if (Flags.customBiometricPrompt() && constraintBp()) {
                mPromptSelectorInteractorProvider.get().resetPrompt();
            }
            removeWindowIfAttached();
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.biometrics.data.repository

import android.hardware.biometrics.Flags
import android.hardware.biometrics.PromptInfo
import com.android.systemui.Flags.constraintBp
import com.android.systemui.biometrics.AuthController
import com.android.systemui.biometrics.Utils
import com.android.systemui.biometrics.Utils.isDeviceCredentialAllowed
@@ -151,6 +152,7 @@ constructor(
        val hasCredentialViewShown = kind.value !is PromptKind.Biometric
        val showBpForCredential =
            Flags.customBiometricPrompt() &&
                constraintBp() &&
                !Utils.isBiometricAllowed(promptInfo) &&
                isDeviceCredentialAllowed(promptInfo) &&
                promptInfo.contentView != null
+9 −5
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.content.Context
import android.hardware.biometrics.BiometricAuthenticator
import android.hardware.biometrics.BiometricConstants
import android.hardware.biometrics.BiometricPrompt
import android.hardware.biometrics.Flags
import android.hardware.face.FaceManager
import android.text.method.ScrollingMovementMethod
import android.util.Log
@@ -166,11 +167,14 @@ object BiometricViewBinder {
            titleView.text = viewModel.title.first()
            subtitleView.text = viewModel.subtitle.first()
            descriptionView.text = viewModel.description.first()

            if (Flags.customBiometricPrompt() && constraintBp()) {
                BiometricCustomizedViewBinder.bind(
                    customizedViewContainer,
                    view.requireViewById(R.id.space_above_content),
                    viewModel
                )
            }

            // set button listeners
            negativeButton.setOnClickListener { legacyCallback.onButtonNegative() }
+4 −3
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.util.Log
import android.view.HapticFeedbackConstants
import android.view.MotionEvent
import com.android.systemui.Flags.bpTalkback
import com.android.systemui.Flags.constraintBp
import com.android.systemui.biometrics.UdfpsUtils
import com.android.systemui.biometrics.Utils
import com.android.systemui.biometrics.domain.interactor.DisplayStateInteractor
@@ -284,7 +285,7 @@ constructor(
        promptSelectorInteractor.prompt
            .map {
                when {
                    !customBiometricPrompt() || it == null -> null
                    !(customBiometricPrompt() && constraintBp()) || it == null -> null
                    it.logoRes != -1 -> context.resources.getDrawable(it.logoRes, context.theme)
                    it.logoBitmap != null -> BitmapDrawable(context.resources, it.logoBitmap)
                    else ->
@@ -304,7 +305,7 @@ constructor(
        promptSelectorInteractor.prompt
            .map {
                when {
                    !customBiometricPrompt() || it == null -> ""
                    !(customBiometricPrompt() && constraintBp()) || it == null -> ""
                    it.logoDescription != null -> it.logoDescription
                    else ->
                        try {
@@ -329,7 +330,7 @@ constructor(
    /** Custom content view for the prompt. */
    val contentView: Flow<PromptContentView?> =
        promptSelectorInteractor.prompt
            .map { if (customBiometricPrompt()) it?.contentView else null }
            .map { if (customBiometricPrompt() && constraintBp()) it?.contentView else null }
            .distinctUntilChanged()

    private val originalDescription =
+1 −2
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ import android.content.pm.PackageManager
import android.hardware.biometrics.BiometricAuthenticator
import android.hardware.biometrics.BiometricConstants
import android.hardware.biometrics.BiometricManager
import android.hardware.biometrics.Flags.FLAG_CUSTOM_BIOMETRIC_PROMPT
import android.hardware.biometrics.PromptInfo
import android.hardware.biometrics.PromptVerticalListContentView
import android.hardware.face.FaceSensorPropertiesInternal
@@ -386,7 +385,6 @@ open class AuthContainerViewTest : SysuiTestCase() {

    @Test
    fun testShowCredentialUI_withDescription() {
        mSetFlagsRule.disableFlags(FLAG_CUSTOM_BIOMETRIC_PROMPT)
        val container = initializeFingerprintContainer(
                authenticators = BiometricManager.Authenticators.DEVICE_CREDENTIAL
        )
@@ -397,6 +395,7 @@ open class AuthContainerViewTest : SysuiTestCase() {
    }

    @Test
    @Ignore("b/302735104")
    fun testShowCredentialUI_withCustomBp() {
        val container = initializeFingerprintContainer(
                authenticators = BiometricManager.Authenticators.DEVICE_CREDENTIAL,
Loading