Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be0360c6 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Report contentInsets only based on what they will be inside apps" into sc-v2-dev

parents 953873dd c7b8957b
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -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.
     */
+5 −2
Original line number Diff line number Diff line
@@ -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;
        }

        /**
+13 −3
Original line number Diff line number Diff line
@@ -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;
+0 −3
Original line number Diff line number Diff line
@@ -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<ItemInfoWithIcon> getAppIconsForEdu() {