From 43f38cc4b3a867104abf82115b9a081265389cd9 Mon Sep 17 00:00:00 2001 From: CrabeMan Date: Thu, 25 Jan 2018 09:15:27 +0100 Subject: [PATCH] Implement equals() and hashCode() methods (#105) * Implement equals() and hashCode() methods * Oops: Replace by static final to prevent String class name generation for every call on hashCodes() & updateDiskCacheKey() methods --- .../transformations/BitmapTransformation.java | 12 ++++++---- .../transformations/BlurTransformation.java | 22 +++++++++++++++++- .../ColorFilterTransformation.java | 22 +++++++++++++++++- .../CropCircleTransformation.java | 22 +++++++++++++++++- .../CropSquareTransformation.java | 22 +++++++++++++++++- .../transformations/CropTransformation.java | 23 ++++++++++++++++++- .../GrayscaleTransformation.java | 22 +++++++++++++++++- .../transformations/MaskTransformation.java | 22 +++++++++++++++++- .../RoundedCornersTransformation.java | 23 ++++++++++++++++++- .../gpu/BrightnessFilterTransformation.java | 22 +++++++++++++++++- .../gpu/ContrastFilterTransformation.java | 22 +++++++++++++++++- .../gpu/GPUFilterTransformation.java | 22 +++++++++++++++++- .../gpu/InvertFilterTransformation.java | 22 +++++++++++++++++- .../gpu/KuwaharaFilterTransformation.java | 22 +++++++++++++++++- .../gpu/PixelationFilterTransformation.java | 22 +++++++++++++++++- .../gpu/SepiaFilterTransformation.java | 22 +++++++++++++++++- .../gpu/SketchFilterTransformation.java | 22 +++++++++++++++++- .../gpu/SwirlFilterTransformation.java | 22 +++++++++++++++++- .../gpu/ToonFilterTransformation.java | 22 +++++++++++++++++- .../gpu/VignetteFilterTransformation.java | 22 +++++++++++++++++- 20 files changed, 408 insertions(+), 24 deletions(-) mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/BitmapTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/BlurTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/ColorFilterTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/CropCircleTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/CropSquareTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/CropTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/GrayscaleTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/MaskTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/RoundedCornersTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/BrightnessFilterTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ContrastFilterTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/GPUFilterTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/InvertFilterTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/KuwaharaFilterTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/PixelationFilterTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SepiaFilterTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SketchFilterTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SwirlFilterTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ToonFilterTransformation.java mode change 100644 => 100755 transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/VignetteFilterTransformation.java diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/BitmapTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/BitmapTransformation.java old mode 100644 new mode 100755 index 30c693f..e990090 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/BitmapTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/BitmapTransformation.java @@ -31,8 +31,6 @@ import java.security.MessageDigest; public abstract class BitmapTransformation implements Transformation { - public abstract String key(); - @Override public final Resource transform(Context context, Resource resource, int outWidth, int outHeight) { @@ -59,7 +57,11 @@ public abstract class BitmapTransformation implements Transformation { protected abstract Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight); - @Override public void updateDiskCacheKey(MessageDigest messageDigest) { - messageDigest.update(key().getBytes()); - } + @Override public abstract void updateDiskCacheKey(MessageDigest messageDigest); + + @Override + public abstract boolean equals(Object o); + + @Override + public abstract int hashCode(); } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/BlurTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/BlurTransformation.java old mode 100644 new mode 100755 index b65039d..b92cb3c --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/BlurTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/BlurTransformation.java @@ -24,11 +24,16 @@ import android.os.Build; import android.renderscript.RSRuntimeException; import android.support.annotation.NonNull; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; +import java.security.MessageDigest; import jp.wasabeef.glide.transformations.internal.FastBlur; import jp.wasabeef.glide.transformations.internal.RSBlur; 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; @@ -77,7 +82,22 @@ public class BlurTransformation extends BitmapTransformation { return bitmap; } - @Override public String key() { + @Override public String toString() { return "BlurTransformation(radius=" + radius + ", sampling=" + sampling + ")"; } + + @Override + public boolean equals(Object o) { + return o instanceof BlurTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/ColorFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/ColorFilterTransformation.java old mode 100644 new mode 100755 index 7851ff8..f79a5fb --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/ColorFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/ColorFilterTransformation.java @@ -24,9 +24,14 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.support.annotation.NonNull; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; +import java.security.MessageDigest; 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; public ColorFilterTransformation(int color) { @@ -51,7 +56,22 @@ public class ColorFilterTransformation extends BitmapTransformation { return bitmap; } - @Override public String key() { + @Override public String toString() { return "ColorFilterTransformation(color=" + color + ")"; } + + @Override + public boolean equals(Object o) { + return o instanceof ColorFilterTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/CropCircleTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/CropCircleTransformation.java old mode 100644 new mode 100755 index 50113a6..2c482bd --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/CropCircleTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/CropCircleTransformation.java @@ -22,6 +22,7 @@ import android.support.annotation.NonNull; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.resource.bitmap.TransformationUtils; import com.bumptech.glide.request.RequestOptions; +import java.security.MessageDigest; /** * @deprecated Use {@link RequestOptions#circleCrop()}. @@ -29,12 +30,31 @@ import com.bumptech.glide.request.RequestOptions; @Deprecated 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) { return TransformationUtils.circleCrop(pool, toTransform, outWidth, outHeight); } - @Override public String key() { + @Override public String toString() { return "CropCircleTransformation()"; } + + @Override + public boolean equals(Object o) { + return o instanceof CropCircleTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/CropSquareTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/CropSquareTransformation.java old mode 100644 new mode 100755 index f1e80d5..cf80c14 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/CropSquareTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/CropSquareTransformation.java @@ -21,9 +21,14 @@ import android.graphics.Bitmap; import android.support.annotation.NonNull; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.resource.bitmap.TransformationUtils; +import java.security.MessageDigest; 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; @Override protected Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool, @@ -32,7 +37,22 @@ public class CropSquareTransformation extends BitmapTransformation { return TransformationUtils.centerCrop(pool, toTransform, size, size); } - @Override public String key() { + @Override public String toString() { return "CropSquareTransformation(size=" + size + ")"; } + + @Override + public boolean equals(Object o) { + return o instanceof CropSquareTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/CropTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/CropTransformation.java old mode 100644 new mode 100755 index 66b4edf..57db735 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/CropTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/CropTransformation.java @@ -22,9 +22,14 @@ import android.graphics.Canvas; import android.graphics.RectF; import android.support.annotation.NonNull; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; +import java.security.MessageDigest; 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, CENTER, @@ -74,11 +79,26 @@ public class CropTransformation extends BitmapTransformation { return bitmap; } - @Override public String key() { + @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: @@ -91,4 +111,5 @@ public class CropTransformation extends BitmapTransformation { return 0; } } + } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/GrayscaleTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/GrayscaleTransformation.java old mode 100644 new mode 100755 index 019f8ae..46f1bf4 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/GrayscaleTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/GrayscaleTransformation.java @@ -24,9 +24,14 @@ import android.graphics.ColorMatrixColorFilter; import android.graphics.Paint; import android.support.annotation.NonNull; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; +import java.security.MessageDigest; 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) { int width = toTransform.getWidth(); @@ -46,7 +51,22 @@ public class GrayscaleTransformation extends BitmapTransformation { return bitmap; } - @Override public String key() { + @Override public String toString() { return "GrayscaleTransformation()"; } + + @Override + public boolean equals(Object o) { + return o instanceof GrayscaleTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/MaskTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/MaskTransformation.java old mode 100644 new mode 100755 index cb63a83..3ddf984 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/MaskTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/MaskTransformation.java @@ -25,10 +25,15 @@ import android.graphics.PorterDuffXfermode; import android.graphics.drawable.Drawable; import android.support.annotation.NonNull; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; +import java.security.MessageDigest; import jp.wasabeef.glide.transformations.internal.Utils; 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; @@ -63,7 +68,22 @@ public class MaskTransformation extends BitmapTransformation { return bitmap; } - @Override public String key() { + @Override public String toString() { return "MaskTransformation(maskId=" + maskId + ")"; } + + @Override + public boolean equals(Object o) { + return o instanceof MaskTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/RoundedCornersTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/RoundedCornersTransformation.java old mode 100644 new mode 100755 index 8d74c6a..0645ef0 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/RoundedCornersTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/RoundedCornersTransformation.java @@ -26,8 +26,14 @@ import android.graphics.Shader; import android.support.annotation.NonNull; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; +import java.security.MessageDigest; + 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, TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT, @@ -229,8 +235,23 @@ public class RoundedCornersTransformation extends BitmapTransformation { canvas.drawRect(new RectF(margin + radius, margin + radius, right, bottom), paint); } - @Override public String key() { + @Override public String toString() { return "RoundedTransformation(radius=" + radius + ", margin=" + margin + ", diameter=" + diameter + ", cornerType=" + cornerType.name() + ")"; } + + @Override + public boolean equals(Object o) { + return o instanceof RoundedCornersTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/BrightnessFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/BrightnessFilterTransformation.java old mode 100644 new mode 100755 index f08b174..b925d3d --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/BrightnessFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/BrightnessFilterTransformation.java @@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu; * limitations under the License. */ +import java.security.MessageDigest; import jp.co.cyberagent.android.gpuimage.GPUImageBrightnessFilter; /** @@ -23,6 +24,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageBrightnessFilter; */ 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; public BrightnessFilterTransformation() { @@ -36,7 +41,22 @@ public class BrightnessFilterTransformation extends GPUFilterTransformation { filter.setBrightness(this.brightness); } - @Override public String key() { + @Override public String toString() { return "BrightnessFilterTransformation(brightness=" + brightness + ")"; } + + @Override + public boolean equals(Object o) { + return o instanceof BrightnessFilterTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ContrastFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ContrastFilterTransformation.java old mode 100644 new mode 100755 index a28338e..72c0395 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ContrastFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ContrastFilterTransformation.java @@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu; * limitations under the License. */ +import java.security.MessageDigest; import jp.co.cyberagent.android.gpuimage.GPUImageContrastFilter; /** @@ -23,6 +24,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageContrastFilter; */ 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; public ContrastFilterTransformation() { @@ -36,7 +41,22 @@ public class ContrastFilterTransformation extends GPUFilterTransformation { filter.setContrast(this.contrast); } - @Override public String key() { + @Override public String toString() { return "ContrastFilterTransformation(contrast=" + contrast + ")"; } + + @Override + public boolean equals(Object o) { + return o instanceof ContrastFilterTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/GPUFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/GPUFilterTransformation.java old mode 100644 new mode 100755 index 4fdea9d..0ddfef2 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/GPUFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/GPUFilterTransformation.java @@ -20,12 +20,17 @@ import android.content.Context; import android.graphics.Bitmap; import android.support.annotation.NonNull; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; +import java.security.MessageDigest; import jp.co.cyberagent.android.gpuimage.GPUImage; import jp.co.cyberagent.android.gpuimage.GPUImageFilter; import jp.wasabeef.glide.transformations.BitmapTransformation; public class GPUFilterTransformation extends BitmapTransformation { + private static final int VERSION = 1; + private static final String ID = "jp.wasabeef.glide.transformations.gpu.GPUFilterTransformation." + VERSION; + private static final byte[] ID_BYTES = ID.getBytes(CHARSET); + private GPUImageFilter gpuImageFilter; public GPUFilterTransformation(GPUImageFilter filter) { @@ -41,11 +46,26 @@ public class GPUFilterTransformation extends BitmapTransformation { return gpuImage.getBitmapWithFilterApplied(); } - @Override public String key() { + @Override public String toString() { return getClass().getSimpleName(); } @SuppressWarnings("unchecked") public T getFilter() { return (T) gpuImageFilter; } + + @Override + public boolean equals(Object o) { + return o instanceof GPUFilterTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/InvertFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/InvertFilterTransformation.java old mode 100644 new mode 100755 index 62faf35..8dcf780 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/InvertFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/InvertFilterTransformation.java @@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu; * limitations under the License. */ +import java.security.MessageDigest; import jp.co.cyberagent.android.gpuimage.GPUImageColorInvertFilter; /** @@ -23,11 +24,30 @@ import jp.co.cyberagent.android.gpuimage.GPUImageColorInvertFilter; */ 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()); } - @Override public String key() { + @Override public String toString() { return "InvertFilterTransformation()"; } + + @Override + public boolean equals(Object o) { + return o instanceof InvertFilterTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/KuwaharaFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/KuwaharaFilterTransformation.java old mode 100644 new mode 100755 index 04b13e3..d886058 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/KuwaharaFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/KuwaharaFilterTransformation.java @@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu; * limitations under the License. */ +import java.security.MessageDigest; import jp.co.cyberagent.android.gpuimage.GPUImageKuwaharaFilter; /** @@ -26,6 +27,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageKuwaharaFilter; */ 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; public KuwaharaFilterTransformation() { @@ -39,7 +44,22 @@ public class KuwaharaFilterTransformation extends GPUFilterTransformation { filter.setRadius(this.radius); } - @Override public String key() { + @Override public String toString() { return "KuwaharaFilterTransformation(radius=" + radius + ")"; } + + @Override + public boolean equals(Object o) { + return o instanceof KuwaharaFilterTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/PixelationFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/PixelationFilterTransformation.java old mode 100644 new mode 100755 index 1de9d55..06dd889 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/PixelationFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/PixelationFilterTransformation.java @@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu; * limitations under the License. */ +import java.security.MessageDigest; import jp.co.cyberagent.android.gpuimage.GPUImagePixelationFilter; /** @@ -25,6 +26,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImagePixelationFilter; */ 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; public PixelationFilterTransformation() { @@ -38,7 +43,22 @@ public class PixelationFilterTransformation extends GPUFilterTransformation { filter.setPixel(this.pixel); } - @Override public String key() { + @Override public String toString() { return "PixelationFilterTransformation(pixel=" + pixel + ")"; } + + @Override + public boolean equals(Object o) { + return o instanceof PixelationFilterTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SepiaFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SepiaFilterTransformation.java old mode 100644 new mode 100755 index eae0b32..2f3c273 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SepiaFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SepiaFilterTransformation.java @@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu; * limitations under the License. */ +import java.security.MessageDigest; import jp.co.cyberagent.android.gpuimage.GPUImageSepiaFilter; /** @@ -25,6 +26,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageSepiaFilter; */ 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; public SepiaFilterTransformation() { @@ -38,7 +43,22 @@ public class SepiaFilterTransformation extends GPUFilterTransformation { filter.setIntensity(this.intensity); } - @Override public String key() { + @Override public String toString() { return "SepiaFilterTransformation(intensity=" + intensity + ")"; } + + @Override + public boolean equals(Object o) { + return o instanceof SepiaFilterTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SketchFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SketchFilterTransformation.java old mode 100644 new mode 100755 index 4e3db67..b72a325 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SketchFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SketchFilterTransformation.java @@ -16,15 +16,35 @@ package jp.wasabeef.glide.transformations.gpu; * limitations under the License. */ +import java.security.MessageDigest; import jp.co.cyberagent.android.gpuimage.GPUImageSketchFilter; 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()); } - @Override public String key() { + @Override public String toString() { return "SketchFilterTransformation()"; } + + @Override + public boolean equals(Object o) { + return o instanceof SketchFilterTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SwirlFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SwirlFilterTransformation.java old mode 100644 new mode 100755 index cd3a1b7..70ba62c --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SwirlFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SwirlFilterTransformation.java @@ -17,6 +17,7 @@ package jp.wasabeef.glide.transformations.gpu; */ import android.graphics.PointF; +import java.security.MessageDigest; import jp.co.cyberagent.android.gpuimage.GPUImageSwirlFilter; /** @@ -24,6 +25,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageSwirlFilter; */ 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; private PointF center; @@ -48,8 +53,23 @@ public class SwirlFilterTransformation extends GPUFilterTransformation { filter.setCenter(this.center); } - @Override public String key() { + @Override public String toString() { return "SwirlFilterTransformation(radius=" + radius + ",angle=" + angle + ",center=" + center.toString() + ")"; } + + @Override + public boolean equals(Object o) { + return o instanceof SwirlFilterTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ToonFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ToonFilterTransformation.java old mode 100644 new mode 100755 index d1a9f27..b07441a --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ToonFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ToonFilterTransformation.java @@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu; * limitations under the License. */ +import java.security.MessageDigest; import jp.co.cyberagent.android.gpuimage.GPUImageToonFilter; /** @@ -25,6 +26,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageToonFilter; */ 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; @@ -41,8 +46,23 @@ public class ToonFilterTransformation extends GPUFilterTransformation { filter.setQuantizationLevels(this.quantizationLevels); } - @Override public String key() { + @Override public String toString() { return "ToonFilterTransformation(threshold=" + threshold + ",quantizationLevels=" + quantizationLevels + ")"; } + + @Override + public boolean equals(Object o) { + return o instanceof ToonFilterTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/VignetteFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/VignetteFilterTransformation.java old mode 100644 new mode 100755 index 47266d2..7bc86c2 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/VignetteFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/VignetteFilterTransformation.java @@ -17,6 +17,7 @@ package jp.wasabeef.glide.transformations.gpu; */ import android.graphics.PointF; +import java.security.MessageDigest; import java.util.Arrays; import jp.co.cyberagent.android.gpuimage.GPUImageVignetteFilter; @@ -27,6 +28,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageVignetteFilter; */ 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; private float vignetteStart; @@ -49,9 +54,24 @@ public class VignetteFilterTransformation extends GPUFilterTransformation { filter.setVignetteEnd(vignetteEnd); } - @Override public String key() { + @Override public String toString() { return "VignetteFilterTransformation(center=" + center.toString() + ",color=" + Arrays.toString(vignetteColor) + ",start=" + vignetteStart + ",end=" + vignetteEnd + ")"; } + + @Override + public boolean equals(Object o) { + return o instanceof VignetteFilterTransformation; + } + + @Override + public int hashCode() { + return ID.hashCode(); + } + + @Override + public void updateDiskCacheKey(MessageDigest messageDigest) { + messageDigest.update(ID_BYTES); + } }