Do not stash if in small screen, with 3 button nav, and in landscape (or seascape). *
Do not stash if taskbar is transient. - *
Do not stash if hardware keyboard is attached and taskbar is pinned. + *
Do not stash if hardware keyboard is attached and taskbar is pinned and IME is docked
*/
private boolean shouldStashForIme() {
if (DisplayController.isTransientTaskbar(mActivity)) {
@@ -961,8 +972,10 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
&& mActivity.getDeviceProfile().isLandscape) {
return false;
}
- // Do not stash if pinned taskbar and hardware keyboard is attached.
- if (mActivity.isHardwareKeyboard() && DisplayController.isPinnedTaskbar(mActivity)) {
+
+ // Do not stash if pinned taskbar, hardware keyboard is attached and no IME is docked
+ if (mActivity.isHardwareKeyboard() && DisplayController.isPinnedTaskbar(mActivity)
+ && !mActivity.isImeDocked()) {
return false;
}
diff --git a/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java b/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java
index 8535a33b06..c3a4351d7b 100644
--- a/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java
+++ b/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java
@@ -187,7 +187,10 @@ public class QuickstepTestInformationHandler extends TestInformationHandler {
// Allow null-pointer to catch illegal states.
runOnTISBinder(tisBinder -> tisBinder.getTaskbarManager().recreateTaskbar());
return response;
-
+ case TestProtocol.REQUEST_TASKBAR_IME_DOCKED:
+ return getTISBinderUIProperty(Bundle::putBoolean, tisBinder ->
+ tisBinder.getTaskbarManager()
+ .getCurrentActivityContext().isImeDocked());
case TestProtocol.REQUEST_UNSTASH_BUBBLE_BAR_IF_STASHED:
runOnTISBinder(tisBinder -> {
// Allow null-pointer to catch illegal states.
diff --git a/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java b/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java
index cbb48949d1..6014ad4fcc 100644
--- a/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java
+++ b/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java
@@ -347,7 +347,7 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {
boolean isTransientTaskbar = mLauncher.isTransientTaskbar();
// Expect task bar invisible when the launched app was the IME activity.
LaunchedAppState launchedAppState = getAndAssertLaunchedApp();
- if (!isTransientTaskbar && isHardwareKeyboard()) {
+ if (!isTransientTaskbar && isHardwareKeyboard() && !mLauncher.isImeDocked()) {
launchedAppState.assertTaskbarVisible();
} else {
launchedAppState.assertTaskbarHidden();
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index c7190b67b6..6c7c3d8c5a 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -401,6 +401,9 @@