diff --git a/IconLoader b/IconLoader index c3312bd1ae..fb6e89a4fe 160000 --- a/IconLoader +++ b/IconLoader @@ -1 +1 @@ -Subproject commit c3312bd1ae6ee1a8201eb4be5f24e97191ec18fe +Subproject commit fb6e89a4fee88ef9390d03105b175dc32db5a0bf diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java index 2c45c776a1..454d02902a 100644 --- a/src/com/android/launcher3/WidgetPreviewLoader.java +++ b/src/com/android/launcher3/WidgetPreviewLoader.java @@ -41,6 +41,8 @@ import com.android.launcher3.icons.GraphicsUtils; import com.android.launcher3.icons.IconCache; import com.android.launcher3.icons.LauncherIcons; import com.android.launcher3.icons.ShadowGenerator; +import com.android.launcher3.icons.cache.IconPack; +import com.android.launcher3.icons.cache.IconPackProvider; import com.android.launcher3.model.WidgetItem; import com.android.launcher3.pm.ShortcutConfigActivityInfo; import com.android.launcher3.pm.UserCache; @@ -542,8 +544,12 @@ public class WidgetPreviewLoader { RectF boxRect = drawBoxWithShadow(c, size, size); LauncherIcons li = LauncherIcons.obtain(mContext); + IconPack iconPack = IconPackProvider.loadAndGetIconPack(mContext); + Drawable iconDrawable = iconPack == null + ? info.getFullResIcon(mIconCache) + : iconPack.getIcon(info.getComponent(), info.getFullResIcon(mIconCache), info.getLabel(mContext.getPackageManager())); Bitmap icon = li.createBadgedIconBitmap( - mutateOnMainThread(info.getFullResIcon(mIconCache)), + mutateOnMainThread(iconDrawable), Process.myUserHandle(), 0).icon; li.recycle(); diff --git a/src/com/android/launcher3/icons/ComponentWithLabelAndIcon.java b/src/com/android/launcher3/icons/ComponentWithLabelAndIcon.java index 248a57d2fd..69de85a355 100644 --- a/src/com/android/launcher3/icons/ComponentWithLabelAndIcon.java +++ b/src/com/android/launcher3/icons/ComponentWithLabelAndIcon.java @@ -21,6 +21,8 @@ import android.graphics.drawable.Drawable; import androidx.annotation.NonNull; import com.android.launcher3.LauncherAppState; +import com.android.launcher3.icons.cache.IconPack; +import com.android.launcher3.icons.cache.IconPackProvider; /** * Extension of ComponentWithLabel to also support loading icons @@ -47,7 +49,12 @@ public interface ComponentWithLabelAndIcon extends ComponentWithLabel { return super.loadIcon(context, object); } try (LauncherIcons li = LauncherIcons.obtain(context)) { - return li.createBadgedIconBitmap(d, object.getUser(), 0); + IconPack iconPack = IconPackProvider.loadAndGetIconPack(context); + Drawable drawable = iconPack == null + ? d + : iconPack.getIcon(object.getComponent(), d, + object.getLabel(context.getPackageManager())); + return li.createBadgedIconBitmap(drawable, object.getUser(), 0); } } } diff --git a/src/com/android/launcher3/icons/LauncherActivityCachingLogic.java b/src/com/android/launcher3/icons/LauncherActivityCachingLogic.java index 93de35a88a..c5ea7f1543 100644 --- a/src/com/android/launcher3/icons/LauncherActivityCachingLogic.java +++ b/src/com/android/launcher3/icons/LauncherActivityCachingLogic.java @@ -18,10 +18,13 @@ package com.android.launcher3.icons; import android.content.ComponentName; import android.content.Context; import android.content.pm.LauncherActivityInfo; +import android.graphics.drawable.Drawable; import android.os.UserHandle; import com.android.launcher3.R; import com.android.launcher3.icons.cache.CachingLogic; +import com.android.launcher3.icons.cache.IconPack; +import com.android.launcher3.icons.cache.IconPackProvider; import com.android.launcher3.util.ResourceBasedOverride; /** @@ -56,8 +59,11 @@ public class LauncherActivityCachingLogic @Override public BitmapInfo loadIcon(Context context, LauncherActivityInfo object) { try (LauncherIcons li = LauncherIcons.obtain(context)) { - return li.createBadgedIconBitmap(new IconProvider(context) - .getIcon(object, li.mFillResIconDpi), + IconPack iconPack = IconPackProvider.loadAndGetIconPack(context); + Drawable drawable = iconPack == null + ? new IconProvider(context).getIcon(object, li.mFillResIconDpi) + : iconPack.getIcon(object.getComponentName(), new IconProvider(context).getIcon(object, li.mFillResIconDpi), object.getLabel()); + return li.createBadgedIconBitmap(drawable, object.getUser(), object.getApplicationInfo().targetSdkVersion); } }