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
This commit is contained in:
Thales Lima
2022-10-18 18:30:43 +01:00
parent 7c9144328a
commit a64a914ddf
3 changed files with 18 additions and 6 deletions

View File

@@ -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.
*/