diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/bubbles/BubbleIconFactory.java | 36 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/bubbles/BubbleViewInfoTask.java | 5 |
2 files changed, 34 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleIconFactory.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleIconFactory.java index 74231c648f00..aa665eb38581 100644 --- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleIconFactory.java +++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleIconFactory.java @@ -22,6 +22,8 @@ import android.content.pm.LauncherApps; import android.content.pm.ShortcutInfo; import android.graphics.Bitmap; import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Rect; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; @@ -76,15 +78,37 @@ public class BubbleIconFactory extends BaseIconFactory { * Returns a {@link BitmapInfo} for the app-badge that is shown on top of each bubble. This * will include the workprofile indicator on the badge if appropriate. */ - BitmapInfo getBadgeBitmap(Drawable userBadgedAppIcon) { + BitmapInfo getBadgeBitmap(Drawable userBadgedAppIcon, boolean isImportantConversation) { Bitmap userBadgedBitmap = createIconBitmap( userBadgedAppIcon, 1f, getBadgeSize()); - - Canvas c = new Canvas(); ShadowGenerator shadowGenerator = new ShadowGenerator(getBadgeSize()); - c.setBitmap(userBadgedBitmap); - shadowGenerator.recreateIcon(Bitmap.createBitmap(userBadgedBitmap), c); - return createIconBitmap(userBadgedBitmap); + if (!isImportantConversation) { + Canvas c = new Canvas(); + c.setBitmap(userBadgedBitmap); + shadowGenerator.recreateIcon(Bitmap.createBitmap(userBadgedBitmap), c); + return createIconBitmap(userBadgedBitmap); + } else { + float ringStrokeWidth = mContext.getResources().getDimensionPixelSize( + com.android.internal.R.dimen.importance_ring_stroke_width); + int importantConversationColor = mContext.getResources().getColor( + com.android.settingslib.R.color.important_conversation, null); + Bitmap badgeAndRing = Bitmap.createBitmap(userBadgedBitmap.getWidth(), + userBadgedBitmap.getHeight(), userBadgedBitmap.getConfig()); + Canvas c = new Canvas(badgeAndRing); + Rect dest = new Rect((int) ringStrokeWidth, (int) ringStrokeWidth, + c.getHeight() - (int) ringStrokeWidth, c.getWidth() - (int) ringStrokeWidth); + c.drawBitmap(userBadgedBitmap, null, dest, null); + Paint ringPaint = new Paint(); + ringPaint.setStyle(Paint.Style.STROKE); + ringPaint.setColor(importantConversationColor); + ringPaint.setAntiAlias(true); + ringPaint.setStrokeWidth(ringStrokeWidth); + c.drawCircle(c.getWidth() / 2, c.getHeight() / 2, c.getWidth() / 2 - ringStrokeWidth, + ringPaint); + shadowGenerator.recreateIcon(Bitmap.createBitmap(badgeAndRing), c); + return createIconBitmap(badgeAndRing); + } + } /** diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleViewInfoTask.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleViewInfoTask.java index 525d5b56cc8e..ec1db20a8e00 100644 --- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleViewInfoTask.java +++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleViewInfoTask.java @@ -202,7 +202,10 @@ public class BubbleViewInfoTask extends AsyncTask<Void, Void, BubbleViewInfoTask bubbleDrawable = appIcon; } - BitmapInfo badgeBitmapInfo = iconFactory.getBadgeBitmap(badgedIcon); + boolean isImportantConversation = (entry == null || entry.getChannel() == null) ? false + : entry.getChannel().isImportantConversation(); + BitmapInfo badgeBitmapInfo = iconFactory.getBadgeBitmap(badgedIcon, + isImportantConversation); info.badgedAppIcon = badgedIcon; info.badgedBubbleImage = iconFactory.getBubbleBitmap(bubbleDrawable, badgeBitmapInfo).icon; |