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

Commit 2389bc5b authored by Sunny Goyal's avatar Sunny Goyal Committed by Android (Google) Code Review
Browse files

Merge "Updating icon badging logic"

parents b134f808 732fb425
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -95,9 +95,8 @@ class BubbleOverflow(

        // Update bitmap
        val fg = InsetDrawable(overflowBtn?.drawable, overflowIconInset)
        bitmap = iconFactory.createBadgedIconBitmap(AdaptiveIconDrawable(
                ColorDrawable(colorAccent), fg),
            null /* user */, true /* shrinkNonAdaptiveIcons */).icon
        bitmap = iconFactory.createBadgedIconBitmap(
                AdaptiveIconDrawable(ColorDrawable(colorAccent), fg)).icon

        // Update dot path
        dotPath = PathParser.createPathFromPathData(
+1 −3
Original line number Diff line number Diff line
@@ -189,9 +189,7 @@ public class BubbleViewInfoTask extends AsyncTask<Void, Void, BubbleViewInfoTask
            BitmapInfo badgeBitmapInfo = iconFactory.getBadgeBitmap(badgedIcon,
                    b.isImportantConversation());
            info.badgeBitmap = badgeBitmapInfo.icon;
            info.bubbleBitmap = iconFactory.createBadgedIconBitmap(bubbleDrawable,
                    null /* user */,
                    true /* shrinkNonAdaptiveIcons */).icon;
            info.bubbleBitmap = iconFactory.createBadgedIconBitmap(bubbleDrawable).icon;

            // Dot color & placement
            Path iconPath = PathParser.createPathFromPathData(
+1 −2
Original line number Diff line number Diff line
@@ -390,8 +390,7 @@ public class SplashscreenContentDrawer {
                    final ShapeIconFactory factory = new ShapeIconFactory(
                            SplashscreenContentDrawer.this.mContext,
                            scaledIconDpi, mFinalIconSize);
                    final Bitmap bitmap = factory.createScaledBitmapWithoutShadow(
                            iconDrawable, true /* shrinkNonAdaptiveIcons */);
                    final Bitmap bitmap = factory.createScaledBitmapWithoutShadow(iconDrawable);
                    Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
                    createIconDrawable(new BitmapDrawable(bitmap), true);
                }
+4 −4
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.location.LocationManager;
import android.media.AudioManager;
@@ -44,6 +43,7 @@ import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.UserIcons;
import com.android.launcher3.icons.BaseIconFactory.IconOptions;
import com.android.launcher3.icons.IconFactory;
import com.android.settingslib.drawable.UserIconDrawable;
import com.android.settingslib.fuelgauge.BatteryStatus;
@@ -525,9 +525,9 @@ public class Utils {
    /** Get the corresponding adaptive icon drawable. */
    public static Drawable getBadgedIcon(Context context, Drawable icon, UserHandle user) {
        try (IconFactory iconFactory = IconFactory.obtain(context)) {
            final Bitmap iconBmp = iconFactory.createBadgedIconBitmap(icon, user,
                    true /* shrinkNonAdaptiveIcons */).icon;
            return new BitmapDrawable(context.getResources(), iconBmp);
            return iconFactory
                    .createBadgedIconBitmap(icon, new IconOptions().setUser(user))
                    .newIcon(context);
        }
    }

+8 −18
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import static android.appwidget.AppWidgetManager.OPTION_APPWIDGET_SIZES;
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
import static android.util.TypedValue.COMPLEX_UNIT_PX;

import static com.android.launcher3.icons.FastBitmapDrawable.getDisabledColorFilter;
import static com.android.systemui.people.PeopleSpaceUtils.STARRED_CONTACT;
import static com.android.systemui.people.PeopleSpaceUtils.VALID_CONTACT;
import static com.android.systemui.people.PeopleSpaceUtils.convertDrawableToBitmap;
@@ -45,8 +46,6 @@ import android.app.people.PeopleSpaceTile;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.ImageDecoder;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
@@ -75,7 +74,6 @@ import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
import androidx.core.math.MathUtils;

import com.android.internal.annotations.VisibleForTesting;
import com.android.launcher3.icons.FastBitmapDrawable;
import com.android.systemui.R;
import com.android.systemui.people.widget.LaunchConversationActivity;
import com.android.systemui.people.widget.PeopleSpaceWidgetProvider;
@@ -339,8 +337,9 @@ public class PeopleTileViewHelper {
            views = new RemoteViews(mContext.getPackageName(),
                    R.layout.people_tile_suppressed_layout);
        }
        Drawable appIcon = mContext.getDrawable(R.drawable.ic_conversation_icon);
        Bitmap disabledBitmap = convertDrawableToDisabledBitmap(appIcon);
        Drawable appIcon = mContext.getDrawable(R.drawable.ic_conversation_icon).mutate();
        appIcon.setColorFilter(getDisabledColorFilter());
        Bitmap disabledBitmap = convertDrawableToBitmap(appIcon);
        views.setImageViewBitmap(R.id.icon, disabledBitmap);
        return views;
    }
@@ -1262,8 +1261,9 @@ public class PeopleTileViewHelper {
            Context context, PeopleSpaceTile tile, int maxAvatarSize, boolean hasNewStory) {
        Icon icon = tile.getUserIcon();
        if (icon == null) {
            Drawable placeholder = context.getDrawable(R.drawable.ic_avatar_with_badge);
            return convertDrawableToDisabledBitmap(placeholder);
            Drawable placeholder = context.getDrawable(R.drawable.ic_avatar_with_badge).mutate();
            placeholder.setColorFilter(getDisabledColorFilter());
            return convertDrawableToBitmap(placeholder);
        }
        PeopleStoryIconFactory storyIcon = new PeopleStoryIconFactory(context,
                context.getPackageManager(),
@@ -1276,10 +1276,7 @@ public class PeopleTileViewHelper {
                hasNewStory);

        if (isDndBlockingTileData(tile)) {
            // If DND is blocking the conversation, then display the icon in grayscale.
            ColorMatrix colorMatrix = new ColorMatrix();
            colorMatrix.setSaturation(0);
            personDrawable.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
            personDrawable.setColorFilter(getDisabledColorFilter());
        }

        return convertDrawableToBitmap(personDrawable);
@@ -1375,11 +1372,4 @@ public class PeopleTileViewHelper {
            mAvatarSize = avatarSize;
        }
    }

    private static Bitmap convertDrawableToDisabledBitmap(Drawable icon) {
        Bitmap appIconAsBitmap = convertDrawableToBitmap(icon);
        FastBitmapDrawable drawable = new FastBitmapDrawable(appIconAsBitmap);
        drawable.setIsDisabled(true);
        return convertDrawableToBitmap(drawable);
    }
}
Loading