Fix off-center bubble pointer
Bubble position is calculated w.r.t left screen edge. Pointer position is set w.r.t right end of expanded view left padding. Add missing correction for expanded view left padding. Fixes: 158621663 Test: pointer points to bubble center Change-Id: I94d320b0b599865378d8297d50f555d5edd07203
This commit is contained in:
@@ -120,6 +120,8 @@ public class BubbleExpandedView extends LinearLayout {
|
||||
private int mPointerWidth;
|
||||
private int mPointerHeight;
|
||||
private ShapeDrawable mPointerDrawable;
|
||||
private int mExpandedViewPadding;
|
||||
|
||||
|
||||
@Nullable private Bubble mBubble;
|
||||
|
||||
@@ -345,11 +347,9 @@ public class BubbleExpandedView extends LinearLayout {
|
||||
return view.onApplyWindowInsets(insets);
|
||||
});
|
||||
|
||||
final int expandedViewPadding =
|
||||
res.getDimensionPixelSize(R.dimen.bubble_expanded_view_padding);
|
||||
|
||||
setPadding(
|
||||
expandedViewPadding, expandedViewPadding, expandedViewPadding, expandedViewPadding);
|
||||
mExpandedViewPadding = res.getDimensionPixelSize(R.dimen.bubble_expanded_view_padding);
|
||||
setPadding(mExpandedViewPadding, mExpandedViewPadding, mExpandedViewPadding,
|
||||
mExpandedViewPadding);
|
||||
setOnTouchListener((view, motionEvent) -> {
|
||||
if (!usingActivityView()) {
|
||||
return false;
|
||||
@@ -729,7 +729,7 @@ public class BubbleExpandedView extends LinearLayout {
|
||||
*/
|
||||
public void setPointerPosition(float x) {
|
||||
float halfPointerWidth = mPointerWidth / 2f;
|
||||
float pointerLeft = x - halfPointerWidth;
|
||||
float pointerLeft = x - halfPointerWidth - mExpandedViewPadding;
|
||||
mPointerView.setTranslationX(pointerLeft);
|
||||
mPointerView.setVisibility(VISIBLE);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user