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

Commit 69fd9293 authored by Mady Mellor's avatar Mady Mellor Committed by Automerger Merge Worker
Browse files

Merge "Fix the pointer position when displayed in RTL" into tm-dev am: 91d28d1b am: 533d85f3

parents d708eb81 533d85f3
Loading
Loading
Loading
Loading
+16 −4
Original line number Diff line number Diff line
@@ -706,6 +706,8 @@ public class BubbleExpandedView extends LinearLayout {
     * @param animate whether the pointer should animate to this position.
     */
    public void setPointerPosition(float bubblePosition, boolean onLeft, boolean animate) {
        final boolean isRtl = mContext.getResources().getConfiguration().getLayoutDirection()
                == LAYOUT_DIRECTION_RTL;
        // Pointer gets drawn in the padding
        final boolean showVertically = mPositioner.showBubblesVertically();
        final float paddingLeft = (showVertically && onLeft)
@@ -732,12 +734,22 @@ public class BubbleExpandedView extends LinearLayout {
            float pointerX;
            if (showVertically) {
                pointerY = bubbleCenter - (mPointerWidth / 2f);
                if (!isRtl) {
                    pointerX = onLeft
                            ? -mPointerHeight + mPointerOverlap
                            : getWidth() - mPaddingRight - mPointerOverlap;
                } else {
                    pointerX = onLeft
                            ? -(getWidth() - mPaddingLeft - mPointerOverlap)
                            : mPointerHeight - mPointerOverlap;
                }
            } else {
                pointerY = mPointerOverlap;
                if (!isRtl) {
                    pointerX = bubbleCenter - (mPointerWidth / 2f);
                } else {
                    pointerX = -(getWidth() - mPaddingLeft - bubbleCenter) + (mPointerWidth / 2f);
                }
            }
            if (animate) {
                mPointerView.animate().translationX(pointerX).translationY(pointerY).start();