1
0
mirror of https://github.com/wasabeef/glide-transformations.git synced 2025-10-04 09:53:21 +08:00
* fixed #119

* update gradle files

* rename

* add sample of SupportRSBlur

* update libs

* bump up 3.3.0
This commit is contained in:
Daichi Furiya
2018-04-23 05:08:05 +09:00
committed by GitHub
parent 8c72ad64b9
commit 4818373fc5
30 changed files with 183 additions and 114 deletions

View File

@@ -31,9 +31,10 @@ import java.security.MessageDigest;
public abstract class BitmapTransformation implements Transformation<Bitmap> {
@NonNull
@Override
public final Resource<Bitmap> transform(Context context, Resource<Bitmap> resource, int outWidth,
int outHeight) {
public final Resource<Bitmap> transform(@NonNull Context context, @NonNull Resource<Bitmap> resource,
int outWidth, int outHeight) {
if (!Util.isValidDimensions(outWidth, outHeight)) {
throw new IllegalArgumentException(
"Cannot apply transformation on width: " + outWidth + " or height: " + outHeight
@@ -57,7 +58,7 @@ public abstract class BitmapTransformation implements Transformation<Bitmap> {
protected abstract Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool,
@NonNull Bitmap toTransform, int outWidth, int outHeight);
@Override public abstract void updateDiskCacheKey(MessageDigest messageDigest);
@Override public abstract void updateDiskCacheKey(@NonNull MessageDigest messageDigest);
@Override public abstract boolean equals(Object o);

View File

@@ -33,7 +33,6 @@ public class BlurTransformation extends BitmapTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.BlurTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
private static int MAX_RADIUS = 25;
private static int DEFAULT_DOWN_SAMPLING = 1;
@@ -80,14 +79,16 @@ public class BlurTransformation extends BitmapTransformation {
}
@Override public boolean equals(Object o) {
return o instanceof BlurTransformation;
return o instanceof BlurTransformation &&
((BlurTransformation) o).radius == radius &&
((BlurTransformation) o).sampling == sampling;
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + radius * 1000 + sampling * 10;
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + radius + sampling).getBytes(CHARSET));
}
}

View File

@@ -31,7 +31,6 @@ public class ColorFilterTransformation extends BitmapTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.ColorFilterTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
private int color;
@@ -62,14 +61,15 @@ public class ColorFilterTransformation extends BitmapTransformation {
}
@Override public boolean equals(Object o) {
return o instanceof ColorFilterTransformation;
return o instanceof ColorFilterTransformation &&
((ColorFilterTransformation) o).color == color;
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + color * 10;
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + color).getBytes(CHARSET));
}
}

View File

@@ -33,7 +33,6 @@ public class CropCircleTransformation extends BitmapTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.CropCircleTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
@Override protected Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool,
@NonNull Bitmap toTransform, int outWidth, int outHeight) {
@@ -52,7 +51,7 @@ public class CropCircleTransformation extends BitmapTransformation {
return ID.hashCode();
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID).getBytes(CHARSET));
}
}

View File

@@ -28,7 +28,6 @@ public class CropSquareTransformation extends BitmapTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.CropSquareTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
private int size;
@@ -43,14 +42,14 @@ public class CropSquareTransformation extends BitmapTransformation {
}
@Override public boolean equals(Object o) {
return o instanceof CropSquareTransformation;
return o instanceof CropSquareTransformation && ((CropSquareTransformation) o).size == size;
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + size * 10;
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + size).getBytes(CHARSET));
}
}

View File

