Merge "Use desktop mode autostashing on desktop devices" into main

This commit is contained in:
Treehugger Robot
2025-05-15 17:33:29 -07:00
committed by Android (Google) Code Review
5 changed files with 38 additions and 6 deletions
@@ -83,7 +83,7 @@ constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
resources.getDimension(R.dimen.taskbar_pinning_popup_menu_min_padding_from_screen_edge)
private var alwaysShowTaskbarOn =
if (taskbarActivityContext.isInDesktopMode) {
if (taskbarActivityContext.isTaskbarShowingDesktopTasks) {
LauncherPrefs.TASKBAR_PINNING_IN_DESKTOP_MODE.get(context)
} else {
!taskbarActivityContext.isTransientTaskbar
@@ -60,7 +60,7 @@ class TaskbarPinningController(private val context: TaskbarActivityContext) :
}
if (
controllers.taskbarDesktopModeController.isInDesktopModeAndNotInOverview(
controllers.taskbarDesktopModeController.shouldShowDesktopTasksInTaskbar(
context.displayId
)
) {
@@ -653,11 +653,13 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
* @return if we should allow taskbar to auto stash
*/
public boolean shouldAllowTaskbarToAutoStash() {
boolean isTransientTaskbar = mActivity.isTransientTaskbar();
boolean isInDesktop = mActivity.isInDesktopMode();
if (mActivity.isTransientTaskbar()) {
return true;
}
boolean isTaskbarPinningOnInDesktopMode = LauncherPrefs.TASKBAR_PINNING_IN_DESKTOP_MODE.get(
mActivity);
return isTransientTaskbar || (isInDesktop && !isTaskbarPinningOnInDesktopMode);
return !isTaskbarPinningOnInDesktopMode && mActivity.isTaskbarShowingDesktopTasks();
}
/**
@@ -688,7 +690,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
}
if (mActivity.isTransientTaskbar()) {
updateAndAnimateTransientTaskbar(!hasAnyFlag(FLAG_STASHED_IN_APP_AUTO));
} else if (mActivity.isInDesktopMode()) {
} else if (mActivity.isTaskbarShowingDesktopTasks()) {
updateAndAnimatePinnedTaskbar(!hasAnyFlag(FLAG_STASHED_IN_APP_AUTO));
}
}
@@ -412,6 +412,23 @@ class TaskbarStashControllerTest {
assertThat(stashController.timeoutAlarm.alarmPending()).isFalse()
}
@Test
@TaskbarMode(TRANSIENT)
fun shouldAllowTaskbarToAutoStash_transientTaskbar() {
assertThat(stashController.shouldAllowTaskbarToAutoStash()).isTrue()
}
@Test
@TaskbarMode(PINNED)
fun toggleTaskbarStash_autoStashedDesktopModeTaskbar() {
LauncherPrefs.get(context).put(TASKBAR_PINNING_IN_DESKTOP_MODE, false)
whenever(desktopVisibilityController.isInDesktopMode(context.displayId)).thenReturn(true)
getInstrumentation().runOnMainSync { stashController.toggleTaskbarStash() }
assertThat(stashController.isStashed).isTrue()
}
@Test
@TaskbarMode(TRANSIENT)
fun testUpdateAndAnimateTransientTaskbar_finishTaskbarTimeout_taskbarStashes() {
@@ -76,6 +76,19 @@ class TaskbarPinningControllerTest : TaskbarBaseTestCase() {
)
)
.thenAnswer { _ -> isInDesktopMode }
whenever(
taskbarControllers.taskbarDesktopModeController.isInDesktopMode(
taskbarActivityContext.displayId
)
)
.thenAnswer { _ -> isInDesktopMode }
whenever(
taskbarControllers.taskbarDesktopModeController.shouldShowDesktopTasksInTaskbar(
taskbarActivityContext.displayId
)
)
.thenAnswer { _ -> isInDesktopMode }
pinningController = spy(TaskbarPinningController(taskbarActivityContext))
pinningController.init(taskbarControllers, taskbarSharedState)
}