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

Commit 426c6585 authored by Ilya Matyukhin's avatar Ilya Matyukhin Committed by Automerger Merge Worker
Browse files

Merge "Dismiss BiometricPrompt if window focus is lost" into tm-d1-dev am:...

Merge "Dismiss BiometricPrompt if window focus is lost" into tm-d1-dev am: a259049f am: 0d9b0434 am: a779562e

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18878593



Change-Id: I8c820aa7d2a3846776229a7d735ec91e47be80ae
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 394614de a779562e
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -435,6 +435,15 @@ public class AuthContainerView extends LinearLayout
        maybeUpdatePositionForUdfps(true /* invalidate */);
    }

    @Override
    public void onWindowFocusChanged(boolean hasWindowFocus) {
        super.onWindowFocusChanged(hasWindowFocus);
        if (!hasWindowFocus) {
            Log.v(TAG, "Lost window focus, dismissing the dialog");
            animateAway(AuthDialogCallback.DISMISSED_USER_CANCELED);
        }
    }

    @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
@@ -795,7 +804,7 @@ public class AuthContainerView extends LinearLayout
        final WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL,
                WindowManager.LayoutParams.TYPE_STATUS_BAR_ADDITIONAL,
                windowFlags,
                PixelFormat.TRANSLUCENT);
        lp.privateFlags |= WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS;
+17 −0
Original line number Diff line number Diff line
@@ -105,6 +105,23 @@ class AuthContainerViewTest : SysuiTestCase() {
        verify(callback).onDialogAnimatedIn()
    }

    @Test
    fun testDismissesOnFocusLoss() {
        val container = initializeFingerprintContainer()
        waitForIdleSync()

        verify(callback).onDialogAnimatedIn()

        container.onWindowFocusChanged(false)
        waitForIdleSync()

        verify(callback).onDismissed(
            eq(AuthDialogCallback.DISMISSED_USER_CANCELED),
            eq<ByteArray?>(null) /* credentialAttestation */
        )
        assertThat(container.parent).isNull()
    }

    @Test
    fun testActionAuthenticated_sendsDismissedAuthenticated() {
        val container = initializeFingerprintContainer()