summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/graphics/LauncherIcons.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/graphics/LauncherIcons.java')
-rw-r--r--src/com/android/launcher3/graphics/LauncherIcons.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/com/android/launcher3/graphics/LauncherIcons.java b/src/com/android/launcher3/graphics/LauncherIcons.java
index 333fe5907..0167a1d9c 100644
--- a/src/com/android/launcher3/graphics/LauncherIcons.java
+++ b/src/com/android/launcher3/graphics/LauncherIcons.java
@@ -90,6 +90,7 @@ public class LauncherIcons implements AutoCloseable {
synchronized (sPoolSync) {
// Clear any temporary state variables
mWrapperBackgroundColor = DEFAULT_WRAPPER_BACKGROUND;
+ mDisableColorExtractor = false;
next = sPool;
sPool = this;
@@ -105,6 +106,8 @@ public class LauncherIcons implements AutoCloseable {
private final Context mContext;
private final Canvas mCanvas;
private final PackageManager mPm;
+ private final ColorExtractor mColorExtractor;
+ private boolean mDisableColorExtractor;
private final int mFillResIconDpi;
private final int mIconBitmapSize;
@@ -121,6 +124,7 @@ public class LauncherIcons implements AutoCloseable {
private LauncherIcons(Context context) {
mContext = context.getApplicationContext();
mPm = mContext.getPackageManager();
+ mColorExtractor = new ColorExtractor();
InvariantDeviceProfile idp = LauncherAppState.getIDP(mContext);
mFillResIconDpi = idp.fillResIconDpi;
@@ -196,7 +200,7 @@ public class LauncherIcons implements AutoCloseable {
* The bitmap is also visually normalized with other icons.
*/
public BitmapInfo createBadgedIconBitmap(Drawable icon, UserHandle user, int iconAppTargetSdk,
- boolean isInstantApp, float [] scale) {
+ boolean isInstantApp, float[] scale) {
if (scale == null) {
scale = new float[1];
}
@@ -223,7 +227,7 @@ public class LauncherIcons implements AutoCloseable {
} else {
result = bitmap;
}
- return BitmapInfo.fromBitmap(result);
+ return BitmapInfo.fromBitmap(result, mDisableColorExtractor ? null : mColorExtractor);
}
/**
@@ -245,6 +249,14 @@ public class LauncherIcons implements AutoCloseable {
mWrapperBackgroundColor = (Color.alpha(color) < 255) ? DEFAULT_WRAPPER_BACKGROUND : color;
}
+ /**
+ * Disables the dominant color extraction for all icons loaded through this session (until
+ * this instance is recycled).
+ */
+ public void disableColorExtraction() {
+ mDisableColorExtractor = true;
+ }
+
private Drawable normalizeAndWrapToAdaptiveIcon(Drawable icon, int iconAppTargetSdk,
RectF outIconBounds, float[] outScale) {
float scale = 1f;