1
0
mirror of https://github.com/wasabeef/glide-transformations.git synced 2025-06-08 15:34:04 +08:00

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
This commit is contained in:
CrabeMan 2018-01-25 09:15:27 +01:00 committed by Daichi Furiya
parent 970afc35fe
commit 43f38cc4b3
20 changed files with 408 additions and 24 deletions

View File

@ -31,8 +31,6 @@ import java.security.MessageDigest;
public abstract class BitmapTransformation implements Transformation<Bitmap> { public abstract class BitmapTransformation implements Transformation<Bitmap> {
public abstract String key();
@Override @Override
public final Resource<Bitmap> transform(Context context, Resource<Bitmap> resource, int outWidth, public final Resource<Bitmap> transform(Context context, Resource<Bitmap> resource, int outWidth,
int outHeight) { int outHeight) {
@ -59,7 +57,11 @@ public abstract class BitmapTransformation implements Transformation<Bitmap> {
protected abstract Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool, protected abstract Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool,
@NonNull Bitmap toTransform, int outWidth, int outHeight); @NonNull Bitmap toTransform, int outWidth, int outHeight);
@Override public void updateDiskCacheKey(MessageDigest messageDigest) { @Override public abstract void updateDiskCacheKey(MessageDigest messageDigest);
messageDigest.update(key().getBytes());
} @Override
public abstract boolean equals(Object o);
@Override
public abstract int hashCode();
} }

View File

@ -24,11 +24,16 @@ import android.os.Build;
import android.renderscript.RSRuntimeException; import android.renderscript.RSRuntimeException;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; 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.FastBlur;
import jp.wasabeef.glide.transformations.internal.RSBlur; import jp.wasabeef.glide.transformations.internal.RSBlur;
public class BlurTransformation extends BitmapTransformation { 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 MAX_RADIUS = 25;
private static int DEFAULT_DOWN_SAMPLING = 1; private static int DEFAULT_DOWN_SAMPLING = 1;
@ -77,7 +82,22 @@ public class BlurTransformation extends BitmapTransformation {
return bitmap; return bitmap;
} }
@Override public String key() { @Override public String toString() {
return "BlurTransformation(radius=" + radius + ", sampling=" + sampling + ")"; 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);
}
} }

View File

@ -24,9 +24,14 @@ import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter; import android.graphics.PorterDuffColorFilter;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import java.security.MessageDigest;
public class ColorFilterTransformation extends BitmapTransformation { 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; private int color;
public ColorFilterTransformation(int color) { public ColorFilterTransformation(int color) {
@ -51,7 +56,22 @@ public class ColorFilterTransformation extends BitmapTransformation {
return bitmap; return bitmap;
} }
@Override public String key() { @Override public String toString() {
return "ColorFilterTransformation(color=" + color + ")"; 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);
}
} }

View File

