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

Commit 91d28d1b authored by Mady Mellor's avatar Mady Mellor Committed by Android (Google) Code Review
Browse files

Merge "Fix the pointer position when displayed in RTL" into tm-dev

parents f598205c fed87296
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();