From 28ba1dd2cb181808416ca18ecd605c3b2e452569 Mon Sep 17 00:00:00 2001 From: Vincent Wang Date: Tue, 11 Apr 2023 09:19:27 +0000 Subject: [PATCH] Fix Biometric prompt is getting dismissed while receiving the heads-up notification NotificationPanelView treats heads-up as Expaned, we should check fraction at the sametime to avoid dismissing BP when heads-up displayed Bug: b/277303696 Test: atest AuthDialogPanelInteractionDetectorTest Change-Id: I84f791b88f5d6230c662b0348a9aba77a4c4eb58 --- .../AuthDialogPanelInteractionDetector.kt | 2 +- .../AuthDialogPanelInteractionDetectorTest.kt | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetector.kt b/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetector.kt index d15a2afa0d4a2..6c62a3936910a 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetector.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetector.kt @@ -39,7 +39,7 @@ constructor( private fun onPanelExpansionChanged(event: ShadeExpansionChangeEvent) = mainExecutor.execute { action?.let { - if (event.tracking || event.expanded) { + if (event.tracking || (event.expanded && event.fraction > 0)) { Log.v(TAG, "Detected panel interaction, event: $event") it.onPanelInteraction.run() disable() diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetectorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetectorTest.kt index b41053cdea50c..ef750be90b4bd 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetectorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetectorTest.kt @@ -51,32 +51,37 @@ class AuthDialogPanelInteractionDetectorTest : SysuiTestCase() { @Test fun testEnableDetector_expandWithTrack_shouldPostRunnable() { detector.enable(action) - // simulate notification expand - shadeExpansionStateManager.onPanelExpansionChanged(5566f, true, true, 5566f) + shadeExpansionStateManager.onPanelExpansionChanged(1.0f, true, true, 0f) verify(action).run() } @Test fun testEnableDetector_trackOnly_shouldPostRunnable() { detector.enable(action) - // simulate notification expand - shadeExpansionStateManager.onPanelExpansionChanged(5566f, false, true, 5566f) + shadeExpansionStateManager.onPanelExpansionChanged(1.0f, false, true, 0f) verify(action).run() } @Test fun testEnableDetector_expandOnly_shouldPostRunnable() { detector.enable(action) - // simulate notification expand - shadeExpansionStateManager.onPanelExpansionChanged(5566f, true, false, 5566f) + shadeExpansionStateManager.onPanelExpansionChanged(1.0f, true, false, 0f) verify(action).run() } + @Test + fun testEnableDetector_expandWithoutFraction_shouldPostRunnable() { + detector.enable(action) + // simulate headsup notification + shadeExpansionStateManager.onPanelExpansionChanged(0.0f, true, false, 0f) + verifyZeroInteractions(action) + } + @Test fun testEnableDetector_shouldNotPostRunnable() { detector.enable(action) detector.disable() - shadeExpansionStateManager.onPanelExpansionChanged(5566f, true, true, 5566f) + shadeExpansionStateManager.onPanelExpansionChanged(1.0f, true, true, 0f) verifyZeroInteractions(action) } }