Don't show hover tooltip while an app popup is open

Flag: EXEMPT bugfix
Test: TaskbarHoverToolTipControllerTest
Fixes: 397243128
Change-Id: I1b67d065e9e79e13a5a341a5d133da700ef5f40c
This commit is contained in:
Tony Wickham
2025-02-25 01:02:14 +00:00
parent 131c68b11b
commit 88a9e18f7c
4 changed files with 24 additions and 6 deletions

View File

@@ -48,6 +48,7 @@ class TaskbarHoverToolTipControllerTest {
@get:Rule(order = 1) val taskbarUnitTestRule = TaskbarUnitTestRule(this, context)
@InjectController lateinit var autohideSuspendController: TaskbarAutohideSuspendController
@InjectController lateinit var popupController: TaskbarPopupController
private val taskbarContext: TaskbarActivityContext by taskbarUnitTestRule::activityContext
@@ -137,6 +138,15 @@ class TaskbarHoverToolTipControllerTest {
assertThat(isHoverToolTipOpen).isFalse()
}
@Test
fun onHover_hoverEnterPopupOpen_noToolTip() {
runOnMainSync {
popupController.showForIcon(iconView)
iconView.dispatchGenericMotionEvent(HOVER_ENTER)
}
assertThat(isHoverToolTipOpen).isFalse()
}
companion object {
private val HOVER_EXIT = MotionEvent.obtain(0, 0, ACTION_HOVER_EXIT, 0f, 0f, 0)
private val HOVER_ENTER = MotionEvent.obtain(0, 0, ACTION_HOVER_ENTER, 0f, 0f, 0)

View File

@@ -28,6 +28,7 @@ import com.android.launcher3.taskbar.TaskbarActivityContext
import com.android.launcher3.taskbar.TaskbarControllers
import com.android.launcher3.taskbar.TaskbarManager
import com.android.launcher3.taskbar.TaskbarNavButtonController.TaskbarNavButtonCallbacks
import com.android.launcher3.taskbar.TaskbarUIController
import com.android.launcher3.taskbar.bubbles.BubbleControllers
import com.android.launcher3.taskbar.rules.TaskbarUnitTestRule.InjectController
import com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR
@@ -117,6 +118,8 @@ class TaskbarUnitTestRule(
super.recreateTaskbars()
if (currentActivityContext != null) {
injectControllers()
// TODO(b/346394875): we should test a non-default uiController.
activityContext.setUIController(TaskbarUIController.DEFAULT)
controllerInjectionCallback.invoke()
}
}