From 2bf3f37f5af068e0af8de386c9c031c31bfbd602 Mon Sep 17 00:00:00 2001 From: Hyunyoung Song Date: Tue, 2 Apr 2019 10:45:57 -0700 Subject: Fix icon shape refresh for widgets list / legacy shortcut black bg issue Bug: 118085499 Change-Id: Ifc3c711815567f40f109e95bcb76c01f23b4a3a2 --- .../src/com/android/launcher3/icons/BaseIconFactory.java | 6 +----- src/com/android/launcher3/LauncherAppState.java | 1 + src/com/android/launcher3/WidgetPreviewLoader.java | 12 ++++++++---- src/com/android/launcher3/widget/WidgetsRecyclerView.java | 5 ----- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/iconloaderlib/src/com/android/launcher3/icons/BaseIconFactory.java b/iconloaderlib/src/com/android/launcher3/icons/BaseIconFactory.java index 96b0a9e25..ab4b64cbf 100644 --- a/iconloaderlib/src/com/android/launcher3/icons/BaseIconFactory.java +++ b/iconloaderlib/src/com/android/launcher3/icons/BaseIconFactory.java @@ -61,6 +61,7 @@ public class BaseIconFactory implements AutoCloseable { mCanvas = new Canvas(); mCanvas.setDrawFilter(new PaintFlagsDrawFilter(DITHER_FLAG, FILTER_BITMAP_FLAG)); + clear(); } protected void clear() { @@ -113,11 +114,6 @@ public class BaseIconFactory implements AutoCloseable { return createBadgedIconBitmap(icon, user, shrinkNonAdaptiveIcons, false, null); } - public BitmapInfo createBadgedIconBitmap(Drawable icon, UserHandle user, - boolean shrinkNonAdaptiveIcons, boolean isInstantApp) { - return createBadgedIconBitmap(icon, user, shrinkNonAdaptiveIcons, isInstantApp, null); - } - public BitmapInfo createBadgedIconBitmap(Drawable icon, UserHandle user, int iconAppTargetSdk) { return createBadgedIconBitmap(icon, user, iconAppTargetSdk, false); diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java index 7bb60714f..dc275161d 100644 --- a/src/com/android/launcher3/LauncherAppState.java +++ b/src/com/android/launcher3/LauncherAppState.java @@ -131,6 +131,7 @@ public class LauncherAppState { if ((changeFlags & CHANGE_FLAG_ICON_PARAMS) != 0) { LauncherIcons.clearPool(); mIconCache.updateIconParams(idp.fillResIconDpi, idp.iconBitmapSize); + mWidgetCache.refresh(); } mModel.forceReload(); diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java index 050849cc2..6d1bc1a9c 100644 --- a/src/com/android/launcher3/WidgetPreviewLoader.java +++ b/src/com/android/launcher3/WidgetPreviewLoader.java @@ -24,6 +24,7 @@ import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.os.CancellationSignal; import android.os.Handler; +import android.os.Process; import android.os.UserHandle; import android.util.Log; import android.util.LongSparseArray; @@ -73,7 +74,6 @@ public class WidgetPreviewLoader { private final Context mContext; private final IconCache mIconCache; private final UserManagerCompat mUserManager; - private final AppWidgetManagerCompat mWidgetManager; private final CacheDb mDb; private final MainThreadExecutor mMainThreadExecutor = new MainThreadExecutor(); @@ -82,7 +82,6 @@ public class WidgetPreviewLoader { public WidgetPreviewLoader(Context context, IconCache iconCache) { mContext = context; mIconCache = iconCache; - mWidgetManager = AppWidgetManagerCompat.getInstance(context); mUserManager = UserManagerCompat.getInstance(context); mDb = new CacheDb(context); mWorkerHandler = new Handler(LauncherModel.getWorkerLooper()); @@ -107,6 +106,10 @@ public class WidgetPreviewLoader { return signal; } + public void refresh() { + mDb.clear(); + + } /** * The DB holds the generated previews for various components. Previews can also have different * sizes (landscape vs portrait). @@ -474,8 +477,9 @@ public class WidgetPreviewLoader { RectF boxRect = drawBoxWithShadow(c, size, size); LauncherIcons li = LauncherIcons.obtain(mContext); - Bitmap icon = li.createScaledBitmapWithoutShadow( - mutateOnMainThread(info.getFullResIcon(mIconCache)), 0); + Bitmap icon = li.createBadgedIconBitmap( + mutateOnMainThread(info.getFullResIcon(mIconCache)), + Process.myUserHandle(), 0).icon; li.recycle(); Rect src = new Rect(0, 0, icon.getWidth(), icon.getHeight()); diff --git a/src/com/android/launcher3/widget/WidgetsRecyclerView.java b/src/com/android/launcher3/widget/WidgetsRecyclerView.java index 641183a01..c15557beb 100644 --- a/src/com/android/launcher3/widget/WidgetsRecyclerView.java +++ b/src/com/android/launcher3/widget/WidgetsRecyclerView.java @@ -56,11 +56,6 @@ public class WidgetsRecyclerView extends BaseRecyclerView implements OnItemTouch addOnItemTouchListener(this); } - public WidgetsRecyclerView(Context context, AttributeSet attrs, int defStyleAttr, - int defStyleRes) { - this(context, attrs, defStyleAttr); - } - @Override protected void onFinishInflate() { super.onFinishInflate(); -- cgit v1.2.3