Merge "Allow transient taskbar to unstash over soft ime" into tm-qpr-dev
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
index b53e9c5..c339c70 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
@@ -757,6 +757,11 @@
         mIsImeShowing = hasAnyFlag(systemUiStateFlags, SYSUI_STATE_IME_SHOWING);
         mIsImeSwitcherShowing = hasAnyFlag(systemUiStateFlags, SYSUI_STATE_IME_SWITCHER_SHOWING);
         if (!mIsSystemGestureInProgress) {
+            if (mIsImeShowing || mIsImeSwitcherShowing) {
+                // Hide taskbar when IME is shown.
+                updateStateForFlag(FLAG_STASHED_IN_APP_AUTO, true);
+            }
+
             updateStateForFlag(FLAG_STASHED_IN_APP_IME, shouldStashForIme());
             animDuration = TASKBAR_STASH_DURATION_FOR_IME;
             startDelay = getTaskbarStashStartDelayForIme();
@@ -770,8 +775,12 @@
      *  * in small screen AND
      *  * 3 button nav AND
      *  * landscape (or seascape)
+     * We do not stash if taskbar is transient
      */
     private boolean shouldStashForIme() {
+        if (DisplayController.isTransientTaskbar(mActivity)) {
+            return false;
+        }
         return (mIsImeShowing || mIsImeSwitcherShowing) &&
                 !(isPhoneMode() && mActivity.isThreeButtonNav()
                         && mActivity.getDeviceProfile().isLandscape);