From 9598e4c78cb87bb690f2ee1600a5d5b8f962a090 Mon Sep 17 00:00:00 2001 From: helen cheuk Date: Wed, 14 May 2025 18:48:57 +0000 Subject: [PATCH] [Action Corner] Make home action corner irreversible The go home action for action corner should be irreversible for now. When home action corner is triggered at homepage, it should just stay at homepage and would not go back to previous task. Add flag for the reversible behavior for non-desktop mode home action corner. It is to be completed with dekstop mode in later release. Bug: 397182595 Test: ActionCornerHandlerTest Flag: com.android.launcher3.enable_reversible_home_action_corner Change-Id: Ib36581d0d3d81d4a7ff8f8d6265d8d5d5f5872fd --- aconfig/launcher.aconfig | 6 ++++++ .../quickstep/actioncorner/ActionCornerHandler.kt | 10 ++++++++-- .../quickstep/actioncorner/ActionCornerHandlerTest.kt | 9 +++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/aconfig/launcher.aconfig b/aconfig/launcher.aconfig index c49233bcd5..64d29e1d1f 100644 --- a/aconfig/launcher.aconfig +++ b/aconfig/launcher.aconfig @@ -640,3 +640,9 @@ flag { bug: "370950552" } +flag { + name: "enable_reversible_home_action_corner" + namespace: "launcher" + description: "Enables home action corner to be reversible" + bug: "416664984" +} diff --git a/quickstep/src/com/android/quickstep/actioncorner/ActionCornerHandler.kt b/quickstep/src/com/android/quickstep/actioncorner/ActionCornerHandler.kt index 8f7d69e3d6..5ddad7e493 100644 --- a/quickstep/src/com/android/quickstep/actioncorner/ActionCornerHandler.kt +++ b/quickstep/src/com/android/quickstep/actioncorner/ActionCornerHandler.kt @@ -19,6 +19,7 @@ package com.android.quickstep.actioncorner import android.app.ActivityOptions import android.content.Context import android.window.SplashScreen +import com.android.launcher3.Flags.enableReversibleHomeActionCorner import com.android.launcher3.concurrent.annotations.LightweightBackground import com.android.launcher3.dagger.ApplicationContext import com.android.launcher3.util.ActivityOptionsWrapper @@ -73,7 +74,12 @@ constructor( when (action) { // TODO(b/410798748): handle projected mode when launching overview OVERVIEW -> overviewCommandHelper.addCommandsForAllDisplays(TOGGLE_OVERVIEW_PREVIOUS) - HOME -> handleHomeAction(displayId) + HOME -> + if (enableReversibleHomeActionCorner()) { + handleHomeAction(displayId) + } else { + overviewCommandHelper.addCommand(CommandType.HOME, displayId) + } else -> {} } } @@ -94,7 +100,7 @@ constructor( overviewCommandHelper.addCommand(CommandType.HOME, displayId) } } else { - // TODO: handle desktop task + // TODO(b/416664984): handle reversible home action for desktop mode } } diff --git a/quickstep/tests/multivalentTests/src/com/android/quickstep/actioncorner/ActionCornerHandlerTest.kt b/quickstep/tests/multivalentTests/src/com/android/quickstep/actioncorner/ActionCornerHandlerTest.kt index da49533da8..c3b62303a5 100644 --- a/quickstep/tests/multivalentTests/src/com/android/quickstep/actioncorner/ActionCornerHandlerTest.kt +++ b/quickstep/tests/multivalentTests/src/com/android/quickstep/actioncorner/ActionCornerHandlerTest.kt @@ -19,10 +19,13 @@ package com.android.quickstep.actioncorner import android.app.ActivityManager.RecentTaskInfo import android.graphics.Rect import android.platform.test.annotations.DisableFlags +import android.platform.test.annotations.EnableFlags +import android.platform.test.flag.junit.SetFlagsRule import android.view.Display.DEFAULT_DISPLAY import android.window.IWindowContainerToken import android.window.WindowContainerToken import androidx.test.filters.SmallTest +import com.android.launcher3.Flags.FLAG_ENABLE_REVERSIBLE_HOME_ACTION_CORNER import com.android.launcher3.LauncherState import com.android.launcher3.uioverrides.QuickstepLauncher import com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR @@ -41,7 +44,7 @@ import com.android.quickstep.util.SplitTask import com.android.systemui.shared.recents.model.Task import com.android.systemui.shared.system.ActivityManagerWrapper import com.android.systemui.shared.system.actioncorner.ActionCornerConstants.HOME -import com.android.wm.shell.Flags +import com.android.wm.shell.Flags.FLAG_ENABLE_SHELL_TOP_TASK_TRACKING import com.android.wm.shell.shared.GroupedTaskInfo import com.android.wm.shell.shared.split.SplitBounds import com.android.wm.shell.shared.split.SplitScreenConstants @@ -62,10 +65,12 @@ import org.mockito.kotlin.whenever @SmallTest @RunWith(LauncherMultivalentJUnit::class) -@DisableFlags(Flags.FLAG_ENABLE_SHELL_TOP_TASK_TRACKING) +@DisableFlags(FLAG_ENABLE_SHELL_TOP_TASK_TRACKING) +@EnableFlags(FLAG_ENABLE_REVERSIBLE_HOME_ACTION_CORNER) class ActionCornerHandlerTest { @get:Rule val context = SandboxApplication() + @get:Rule val mSetFlagsRule = SetFlagsRule() private val overviewCommandHelper: OverviewCommandHelper = mock() private val overviewComponentObserver: OverviewComponentObserver = mock()