diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java index 2622700871..5e8db69f2b 100644 --- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java @@ -20,7 +20,6 @@ import static com.android.systemui.shared.system.WindowManagerWrapper.ITYPE_EXTR import android.animation.Animator; import android.annotation.ColorInt; -import android.graphics.Rect; import android.os.RemoteException; import android.util.Log; import android.view.MotionEvent; @@ -114,13 +113,6 @@ public class LauncherTaskbarUIController extends TaskbarUIController { return !mTaskbarLauncherStateController.isAnimatingToLauncher(); } - @Override - protected void updateContentInsets(Rect outContentInsets) { - int contentHeight = mControllers.taskbarStashController.getContentHeight(); - TaskbarDragLayer dragLayer = mControllers.taskbarActivityContext.getDragLayer(); - outContentInsets.top = dragLayer.getHeight() - contentHeight; - } - /** * Should be called from onResume() and onPause(), and animates the Taskbar accordingly. */ diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java index 806b39093f..a918016cc6 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java @@ -181,10 +181,13 @@ public class TaskbarDragLayerController { } /** - * Called to update the {@link InsetsInfo#contentInsets}. + * Called to update the {@link InsetsInfo#contentInsets}. This is reported to apps but our + * internal launcher will ignore these insets. */ public void updateContentInsets(Rect outContentInsets) { - mControllers.uiController.updateContentInsets(outContentInsets); + int contentHeight = mControllers.taskbarStashController + .getContentHeightToReportToApps(); + outContentInsets.top = mTaskbarDragLayer.getHeight() - contentHeight; } /** diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index a3ad83504c..5c31e05996 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -53,10 +53,17 @@ public class TaskbarStashController { public static final int FLAG_IN_STASHED_LAUNCHER_STATE = 1 << 6; // If we're in an app and any of these flags are enabled, taskbar should be stashed. - public static final int FLAGS_STASHED_IN_APP = FLAG_STASHED_IN_APP_MANUAL + private static final int FLAGS_STASHED_IN_APP = FLAG_STASHED_IN_APP_MANUAL | FLAG_STASHED_IN_APP_PINNED | FLAG_STASHED_IN_APP_EMPTY | FLAG_STASHED_IN_APP_SETUP | FLAG_STASHED_IN_APP_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. + // Currently any flag that causes us to stash in an app is included, except for IME since that + // covers the underlying app anyway and thus the app shouldn't change insets. + private static final int FLAGS_REPORT_STASHED_INSETS_TO_APP = FLAGS_STASHED_IN_APP + & ~FLAG_STASHED_IN_APP_IME; + /** * How long to stash/unstash when manually invoked via long press. */ @@ -239,8 +246,11 @@ public class TaskbarStashController { return !mIsStashed && (mState & FLAG_IN_APP) != 0; } - public int getContentHeight() { - if (isStashed()) { + /** + * Returns the height that taskbar will inset when inside apps. + */ + public int getContentHeightToReportToApps() { + if (hasAnyFlag(FLAGS_REPORT_STASHED_INSETS_TO_APP)) { boolean isAnimating = mAnimator != null && mAnimator.isStarted(); return mControllers.stashedHandleViewController.isStashedHandleVisible() || isAnimating ? mStashedHeight : 0; diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java index f6bc785a14..abad9060ab 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java @@ -15,7 +15,6 @@ */ package com.android.launcher3.taskbar; -import android.graphics.Rect; import android.view.View; import androidx.annotation.CallSuper; @@ -49,8 +48,6 @@ public class TaskbarUIController { return true; } - protected void updateContentInsets(Rect outContentInsets) { } - protected void onStashedInAppChanged() { } public Stream getAppIconsForEdu() {