From d4d6388c8a3ec5564b5129f565587532328652bd Mon Sep 17 00:00:00 2001 From: Brian Isganitis Date: Thu, 30 May 2024 16:00:34 -0400 Subject: [PATCH] Only stash for IME when in-app and in overview. Making it a force stashed flag does not work because we do not stashing to occur in Launcher non-overview states. Flag: EXEMPT bugfix Fix: 343756969 Test: Manual Change-Id: Ib9c9e6fd1213777e66e8b48a20a2bbeb210ded8a --- .../launcher3/taskbar/TaskbarStashController.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index 74d2d60014..8fdb4601ab 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -100,7 +100,10 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba // If we're in an app and any of these flags are enabled, taskbar should be stashed. private static final int FLAGS_STASHED_IN_APP = FLAG_STASHED_IN_APP_SYSUI | FLAG_STASHED_IN_APP_SETUP | FLAG_STASHED_IN_TASKBAR_ALL_APPS - | FLAG_STASHED_SMALL_SCREEN | FLAG_STASHED_IN_APP_AUTO; + | FLAG_STASHED_SMALL_SCREEN | FLAG_STASHED_IN_APP_AUTO | FLAG_STASHED_IME; + + // If we're in overview and any of these flags are enabled, taskbar should be stashed. + private static final int FLAGS_STASHED_IN_OVERVIEW = FLAG_STASHED_IME; // If any of these flags are enabled, inset apps by our stashed height instead of our unstashed // height. This way the reported insets are consistent even during transitions out of the app. @@ -111,7 +114,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba // If any of these flags are enabled, the taskbar must be stashed. private static final int FLAGS_FORCE_STASHED = FLAG_STASHED_SYSUI | FLAG_STASHED_DEVICE_LOCKED - | FLAG_STASHED_IN_TASKBAR_ALL_APPS | FLAG_STASHED_SMALL_SCREEN | FLAG_STASHED_IME; + | FLAG_STASHED_IN_TASKBAR_ALL_APPS | FLAG_STASHED_SMALL_SCREEN; /** * How long to stash/unstash when manually invoked via long press. @@ -244,8 +247,13 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba boolean inApp = hasAnyFlag(flags, FLAGS_IN_APP); boolean stashedInApp = hasAnyFlag(flags, FLAGS_STASHED_IN_APP); boolean stashedLauncherState = hasAnyFlag(flags, FLAG_IN_STASHED_LAUNCHER_STATE); + boolean inOverview = hasAnyFlag(flags, FLAG_IN_OVERVIEW); + boolean stashedInOverview = hasAnyFlag(flags, FLAGS_STASHED_IN_OVERVIEW); boolean forceStashed = hasAnyFlag(flags, FLAGS_FORCE_STASHED); - return (inApp && stashedInApp) || (!inApp && stashedLauncherState) || forceStashed; + return (inApp && stashedInApp) + || (!inApp && stashedLauncherState) + || (inOverview && stashedInOverview) + || forceStashed; }; private final StatePropertyHolder mStatePropertyHolder = new StatePropertyHolder( mIsStashedPredicate);