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

Commit 4d72d27c 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

parents 0c1abc2d 91d28d1b
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();