@@ -28,7 +28,6 @@ public class CropTransformation extends BitmapTransformation {
private static final int VERSION = 1;
private static final String ID = "jp.wasabeef.glide.transformations.CropTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
public enum CropType {
TOP,
@@ -79,23 +78,6 @@ public class CropTransformation extends BitmapTransformation {
return bitmap;
}
@Override public String toString() {
return "CropTransformation(width=" + width + ", height=" + height + ", cropType=" + cropType
+ ")";
}
@Override public boolean equals(Object o) {
return o instanceof CropTransformation;
}
@Override public int hashCode() {
return ID.hashCode();
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
}
private float getTop(float scaledHeight) {
switch (cropType) {
case TOP:
@@ -108,4 +90,23 @@ public class CropTransformation extends BitmapTransformation {
return 0;
}
}
@Override public String toString() {
return "CropTransformation(width=" + width + ", height=" + height + ", cropType=" + cropType + ")";
}
@Override public boolean equals(Object o) {
return o instanceof CropTransformation &&
((CropTransformation) o).width == width &&
((CropTransformation) o).height == height &&
((CropTransformation) o).cropType == cropType;
}
@Override public int hashCode() {
return ID.hashCode() + width * 100000 + height * 1000 + cropType.ordinal() * 10;
}
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + width + height + cropType).getBytes(CHARSET));
}
}

View File

@@ -31,7 +31,6 @@ public class GrayscaleTransformation extends BitmapTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.GrayscaleTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
@Override protected Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool,
@NonNull Bitmap toTransform, int outWidth, int outHeight) {
@@ -64,7 +63,7 @@ public class GrayscaleTransformation extends BitmapTransformation {
return ID.hashCode();
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID).getBytes(CHARSET));
}
}

View File

@@ -33,7 +33,6 @@ public class MaskTransformation extends BitmapTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.MaskTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
private static Paint paint = new Paint();
private int maskId;
@@ -74,14 +73,15 @@ public class MaskTransformation extends BitmapTransformation {
}
@Override public boolean equals(Object o) {
return o instanceof MaskTransformation;
return o instanceof MaskTransformation &&
((MaskTransformation) o).maskId == maskId;
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + maskId * 10;
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + maskId).getBytes(CHARSET));
}
}

View File

@@ -32,7 +32,6 @@ public class RoundedCornersTransformation extends BitmapTransformation {
private static final int VERSION = 1;
private static final String ID = "jp.wasabeef.glide.transformations.RoundedCornersTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
public enum CornerType {
ALL,
@@ -238,14 +237,18 @@ public class RoundedCornersTransformation extends BitmapTransformation {
}
@Override public boolean equals(Object o) {
return o instanceof RoundedCornersTransformation;
return o instanceof RoundedCornersTransformation &&
((RoundedCornersTransformation) o).radius == radius &&
((RoundedCornersTransformation) o).diameter == diameter &&
((RoundedCornersTransformation) o).margin == margin &&
((RoundedCornersTransformation) o).cornerType == cornerType;
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + radius * 10000 + diameter * 1000 + margin * 100 + cornerType.ordinal() * 10;
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + radius + diameter + margin + cornerType).getBytes(CHARSET));
}
}

View File

