From 364c73a992cb54b0e5b7ff1551a3681bd793b822 Mon Sep 17 00:00:00 2001 From: mpodolian Date: Tue, 30 Apr 2024 19:07:28 +0100 Subject: Fixed bubble badge position on stack move. Badge was misplaced because of one boolean was used for both views - the dot view which is animated and the badge view which is currently not animated Test: Visual Fixes: 337939211 Flag: N/A Change-Id: Id28a4f50aec30762835bb106f95ecddfab89c2a6 --- .../android/wm/shell/bubbles/BadgedImageView.java | 24 ++++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BadgedImageView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BadgedImageView.java index 0297901c8921..f9a1d940c734 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BadgedImageView.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BadgedImageView.java @@ -82,8 +82,8 @@ public class BadgedImageView extends ConstraintLayout { private BubbleViewProvider mBubble; private BubblePositioner mPositioner; - private boolean mOnLeft; - + private boolean mBadgeOnLeft; + private boolean mDotOnLeft; private DotRenderer mDotRenderer; private DotRenderer.DrawParams mDrawParams; private int mDotColor; @@ -153,7 +153,8 @@ public class BadgedImageView extends ConstraintLayout { public void hideDotAndBadge(boolean onLeft) { addDotSuppressionFlag(BadgedImageView.SuppressionFlag.BEHIND_STACK); - mOnLeft = onLeft; + mBadgeOnLeft = onLeft; + mDotOnLeft = onLeft; hideBadge(); } @@ -185,7 +186,7 @@ public class BadgedImageView extends ConstraintLayout { mDrawParams.dotColor = mDotColor; mDrawParams.iconBounds = mTempBounds; - mDrawParams.leftAlign = mOnLeft; + mDrawParams.leftAlign = mDotOnLeft; mDrawParams.scale = mDotScale; mDotRenderer.draw(canvas, mDrawParams); @@ -255,7 +256,7 @@ public class BadgedImageView extends ConstraintLayout { * Whether decorations (badges or dots) are on the left. */ boolean getDotOnLeft() { - return mOnLeft; + return mDotOnLeft; } /** @@ -263,7 +264,7 @@ public class BadgedImageView extends ConstraintLayout { */ float[] getDotCenter() { float[] dotPosition; - if (mOnLeft) { + if (mDotOnLeft) { dotPosition = mDotRenderer.getLeftDotPosition(); } else { dotPosition = mDotRenderer.getRightDotPosition(); @@ -291,22 +292,23 @@ public class BadgedImageView extends ConstraintLayout { if (onLeft != getDotOnLeft()) { if (shouldDrawDot()) { animateDotScale(0f /* showDot */, () -> { - mOnLeft = onLeft; + mDotOnLeft = onLeft; invalidate(); animateDotScale(1.0f, null /* after */); }); } else { - mOnLeft = onLeft; + mDotOnLeft = onLeft; } } + mBadgeOnLeft = onLeft; // TODO animate badge showBadge(); - } /** Sets the position of the dot and badge. */ void setDotBadgeOnLeft(boolean onLeft) { - mOnLeft = onLeft; + mBadgeOnLeft = onLeft; + mDotOnLeft = onLeft; invalidate(); showBadge(); } @@ -361,7 +363,7 @@ public class BadgedImageView extends ConstraintLayout { } int translationX; - if (mOnLeft) { + if (mBadgeOnLeft) { translationX = -(mBubble.getBubbleIcon().getWidth() - appBadgeBitmap.getWidth()); } else { translationX = 0; -- cgit v1.2.3-59-g8ed1b