From dad8a80d19d5f3c285c1ddeab4e42229b8d27138 Mon Sep 17 00:00:00 2001 From: zakcohen Date: Thu, 20 May 2021 09:52:26 -0700 Subject: [PATCH] Overview - Remove the space withheld for proactive chips Remove the space in the ui that was being used for chips. Centralize some of the logic around calculating the action margins to aid that. Bug: 179922117 Test: Local build and flash and run Change-Id: Icd2f894c858fab475c5411f3f7c412b899d5b220 --- quickstep/res/values/dimens.xml | 4 +- .../launcher3/BaseQuickstepLauncher.java | 1 + .../quickstep/BaseActivityInterface.java | 20 +++---- .../quickstep/views/OverviewActionsView.java | 58 +++++++++++++------ .../com/android/quickstep/views/TaskView.java | 6 ++ res/values/dimens.xml | 2 + src/com/android/launcher3/DeviceProfile.java | 6 ++ 7 files changed, 64 insertions(+), 33 deletions(-) diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml index 50453ace16..2a15d15d29 100644 --- a/quickstep/res/values/dimens.xml +++ b/quickstep/res/values/dimens.xml @@ -25,12 +25,12 @@ 48dp 16dp - 48dp + 50dp 16dp 48dp - 12dp + 28dp 8dp 16dp diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java index 0b41f15b42..4720f55549 100644 --- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java @@ -253,6 +253,7 @@ public abstract class BaseQuickstepLauncher extends Launcher new SplitSelectStateController(mHandler, SystemUiProxy.INSTANCE.get(this)) ); overviewPanel.init(mActionsView, mSplitPlaceholderView); + mActionsView.setDp(getDeviceProfile()); mActionsView.updateVerticalMargin(SysUINavigationMode.getMode(this)); mAppTransitionManager = new QuickstepTransitionManager(this); diff --git a/quickstep/src/com/android/quickstep/BaseActivityInterface.java b/quickstep/src/com/android/quickstep/BaseActivityInterface.java index 86bf1194bb..2696cbeb79 100644 --- a/quickstep/src/com/android/quickstep/BaseActivityInterface.java +++ b/quickstep/src/com/android/quickstep/BaseActivityInterface.java @@ -59,6 +59,7 @@ import com.android.quickstep.SysUINavigationMode.Mode; import com.android.quickstep.util.ActivityInitListener; import com.android.quickstep.util.AnimatorControllerWithResistance; import com.android.quickstep.util.SplitScreenBounds; +import com.android.quickstep.views.OverviewActionsView; import com.android.quickstep.views.RecentsView; import com.android.quickstep.views.TaskView; import com.android.systemui.shared.recents.model.ThumbnailData; @@ -212,7 +213,7 @@ public abstract class BaseActivityInterface extends FrameLayo private float mModalness; private float mModalTransformY; + protected DeviceProfile mDp; + public OverviewActionsView(Context context) { this(context, null); } @@ -205,36 +207,25 @@ public class OverviewActionsView extends FrameLayo /** Updates vertical margins for different navigation mode or configuration changes. */ public void updateVerticalMargin(Mode mode) { + if (mDp == null) { + return; + } LayoutParams actionParams = (LayoutParams) findViewById( R.id.action_buttons).getLayoutParams(); actionParams.setMargins( - actionParams.leftMargin, actionParams.topMargin, actionParams.rightMargin, - getBottomVerticalMargin(mode)); + actionParams.leftMargin, getOverviewActionsTopMarginPx(mode, mDp), + actionParams.rightMargin, getOverviewActionsBottomMarginPx(mode, mDp)); } /** * Set the device profile for this view to draw with. */ public void setDp(DeviceProfile dp) { + mDp = dp; + updateVerticalMargin(SysUINavigationMode.getMode(getContext())); requestLayout(); } - protected int getBottomVerticalMargin(Mode mode) { - int bottomMargin; - int orientation = getResources().getConfiguration().orientation; - if (orientation == Configuration.ORIENTATION_LANDSCAPE) { - bottomMargin = 0; - } else if (mode == Mode.THREE_BUTTONS) { - bottomMargin = getResources() - .getDimensionPixelSize(R.dimen.overview_actions_bottom_margin_three_button); - } else { - bottomMargin = getResources() - .getDimensionPixelSize(R.dimen.overview_actions_bottom_margin_gesture); - } - bottomMargin += mInsets.bottom; - return bottomMargin; - } - /** * The current task is fully modal (modalness = 1) when it is shown on its own in a modal * way. Modalness 0 means the task is shown in context with all the other tasks. @@ -257,4 +248,35 @@ public class OverviewActionsView extends FrameLayo float progress = ACCEL_DEACCEL.getInterpolation(mModalness); return Utilities.mapRange(progress, 0, endTranslation); } + + /** Get the top margin associated with the action buttons in Overview. */ + public static int getOverviewActionsTopMarginPx( + SysUINavigationMode.Mode mode, DeviceProfile dp) { + // In vertical bar, use the smaller task margin for the top regardless of mode + if (dp.isVerticalBarLayout()) { + return dp.overviewTaskMarginPx; + } + + if (mode == SysUINavigationMode.Mode.THREE_BUTTONS) { + return dp.overviewActionsMarginThreeButtonPx; + } + + return dp.overviewActionsMarginGesturePx; + } + + /** Get the bottom margin associated with the action buttons in Overview. */ + public static int getOverviewActionsBottomMarginPx( + SysUINavigationMode.Mode mode, DeviceProfile dp) { + int inset = dp.getInsets().bottom; + + if (dp.isVerticalBarLayout()) { + return inset; + } + + if (mode == SysUINavigationMode.Mode.THREE_BUTTONS) { + return dp.overviewActionsMarginThreeButtonPx + inset; + } + + return dp.overviewActionsMarginGesturePx + inset; + } } diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java index cfac32cb09..b2a7b1b85d 100644 --- a/quickstep/src/com/android/quickstep/views/TaskView.java +++ b/quickstep/src/com/android/quickstep/views/TaskView.java @@ -132,6 +132,12 @@ public class TaskView extends FrameLayout implements Reusable { @IntDef({FLAG_UPDATE_ALL, FLAG_UPDATE_ICON, FLAG_UPDATE_THUMBNAIL}) public @interface TaskDataChanges {} + /** + * Should the layout account for space for a proactive action (or chip) to be added under + * the task. + */ + public static final boolean SHOW_PROACTIVE_ACTIONS = false; + /** The maximum amount that a task view can be scrimmed, dimmed or tinted. */ public static final float MAX_PAGE_SCRIM_ALPHA = 0.4f; diff --git a/res/values/dimens.xml b/res/values/dimens.xml index bfa02c07d3..f8ed902e50 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -294,6 +294,8 @@ 0dp 0dp 0dp + 0dp + 0dp 22dp diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index 812667371d..cdc09f10d6 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -170,6 +170,8 @@ public class DeviceProfile { public int overviewTaskMarginPx; public int overviewTaskIconSizePx; public int overviewTaskThumbnailTopMarginPx; + public final int overviewActionsMarginThreeButtonPx; + public final int overviewActionsMarginGesturePx; // Widgets public final PointF appWidgetScale = new PointF(1.0f, 1.0f); @@ -338,6 +340,10 @@ public class DeviceProfile { R.dimen.task_thumbnail_icon_size_grid) : res.getDimensionPixelSize( R.dimen.task_thumbnail_icon_size); overviewTaskThumbnailTopMarginPx = overviewTaskIconSizePx + overviewTaskMarginPx * 2; + overviewActionsMarginGesturePx = res.getDimensionPixelSize( + R.dimen.overview_actions_bottom_margin_gesture); + overviewActionsMarginThreeButtonPx = res.getDimensionPixelSize( + R.dimen.overview_actions_bottom_margin_three_button); // Calculate all of the remaining variables. extraSpace = updateAvailableDimensions(res);