From c9a317c7a22109291d38311c7a097b8537f56dcd Mon Sep 17 00:00:00 2001 From: Thales Lima Date: Wed, 21 Sep 2022 17:31:48 -0400 Subject: [PATCH] Change taskbar edu size to wrap around icons Bug: 217262479 Test: manual Change-Id: I766394f4f64d5ba76c1bf50de9d06526376e6662 --- quickstep/res/values/dimens.xml | 1 + .../taskbar/TaskbarEduController.java | 4 ++++ .../launcher3/taskbar/TaskbarEduView.java | 20 +++++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml index c85e71cebc..27d707bd0c 100644 --- a/quickstep/res/values/dimens.xml +++ b/quickstep/res/values/dimens.xml @@ -268,6 +268,7 @@ 4dp 25dp 4dp + 112dp 88dp 40dp 40dp diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java index 32a3c10d87..7b9fc6ac5a 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java @@ -217,5 +217,9 @@ public class TaskbarEduController implements TaskbarControllers.LoggableTaskbarC v -> mTaskbarEduView.snapToPage(currentPage + 1)); } } + + int getIconLayoutBoundsWidth() { + return mControllers.taskbarViewController.getIconLayoutBounds().width(); + } } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduView.java index 89d67be685..c0cbbd697d 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduView.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduView.java @@ -39,6 +39,9 @@ public class TaskbarEduView extends AbstractSlideInView private final Rect mInsets = new Rect(); + // Initialized in init. + private TaskbarEduController.TaskbarEduCallbacks mTaskbarEduCallbacks; + private Button mStartButton; private Button mEndButton; private TaskbarEduPagedView mPagedView; @@ -56,6 +59,7 @@ public class TaskbarEduView extends AbstractSlideInView if (mPagedView != null) { mPagedView.setControllerCallbacks(callbacks); } + mTaskbarEduCallbacks = callbacks; } @Override @@ -101,6 +105,22 @@ public class TaskbarEduView extends AbstractSlideInView Settings.Secure.LAUNCHER_TASKBAR_EDUCATION_SHOWING, 0); } + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + + int contentWidth = Math.min(getContentAreaWidth(), getMeasuredWidth()); + contentWidth = Math.max(contentWidth, mTaskbarEduCallbacks.getIconLayoutBoundsWidth()); + int contentAreaWidthSpec = MeasureSpec.makeMeasureSpec(contentWidth, MeasureSpec.EXACTLY); + + mContent.measure(contentAreaWidthSpec, MeasureSpec.UNSPECIFIED); + } + + private int getContentAreaWidth() { + return mTaskbarEduCallbacks.getIconLayoutBoundsWidth() + + getResources().getDimensionPixelSize(R.dimen.taskbar_edu_horizontal_margin) * 2; + } + /** Show the Education flow. */ public void show() { attachToContainer();