@@ -28,12 +28,11 @@ import java.security.MessageDigest;
import jp.wasabeef.glide.transformations.internal.FastBlur;
import jp.wasabeef.glide.transformations.internal.SupportRSBlur;
public class SupportBlurTransformation extends BitmapTransformation {
public class SupportRSBlurTransformation extends BitmapTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.SupportBlurTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
"jp.wasabeef.glide.transformations.SupportRSBlurTransformation." + VERSION;
private static int MAX_RADIUS = 25;
private static int DEFAULT_DOWN_SAMPLING = 1;
@@ -41,15 +40,15 @@ public class SupportBlurTransformation extends BitmapTransformation {
private int radius;
private int sampling;
public SupportBlurTransformation() {
public SupportRSBlurTransformation() {
this(MAX_RADIUS, DEFAULT_DOWN_SAMPLING);
}
public SupportBlurTransformation(int radius) {
public SupportRSBlurTransformation(int radius) {
this(radius, DEFAULT_DOWN_SAMPLING);
}
public SupportBlurTransformation(int radius, int sampling) {
public SupportRSBlurTransformation(int radius, int sampling) {
this.radius = radius;
this.sampling = sampling;
}
@@ -84,18 +83,20 @@ public class SupportBlurTransformation extends BitmapTransformation {
}
@Override public String toString() {
return "SupportBlurTransformation(radius=" + radius + ", sampling=" + sampling + ")";
return "SupportRSBlurTransformation(radius=" + radius + ", sampling=" + sampling + ")";
}
@Override public boolean equals(Object o) {
return o instanceof SupportBlurTransformation;
return o instanceof SupportRSBlurTransformation &&
((SupportRSBlurTransformation) o).radius == radius &&
((SupportRSBlurTransformation) o).sampling == sampling;
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + radius * 1000 + sampling * 10;
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + radius + sampling).getBytes(CHARSET));
}
}

View File

@@ -16,6 +16,8 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License.
*/
import android.support.annotation.NonNull;
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageBrightnessFilter;
@@ -27,7 +29,6 @@ public class BrightnessFilterTransformation extends GPUFilterTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.gpu.BrightnessFilterTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
private float brightness;
@@ -47,14 +48,15 @@ public class BrightnessFilterTransformation extends GPUFilterTransformation {
}
@Override public boolean equals(Object o) {
return o instanceof BrightnessFilterTransformation;
return o instanceof BrightnessFilterTransformation &&
((BrightnessFilterTransformation) o).brightness == brightness;
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + (int) ((brightness + 1.0f) * 10);
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + brightness).getBytes(CHARSET));
}
}

View File

@@ -16,6 +16,8 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License.
*/
import android.support.annotation.NonNull;
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageContrastFilter;
@@ -27,7 +29,6 @@ public class ContrastFilterTransformation extends GPUFilterTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.gpu.ContrastFilterTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
private float contrast;
@@ -51,10 +52,10 @@ public class ContrastFilterTransformation extends GPUFilterTransformation {
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + (int) (contrast * 10);
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + contrast).getBytes(CHARSET));
}
}

View File

@@ -63,7 +63,7 @@ public class GPUFilterTransformation extends BitmapTransformation {
return ID.hashCode();
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
}
}

View File

@@ -16,6 +16,8 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License.
*/
import android.support.annotation.NonNull;
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageColorInvertFilter;
@@ -27,7 +29,6 @@ public class InvertFilterTransformation extends GPUFilterTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.gpu.InvertFilterTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
public InvertFilterTransformation() {
super(new GPUImageColorInvertFilter());
@@ -45,7 +46,7 @@ public class InvertFilterTransformation extends GPUFilterTransformation {
return ID.hashCode();
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID).getBytes(CHARSET));
}
}

View File

@@ -16,6 +16,8 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License.
*/
import android.support.annotation.NonNull;
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageKuwaharaFilter;
@@ -30,7 +32,6 @@ public class KuwaharaFilterTransformation extends GPUFilterTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.gpu.KuwaharaFilterTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
private int radius;
@@ -54,10 +55,10 @@ public class KuwaharaFilterTransformation extends GPUFilterTransformation {
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + radius * 10;
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + radius).getBytes(CHARSET));
}
}

View File

@@ -16,6 +16,8 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License.
*/
import android.support.annotation.NonNull;
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImagePixelationFilter;
@@ -29,7 +31,6 @@ public class PixelationFilterTransformation extends GPUFilterTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.gpu.PixelationFilterTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
private float pixel;
@@ -53,10 +54,10 @@ public class PixelationFilterTransformation extends GPUFilterTransformation {
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + (int) (pixel * 10);
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + pixel).getBytes(CHARSET));
}
}

View File

@@ -16,6 +16,8 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License.
*/
import android.support.annotation.NonNull;
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageSepiaFilter;
@@ -29,7 +31,6 @@ public class SepiaFilterTransformation extends GPUFilterTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.gpu.SepiaFilterTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
private float intensity;
@@ -53,10 +54,10 @@ public class SepiaFilterTransformation extends GPUFilterTransformation {
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + (int) (intensity * 10);
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + intensity).getBytes(CHARSET));
}
}

