1
0
mirror of https://github.com/wasabeef/glide-transformations.git synced 2025-06-07 23:04:06 +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 String key();
@Override
public final Resource<Bitmap> transform(Context context, Resource<Bitmap> resource, int outWidth,
int outHeight) {
@ -59,7 +57,11 @@ 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 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();
}

View File

@ -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);
}
}

View File

@ -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);
}
}

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.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);
}
}

View File

@ -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);
}
}

View File

@ -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;
}
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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> 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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}