@ -22,6 +22,7 @@ import android.support.annotation.NonNull;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.TransformationUtils; import com.bumptech.glide.load.resource.bitmap.TransformationUtils;
import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.RequestOptions;
import java.security.MessageDigest;
/** /**
* @deprecated Use {@link RequestOptions#circleCrop()}. * @deprecated Use {@link RequestOptions#circleCrop()}.
@ -29,12 +30,31 @@ import com.bumptech.glide.request.RequestOptions;
@Deprecated @Deprecated
public class CropCircleTransformation extends BitmapTransformation { 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, @Override protected Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool,
@NonNull Bitmap toTransform, int outWidth, int outHeight) { @NonNull Bitmap toTransform, int outWidth, int outHeight) {
return TransformationUtils.circleCrop(pool, toTransform, outWidth, outHeight); return TransformationUtils.circleCrop(pool, toTransform, outWidth, outHeight);
} }
@Override public String key() { @Override public String toString() {
return "CropCircleTransformation()"; 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);
}
} }

View File

@ -21,9 +21,14 @@ import android.graphics.Bitmap;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.TransformationUtils; import com.bumptech.glide.load.resource.bitmap.TransformationUtils;
import java.security.MessageDigest;
public class CropSquareTransformation extends BitmapTransformation { 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; private int size;
@Override protected Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool, @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); return TransformationUtils.centerCrop(pool, toTransform, size, size);
} }
@Override public String key() { @Override public String toString() {
return "CropSquareTransformation(size=" + size + ")"; 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);
}
} }

View File

@ -22,9 +22,14 @@ import android.graphics.Canvas;
import android.graphics.RectF; import android.graphics.RectF;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import java.security.MessageDigest;
public class CropTransformation extends BitmapTransformation { 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 { public enum CropType {
TOP, TOP,
CENTER, CENTER,
@ -74,11 +79,26 @@ public class CropTransformation extends BitmapTransformation {
return bitmap; return bitmap;
} }
@Override public String key() { @Override public String toString() {
return "CropTransformation(width=" + width + ", height=" + height + ", cropType=" + cropType 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) { private float getTop(float scaledHeight) {
switch (cropType) { switch (cropType) {
case TOP: case TOP:
@ -91,4 +111,5 @@ public class CropTransformation extends BitmapTransformation {
return 0; return 0;
} }
} }
} }

View File

@ -24,9 +24,14 @@ import android.graphics.ColorMatrixColorFilter;
import android.graphics.Paint; import android.graphics.Paint;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import java.security.MessageDigest;
public class GrayscaleTransformation extends BitmapTransformation { 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, @Override protected Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool,
@NonNull Bitmap toTransform, int outWidth, int outHeight) { @NonNull Bitmap toTransform, int outWidth, int outHeight) {
int width = toTransform.getWidth(); int width = toTransform.getWidth();
@ -46,7 +51,22 @@ public class GrayscaleTransformation extends BitmapTransformation {
return bitmap; return bitmap;
} }
@Override public String key() { @Override public String toString() {
return "GrayscaleTransformation()"; 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);
}
} }

View File

@ -25,10 +25,15 @@ import android.graphics.PorterDuffXfermode;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import java.security.MessageDigest;
import jp.wasabeef.glide.transformations.internal.Utils; import jp.wasabeef.glide.transformations.internal.Utils;
public class MaskTransformation extends BitmapTransformation { 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 static Paint paint = new Paint();
private int maskId; private int maskId;
@ -63,7 +68,22 @@ public class MaskTransformation extends BitmapTransformation {
return bitmap; return bitmap;
} }
@Override public String key() { @Override public String toString() {
return "MaskTransformation(maskId=" + maskId + ")"; 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);
}
} }

View File

@ -26,8 +26,14 @@ import android.graphics.Shader;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import java.security.MessageDigest;
public class RoundedCornersTransformation extends BitmapTransformation { 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 { public enum CornerType {
ALL, ALL,
TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT, 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); 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=" return "RoundedTransformation(radius=" + radius + ", margin=" + margin + ", diameter="
+ diameter + ", cornerType=" + cornerType.name() + ")"; + 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);
}
} }

View File

@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License. * limitations under the License.
*/ */
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageBrightnessFilter; import jp.co.cyberagent.android.gpuimage.GPUImageBrightnessFilter;
/** /**
@ -23,6 +24,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageBrightnessFilter;
*/ */
public class BrightnessFilterTransformation extends GPUFilterTransformation { 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; private float brightness;
public BrightnessFilterTransformation() { public BrightnessFilterTransformation() {
@ -36,7 +41,22 @@ public class BrightnessFilterTransformation extends GPUFilterTransformation {
filter.setBrightness(this.brightness); filter.setBrightness(this.brightness);
} }
@Override public String key() { @Override public String toString() {
return "BrightnessFilterTransformation(brightness=" + brightness + ")"; 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);
}
} }

View File

@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License. * limitations under the License.
*/ */
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageContrastFilter; import jp.co.cyberagent.android.gpuimage.GPUImageContrastFilter;
/** /**
@ -23,6 +24,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageContrastFilter;
*/ */
public class ContrastFilterTransformation extends GPUFilterTransformation { 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; private float contrast;
public ContrastFilterTransformation() { public ContrastFilterTransformation() {
@ -36,7 +41,22 @@ public class ContrastFilterTransformation extends GPUFilterTransformation {
filter.setContrast(this.contrast); filter.setContrast(this.contrast);
} }
@Override public String key() { @Override public String toString() {
return "ContrastFilterTransformation(contrast=" + contrast + ")"; 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);
}
} }