View File

@@ -16,6 +16,8 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License.
*/
import android.support.annotation.NonNull;
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageSketchFilter;
@@ -24,7 +26,6 @@ public class SketchFilterTransformation extends GPUFilterTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.gpu.SketchFilterTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
public SketchFilterTransformation() {
super(new GPUImageSketchFilter());
@@ -42,7 +43,7 @@ public class SketchFilterTransformation extends GPUFilterTransformation {
return ID.hashCode();
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID).getBytes(CHARSET));
}
}

View File

@@ -17,6 +17,8 @@ package jp.wasabeef.glide.transformations.gpu;
*/
import android.graphics.PointF;
import android.support.annotation.NonNull;
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageSwirlFilter;
@@ -28,7 +30,6 @@ public class SwirlFilterTransformation extends GPUFilterTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.gpu.SwirlFilterTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
private float radius;
private float angle;
@@ -60,14 +61,17 @@ public class SwirlFilterTransformation extends GPUFilterTransformation {
}
@Override public boolean equals(Object o) {
return o instanceof SwirlFilterTransformation;
return o instanceof SwirlFilterTransformation &&
((SwirlFilterTransformation) o).radius == radius &&
((SwirlFilterTransformation) o).angle == radius &&
((SwirlFilterTransformation) o).center.equals(center.x, center.y);
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + (int) (radius * 1000) + (int) (angle * 10) + center.hashCode();
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + radius + angle + center.hashCode()).getBytes(CHARSET));
}
}

View File

@@ -16,6 +16,8 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License.
*/
import android.support.annotation.NonNull;
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageToonFilter;
@@ -29,7 +31,6 @@ public class ToonFilterTransformation extends GPUFilterTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.gpu.ToonFilterTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
private float threshold;
private float quantizationLevels;
@@ -53,14 +54,16 @@ public class ToonFilterTransformation extends GPUFilterTransformation {
}
@Override public boolean equals(Object o) {
return o instanceof ToonFilterTransformation;
return o instanceof ToonFilterTransformation &&
((ToonFilterTransformation) o).threshold == threshold &&
((ToonFilterTransformation) o).quantizationLevels == quantizationLevels;
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + (int) (threshold * 1000) + (int) (quantizationLevels * 10);
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + threshold + quantizationLevels).getBytes(CHARSET));
}
}

View File

@@ -17,6 +17,8 @@ package jp.wasabeef.glide.transformations.gpu;
*/
import android.graphics.PointF;
import android.support.annotation.NonNull;
import java.security.MessageDigest;
import java.util.Arrays;
import jp.co.cyberagent.android.gpuimage.GPUImageVignetteFilter;
@@ -31,7 +33,6 @@ public class VignetteFilterTransformation extends GPUFilterTransformation {
private static final int VERSION = 1;
private static final String ID =
"jp.wasabeef.glide.transformations.gpu.VignetteFilterTransformation." + VERSION;
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
private PointF center;
private float[] vignetteColor;
@@ -61,14 +62,19 @@ public class VignetteFilterTransformation extends GPUFilterTransformation {
}
@Override public boolean equals(Object o) {
return o instanceof VignetteFilterTransformation;
return o instanceof VignetteFilterTransformation &&
((VignetteFilterTransformation) o).center.equals(center.x, center.y) &&
Arrays.equals(((VignetteFilterTransformation) o).vignetteColor, vignetteColor) &&
((VignetteFilterTransformation) o).vignetteStart == vignetteStart &&
((VignetteFilterTransformation) o).vignetteEnd == vignetteEnd;
}
@Override public int hashCode() {
return ID.hashCode();
return ID.hashCode() + center.hashCode() + Arrays.hashCode(vignetteColor) +
(int) (vignetteStart * 100) + (int) (vignetteEnd * 10);
}
@Override public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
@Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + center + Arrays.hashCode(vignetteColor) + vignetteStart + vignetteEnd).getBytes(CHARSET));
}
}