From a64a914ddf4370f96909a48c40f6c7de35bd08b5 Mon Sep 17 00:00:00 2001 From: Thales Lima Date: Tue, 18 Oct 2022 18:30:43 +0100 Subject: [PATCH] Calculate taskbar content size for edu Using the value calculated in layout was not working because TaskbarView onLayout() was being called after TaskbarEduView onMeasure(). Now uses the same value on all orientations based on taskbar icon size. Fixes: 252945031 Test: manual Change-Id: Ib6914901638c82f3b3ec4c9b86f6c20e84d34d0f --- .../taskbar/TaskbarEduController.java | 2 +- .../android/launcher3/taskbar/TaskbarView.java | 18 +++++++++++++----- .../taskbar/TaskbarViewController.java | 4 ++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java index 95b93febe0..2c2416170d 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java @@ -222,7 +222,7 @@ public class TaskbarEduController implements TaskbarControllers.LoggableTaskbarC } int getIconLayoutBoundsWidth() { - return mControllers.taskbarViewController.getIconLayoutBounds().width(); + return mControllers.taskbarViewController.getIconLayoutWidth(); } } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java index bb82d19734..1bddcca835 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java @@ -321,12 +321,8 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { int count = getChildCount(); - int countExcludingQsb = count; DeviceProfile deviceProfile = mActivityContext.getDeviceProfile(); - if (deviceProfile.isQsbInline) { - countExcludingQsb--; - } - int spaceNeeded = countExcludingQsb * (mItemMarginLeftRight * 2 + mIconTouchSize); + int spaceNeeded = getIconLayoutWidth(); int navSpaceNeeded = deviceProfile.hotseatBarEndOffset; boolean layoutRtl = isLayoutRtl(); int iconEnd = right - (right - left - spaceNeeded) / 2; @@ -416,6 +412,18 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar return mIconLayoutBounds; } + /** + * Returns the space used by the icons + */ + public int getIconLayoutWidth() { + int countExcludingQsb = getChildCount(); + DeviceProfile deviceProfile = mActivityContext.getDeviceProfile(); + if (deviceProfile.isQsbInline) { + countExcludingQsb--; + } + return countExcludingQsb * (mItemMarginLeftRight * 2 + mIconTouchSize); + } + /** * Returns the app icons currently shown in the taskbar. */ diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java index 16dd90db29..1530ce121a 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java @@ -193,6 +193,10 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar return mTaskbarView.getIconLayoutBounds(); } + public int getIconLayoutWidth() { + return mTaskbarView.getIconLayoutWidth(); + } + public View[] getIconViews() { return mTaskbarView.getIconViews(); }