View File

@ -20,12 +20,17 @@ import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; 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.GPUImage;
import jp.co.cyberagent.android.gpuimage.GPUImageFilter; import jp.co.cyberagent.android.gpuimage.GPUImageFilter;
import jp.wasabeef.glide.transformations.BitmapTransformation; import jp.wasabeef.glide.transformations.BitmapTransformation;
public class GPUFilterTransformation extends 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; private GPUImageFilter gpuImageFilter;
public GPUFilterTransformation(GPUImageFilter filter) { public GPUFilterTransformation(GPUImageFilter filter) {
@ -41,11 +46,26 @@ public class GPUFilterTransformation extends BitmapTransformation {
return gpuImage.getBitmapWithFilterApplied(); return gpuImage.getBitmapWithFilterApplied();
} }
@Override public String key() { @Override public String toString() {
return getClass().getSimpleName(); return getClass().getSimpleName();
} }
@SuppressWarnings("unchecked") public <T> T getFilter() { @SuppressWarnings("unchecked") public <T> T getFilter() {
return (T) gpuImageFilter; 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);
}
} }

View File

@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License. * limitations under the License.
*/ */
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageColorInvertFilter; import jp.co.cyberagent.android.gpuimage.GPUImageColorInvertFilter;
/** /**
@ -23,11 +24,30 @@ import jp.co.cyberagent.android.gpuimage.GPUImageColorInvertFilter;
*/ */
public class InvertFilterTransformation extends GPUFilterTransformation { 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() { public InvertFilterTransformation() {
super(new GPUImageColorInvertFilter()); super(new GPUImageColorInvertFilter());
} }
@Override public String key() { @Override public String toString() {
return "InvertFilterTransformation()"; 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);
}
} }

View File

@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License. * limitations under the License.
*/ */
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageKuwaharaFilter; import jp.co.cyberagent.android.gpuimage.GPUImageKuwaharaFilter;
/** /**
@ -26,6 +27,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageKuwaharaFilter;
*/ */
public class KuwaharaFilterTransformation extends GPUFilterTransformation { 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; private int radius;
public KuwaharaFilterTransformation() { public KuwaharaFilterTransformation() {
@ -39,7 +44,22 @@ public class KuwaharaFilterTransformation extends GPUFilterTransformation {
filter.setRadius(this.radius); filter.setRadius(this.radius);
} }
@Override public String key() { @Override public String toString() {
return "KuwaharaFilterTransformation(radius=" + radius + ")"; 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);
}
} }

View File

@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License. * limitations under the License.
*/ */
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImagePixelationFilter; import jp.co.cyberagent.android.gpuimage.GPUImagePixelationFilter;
/** /**
@ -25,6 +26,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImagePixelationFilter;
*/ */
public class PixelationFilterTransformation extends GPUFilterTransformation { 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; private float pixel;
public PixelationFilterTransformation() { public PixelationFilterTransformation() {
@ -38,7 +43,22 @@ public class PixelationFilterTransformation extends GPUFilterTransformation {
filter.setPixel(this.pixel); filter.setPixel(this.pixel);
} }
@Override public String key() { @Override public String toString() {
return "PixelationFilterTransformation(pixel=" + pixel + ")"; 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);
}
} }

View File

@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License. * limitations under the License.
*/ */
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageSepiaFilter; import jp.co.cyberagent.android.gpuimage.GPUImageSepiaFilter;
/** /**
@ -25,6 +26,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageSepiaFilter;
*/ */
public class SepiaFilterTransformation extends GPUFilterTransformation { 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; private float intensity;
public SepiaFilterTransformation() { public SepiaFilterTransformation() {
@ -38,7 +43,22 @@ public class SepiaFilterTransformation extends GPUFilterTransformation {
filter.setIntensity(this.intensity); filter.setIntensity(this.intensity);
} }
@Override public String key() { @Override public String toString() {
return "SepiaFilterTransformation(intensity=" + intensity + ")"; 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);
}
} }

