Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 612230db authored by Thales Lima's avatar Thales Lima
Browse files

Make hotseat RTL aware

Fix: 217567306
Test: manual, turning on "Force RTL"
Change-Id: I1369cfc6e9afd328a1a6945469064d4cd54f31ea
parent 5f8386cf
Loading
Loading
Loading
Loading
+16 −13
Original line number Diff line number Diff line
@@ -1013,29 +1013,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;
@@ -1085,7 +1088,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;
        }
+2 −1
Original line number Diff line number Diff line
@@ -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;
        }