Merge "Fix drawing the ring around adaptive app icons" into tm-qpr-dev am: 37e943894d am: 172d20b774

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20668926

Change-Id: Ieb0f8ecd4876c63f82f1fd169ba225fd60b19b83
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleBadgeIconFactory.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleBadgeIconFactory.java
index d3a9a67..56b13b8 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleBadgeIconFactory.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleBadgeIconFactory.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
-import android.graphics.Color;
 import android.graphics.Path;
 import android.graphics.Rect;
 import android.graphics.drawable.AdaptiveIconDrawable;
@@ -59,7 +58,8 @@
     private class CircularRingDrawable extends CircularAdaptiveIcon {
 
         final int mImportantConversationColor;
-        final Rect mTempBounds = new Rect();
+        final int mRingWidth;
+        final Rect mInnerBounds = new Rect();
 
         final Drawable mDr;
 
@@ -68,6 +68,8 @@
             mDr = dr;
             mImportantConversationColor = mContext.getResources().getColor(
                     R.color.important_conversation, null);
+            mRingWidth = mContext.getResources().getDimensionPixelSize(
+                    com.android.internal.R.dimen.importance_ring_stroke_width);
         }
 
         @Override
@@ -75,11 +77,10 @@
             int save = canvas.save();
             canvas.clipPath(getIconMask());
             canvas.drawColor(mImportantConversationColor);
-            int ringStrokeWidth = mContext.getResources().getDimensionPixelSize(
-                    com.android.internal.R.dimen.importance_ring_stroke_width);
-            mTempBounds.set(getBounds());
-            mTempBounds.inset(ringStrokeWidth, ringStrokeWidth);
-            mDr.setBounds(mTempBounds);
+            mInnerBounds.set(getBounds());
+            mInnerBounds.inset(mRingWidth, mRingWidth);
+            canvas.translate(mInnerBounds.left, mInnerBounds.top);
+            mDr.setBounds(0, 0, mInnerBounds.width(), mInnerBounds.height());
             mDr.draw(canvas);
             canvas.restoreToCount(save);
         }
@@ -106,7 +107,6 @@
             int save = canvas.save();
             canvas.clipPath(getIconMask());
 
-            canvas.drawColor(Color.BLACK);
             Drawable d;
             if ((d = getBackground()) != null) {
                 d.draw(canvas);