diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml index fb78ef76f5..765d36c4d3 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 454a2a4569..95b93febe0 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java @@ -220,5 +220,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();