Dominant color is part of icon cache

> Calculating extracted color during icon generation and storing it in model and DB
> Removing unused logic avoid various types of badge rendering
> Icons are badged with extracted colors, while folder is badged with theme color

Bug: 35428783
Change-Id: I93e30c52fbded7515c3ae1778422e84672eafb56
This commit is contained in:
Sunny Goyal
2017-12-19 16:49:24 -08:00
parent 8c3c9d2634
commit 179249d804
37 changed files with 392 additions and 533 deletions

View File

@@ -32,7 +32,7 @@ import android.graphics.drawable.Drawable;
import android.util.Property;
import android.util.SparseArray;
import com.android.launcher3.graphics.IconPalette;
import com.android.launcher3.graphics.BitmapInfo;
public class FastBitmapDrawable extends Drawable {
@@ -40,19 +40,9 @@ public class FastBitmapDrawable extends Drawable {
private static final float DISABLED_DESATURATION = 1f;
private static final float DISABLED_BRIGHTNESS = 0.5f;
public static final TimeInterpolator CLICK_FEEDBACK_INTERPOLATOR = new TimeInterpolator() {
public static final TimeInterpolator CLICK_FEEDBACK_INTERPOLATOR = (input) ->
(input < 0.05f) ? (input / 0.05f) : ((input < 0.3f) ? 1 : (1 - input) / 0.7f);
@Override
public float getInterpolation(float input) {
if (input < 0.05f) {
return input / 0.05f;
} else if (input < 0.3f){
return 1;
} else {
return (1 - input) / 0.7f;
}
}
};
public static final int CLICK_FEEDBACK_DURATION = 2000;
// Since we don't need 256^2 values for combinations of both the brightness and saturation, we
@@ -69,12 +59,11 @@ public class FastBitmapDrawable extends Drawable {
protected final Paint mPaint = new Paint(Paint.FILTER_BITMAP_FLAG | Paint.ANTI_ALIAS_FLAG);
private final Bitmap mBitmap;
protected final int mIconColor;
private boolean mIsPressed;
private boolean mIsDisabled;
private IconPalette mIconPalette;
private static final Property<FastBitmapDrawable, Float> BRIGHTNESS
= new Property<FastBitmapDrawable, Float>(Float.TYPE, "brightness") {
@Override
@@ -99,7 +88,20 @@ public class FastBitmapDrawable extends Drawable {
private ObjectAnimator mBrightnessAnimator;
public FastBitmapDrawable(Bitmap b) {
this(b, Color.TRANSPARENT);
}
public FastBitmapDrawable(BitmapInfo info) {
this(info.icon, info.color);
}
public FastBitmapDrawable(ItemInfoWithIcon info) {
this(info.iconBitmap, info.iconColor);
}
protected FastBitmapDrawable(Bitmap b, int iconColor) {
mBitmap = b;
mIconColor = iconColor;
setFilterBitmap(true);
}
@@ -108,14 +110,6 @@ public class FastBitmapDrawable extends Drawable {
canvas.drawBitmap(mBitmap, null, getBounds(), mPaint);
}
public IconPalette getIconPalette() {
if (mIconPalette == null) {
mIconPalette = IconPalette.fromDominantColor(Utilities
.findDominantColorByHue(mBitmap, 20), true /* desaturateBackground */);
}
return mIconPalette;
}
@Override
public void setColorFilter(ColorFilter cf) {
// No op