Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e46bf2d authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Using common bubble creation info

Bug: 432486566
Test: Screenshot tests
Flag: EXEMPT refactor

Change-Id: I6cbf98033c17fc177cd50b464155d8d9aba26bc3
parent e08a2b0a
Loading
Loading
Loading
Loading
+18 −13
Original line number Diff line number Diff line
@@ -6,12 +6,14 @@ import android.content.pm.LauncherApps;
import android.content.pm.ShortcutInfo;
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;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.os.Build;
import android.os.UserHandle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -74,28 +76,31 @@ public class BubbleIconFactory extends BaseIconFactory {
     * drawing the actual drawable. This is used for the larger icon shown for the bubble.
     */
    public Bitmap getBubbleBitmap(@NonNull Drawable icon) {
        return createIconBitmap(
                wrapToAdaptiveIcon(icon),
                IconNormalizer.ICON_VISIBLE_AREA_FACTOR,
                MODE_WITH_SHADOW);
        return createBadgedIconBitmap(
                icon, new IconOptions()
                        .setBitmapGenerationMode(MODE_WITH_SHADOW)
                        // We do not care about extracted color
                        .setExtractedColor(Color.TRANSPARENT)).icon;
    }

    /**
     * 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.
     */
    public BitmapInfo getBadgeBitmap(Drawable userBadgedAppIcon, boolean isImportantConversation) {
        if (userBadgedAppIcon instanceof AdaptiveIconDrawable) {
            AdaptiveIconDrawable ad = (AdaptiveIconDrawable) userBadgedAppIcon;
            userBadgedAppIcon = new CircularAdaptiveIcon(ad.getBackground(),
                    ad.getForeground());
    public BitmapInfo getBadgeBitmap(Drawable appIcon, UserHandle user,
            boolean isImportantConversation) {
        if (appIcon instanceof AdaptiveIconDrawable ad) {
            appIcon = new CircularAdaptiveIcon(ad.getBackground(), ad.getForeground());
        }
        if (isImportantConversation) {
            userBadgedAppIcon = new CircularRingDrawable(userBadgedAppIcon);
        }
        Bitmap userBadgedBitmap = mBadgeFactory.createIconBitmap(
                userBadgedAppIcon, 1, MODE_WITH_SHADOW);
        return mBadgeFactory.createIconBitmap(userBadgedBitmap);
            appIcon = new CircularRingDrawable(appIcon);
        }
        return mBadgeFactory.createBadgedIconBitmap(
                appIcon,
                new IconOptions()
                        .setBitmapGenerationMode(MODE_WITH_SHADOW)
                        .setWrapNonAdaptiveIcon(false)
                        .setUser(user));
    }

    private class CircularRingDrawable extends CircularAdaptiveIcon {