View File

@ -16,15 +16,35 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License. * limitations under the License.
*/ */
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageSketchFilter; import jp.co.cyberagent.android.gpuimage.GPUImageSketchFilter;
public class SketchFilterTransformation extends GPUFilterTransformation { 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() { public SketchFilterTransformation() {
super(new GPUImageSketchFilter()); super(new GPUImageSketchFilter());
} }
@Override public String key() { @Override public String toString() {
return "SketchFilterTransformation()"; 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);
}
} }

View File

@ -17,6 +17,7 @@ package jp.wasabeef.glide.transformations.gpu;
*/ */
import android.graphics.PointF; import android.graphics.PointF;
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageSwirlFilter; import jp.co.cyberagent.android.gpuimage.GPUImageSwirlFilter;
/** /**
@ -24,6 +25,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageSwirlFilter;
*/ */
public class SwirlFilterTransformation extends GPUFilterTransformation { 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 radius;
private float angle; private float angle;
private PointF center; private PointF center;
@ -48,8 +53,23 @@ public class SwirlFilterTransformation extends GPUFilterTransformation {
filter.setCenter(this.center); filter.setCenter(this.center);
} }
@Override public String key() { @Override public String toString() {
return "SwirlFilterTransformation(radius=" + radius + return "SwirlFilterTransformation(radius=" + radius +
",angle=" + angle + ",center=" + center.toString() + ")"; ",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);
}
} }

View File

@ -16,6 +16,7 @@ package jp.wasabeef.glide.transformations.gpu;
* limitations under the License. * limitations under the License.
*/ */
import java.security.MessageDigest;
import jp.co.cyberagent.android.gpuimage.GPUImageToonFilter; import jp.co.cyberagent.android.gpuimage.GPUImageToonFilter;
/** /**
@ -25,6 +26,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageToonFilter;
*/ */
public class ToonFilterTransformation extends GPUFilterTransformation { 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 threshold;
private float quantizationLevels; private float quantizationLevels;
@ -41,8 +46,23 @@ public class ToonFilterTransformation extends GPUFilterTransformation {
filter.setQuantizationLevels(this.quantizationLevels); filter.setQuantizationLevels(this.quantizationLevels);
} }
@Override public String key() { @Override public String toString() {
return "ToonFilterTransformation(threshold=" + threshold + return "ToonFilterTransformation(threshold=" + threshold +
",quantizationLevels=" + quantizationLevels + ")"; ",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);
}
} }

View File

@ -17,6 +17,7 @@ package jp.wasabeef.glide.transformations.gpu;
*/ */
import android.graphics.PointF; import android.graphics.PointF;
import java.security.MessageDigest;
import java.util.Arrays; import java.util.Arrays;
import jp.co.cyberagent.android.gpuimage.GPUImageVignetteFilter; import jp.co.cyberagent.android.gpuimage.GPUImageVignetteFilter;
@ -27,6 +28,10 @@ import jp.co.cyberagent.android.gpuimage.GPUImageVignetteFilter;
*/ */
public class VignetteFilterTransformation extends GPUFilterTransformation { 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 PointF center;
private float[] vignetteColor; private float[] vignetteColor;
private float vignetteStart; private float vignetteStart;
@ -49,9 +54,24 @@ public class VignetteFilterTransformation extends GPUFilterTransformation {
filter.setVignetteEnd(vignetteEnd); filter.setVignetteEnd(vignetteEnd);
} }
@Override public String key() { @Override public String toString() {
return "VignetteFilterTransformation(center=" + center.toString() + return "VignetteFilterTransformation(center=" + center.toString() +
",color=" + Arrays.toString(vignetteColor) + ",color=" + Arrays.toString(vignetteColor) +
",start=" + vignetteStart + ",end=" + vignetteEnd + ")"; ",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);
}
} }