mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-01 00:06:47 +00:00
Merge "Report contentInsets only based on what they will be inside apps" into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
be0360c6d8
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user