Merge "Make hotseat RTL aware" into tm-dev

This commit is contained in:
Thales Lima
2022-04-19 16:47:52 +00:00
committed by Android (Google) Code Review
2 changed files with 18 additions and 14 deletions

View File

@@ -1015,29 +1015,32 @@ public class DeviceProfile {
mInsets.right + hotseatBarSidePaddingStartPx, paddingBottom);
}
} else if (isTaskbarPresent) {
boolean isRtl = Utilities.isRtl(context.getResources());
int hotseatHeight = workspacePadding.bottom;
int taskbarOffset = getTaskbarOffsetY();
int additionalLeftSpace = 0;
// Center the QSB with hotseat and push icons to the right
if (isQsbInline) {
additionalLeftSpace = qsbWidth + hotseatBorderSpace;
}
// Push icons to the side
int additionalQsbSpace = isQsbInline ? qsbWidth + hotseatBorderSpace : 0;
// Center the QSB vertically with hotseat
int hotseatTopPadding = hotseatHeight - taskbarOffset - hotseatCellHeightPx;
int endOffset = ApiWrapper.getHotseatEndOffset(context);
int requiredWidth = iconSizePx * numShownHotseatIcons
+ hotseatBorderSpace * (numShownHotseatIcons - 1)
+ additionalLeftSpace;
+ additionalQsbSpace;
int hotseatSize = Math.min(requiredWidth, availableWidthPx - endOffset);
int sideSpacing = (availableWidthPx - hotseatSize) / 2;
mHotseatPadding.set(sideSpacing + additionalLeftSpace, hotseatTopPadding, sideSpacing,
taskbarOffset);
int hotseatWidth = Math.min(requiredWidth, availableWidthPx - endOffset);
int sideSpacing = (availableWidthPx - hotseatWidth) / 2;
mHotseatPadding.set(sideSpacing, hotseatTopPadding, sideSpacing, taskbarOffset);
if (isRtl) {
mHotseatPadding.right += additionalQsbSpace;
} else {
mHotseatPadding.left += additionalQsbSpace;
}
if (endOffset > sideSpacing) {
int diff = Utilities.isRtl(context.getResources())
int diff = isRtl
? sideSpacing - endOffset
: endOffset - sideSpacing;
mHotseatPadding.left -= diff;
@@ -1087,7 +1090,7 @@ public class DeviceProfile {
*/
public int getTaskbarOffsetY() {
if (isQsbInline) {
return getQsbOffsetY() + (Math.abs(hotseatQsbHeight - iconSizePx) / 2);
return getQsbOffsetY() - (Math.abs(hotseatQsbHeight - hotseatCellHeightPx) / 2);
} else {
return (getQsbOffsetY() - taskbarSize) / 2;
}

View File

@@ -195,7 +195,8 @@ public class Hotseat extends CellLayout implements Insettable {
int left;
if (mActivity.getDeviceProfile().isQsbInline) {
int qsbSpace = mActivity.getDeviceProfile().hotseatBorderSpace;
left = l + getPaddingLeft() - qsbWidth - qsbSpace;
left = Utilities.isRtl(getResources()) ? r - getPaddingRight() + qsbSpace
: l + getPaddingLeft() - qsbWidth - qsbSpace;
} else {
left = (r - l - qsbWidth) / 2;
}