Merge "Fix Biometric prompt not close after opening notification using Quick Tap" into udc-dev am: 86f46f50f7 am: 42ebacfcf4

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

Change-Id: I0aca286503139caf3ff3c57b090447f41d2cd2e0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetector.kt b/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetector.kt
index 64211b5..d15a2af 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 @@
     private fun onPanelExpansionChanged(event: ShadeExpansionChangeEvent) =
         mainExecutor.execute {
             action?.let {
-                if (event.tracking) {
+                if (event.tracking || event.expanded) {
                     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 6ddba0b..b41053c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetectorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthDialogPanelInteractionDetectorTest.kt
@@ -25,7 +25,7 @@
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.Mock
-import org.mockito.Mockito.timeout
+import org.mockito.Mockito.times
 import org.mockito.Mockito.verify
 import org.mockito.Mockito.verifyZeroInteractions
 import org.mockito.junit.MockitoJUnit
@@ -49,17 +49,31 @@
     }
 
     @Test
-    fun testEnableDetector_shouldPostRunnable() {
+    fun testEnableDetector_expandWithTrack_shouldPostRunnable() {
         detector.enable(action)
         // simulate notification expand
         shadeExpansionStateManager.onPanelExpansionChanged(5566f, true, true, 5566f)
-        verify(action, timeout(5000).times(1)).run()
+        verify(action).run()
+    }
+
+    @Test
+    fun testEnableDetector_trackOnly_shouldPostRunnable() {
+        detector.enable(action)
+        // simulate notification expand
+        shadeExpansionStateManager.onPanelExpansionChanged(5566f, false, true, 5566f)
+        verify(action).run()
+    }
+
+    @Test
+    fun testEnableDetector_expandOnly_shouldPostRunnable() {
+        detector.enable(action)
+        // simulate notification expand
+        shadeExpansionStateManager.onPanelExpansionChanged(5566f, true, false, 5566f)
+        verify(action).run()
     }
 
     @Test
     fun testEnableDetector_shouldNotPostRunnable() {
-        var detector =
-            AuthDialogPanelInteractionDetector(shadeExpansionStateManager, mContext.mainExecutor)
         detector.enable(action)
         detector.disable()
         shadeExpansionStateManager.onPanelExpansionChanged(5566f, true, true, 5566f)