Loading packages/SystemUI/src/com/android/systemui/bubbles/BubbleIconFactory.java +30 −6 Original line number Diff line number Diff line Loading @@ -23,6 +23,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; Loading Loading @@ -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()); 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); } } /** Loading packages/SystemUI/src/com/android/systemui/bubbles/BubbleViewInfoTask.java +4 −1 Original line number Diff line number Diff line Loading @@ -176,7 +176,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; Loading Loading
packages/SystemUI/src/com/android/systemui/bubbles/BubbleIconFactory.java +30 −6 Original line number Diff line number Diff line Loading @@ -23,6 +23,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; Loading Loading @@ -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()); 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); } } /** Loading
packages/SystemUI/src/com/android/systemui/bubbles/BubbleViewInfoTask.java +4 −1 Original line number Diff line number Diff line Loading @@ -176,7 +176,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; Loading