remove some dead code for glide

This commit is contained in:
dkanada 2020-09-22 00:54:44 +09:00
commit a88956578a
7 changed files with 38 additions and 92 deletions

View file

@ -4,10 +4,8 @@ import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Build;
import android.renderscript.Allocation;
import android.renderscript.Element;
import android.renderscript.RSRuntimeException;
import android.renderscript.RenderScript;
import android.renderscript.ScriptIntrinsicBlur;
import androidx.annotation.FloatRange;
@ -15,8 +13,6 @@ import androidx.annotation.NonNull;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
import com.dkanada.gramophone.BuildConfig;
import com.dkanada.gramophone.helper.StackBlur;
import com.dkanada.gramophone.util.ImageUtil;
import java.security.MessageDigest;
@ -28,25 +24,16 @@ public class BlurTransformation extends BitmapTransformation {
private float blurRadius;
private int sampling;
private void init(Builder builder) {
private BlurTransformation(Builder builder) {
super();
this.context = builder.context;
this.blurRadius = builder.blurRadius;
this.sampling = builder.sampling;
}
private BlurTransformation(Builder builder) {
super();
init(builder);
}
private BlurTransformation(Builder builder, BitmapPool bitmapPool) {
super();
init(builder);
}
public static class Builder {
private Context context;
private BitmapPool bitmapPool;
private float blurRadius = DEFAULT_BLUR_RADIUS;
private int sampling;
@ -72,25 +59,13 @@ public class BlurTransformation extends BitmapTransformation {
return this;
}
/**
* @param bitmapPool The BitmapPool to use.
* @return the same Builder
*/
public Builder bitmapPool(BitmapPool bitmapPool) {
this.bitmapPool = bitmapPool;
return this;
}
public BlurTransformation build() {
if (bitmapPool != null) {
return new BlurTransformation(this, bitmapPool);
}
return new BlurTransformation(this);
}
}
@Override
protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) {
int sampling;
if (this.sampling == 0) {
sampling = ImageUtil.calculateInSampleSize(toTransform.getWidth(), toTransform.getHeight(), 100);
@ -104,39 +79,25 @@ public class BlurTransformation extends BitmapTransformation {
int scaledHeight = height / sampling;
Bitmap out = pool.get(scaledWidth, scaledHeight, Bitmap.Config.ARGB_8888);
if (out == null) {
out = Bitmap.createBitmap(scaledWidth, scaledHeight, Bitmap.Config.ARGB_8888);
}
Canvas canvas = new Canvas(out);
canvas.scale(1 / (float) sampling, 1 / (float) sampling);
Paint paint = new Paint();
paint.setFlags(Paint.FILTER_BITMAP_FLAG);
canvas.drawBitmap(toTransform, 0, 0, paint);
if (Build.VERSION.SDK_INT >= 17) {
try {
final RenderScript rs = RenderScript.create(context.getApplicationContext());
final Allocation input = Allocation.createFromBitmap(rs, out, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT);
final Allocation output = Allocation.createTyped(rs, input.getType());
final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
final RenderScript renderScript = RenderScript.create(context.getApplicationContext());
final Allocation input = Allocation.createFromBitmap(renderScript, out, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT);
final Allocation output = Allocation.createTyped(renderScript, input.getType());
final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(renderScript, Element.U8_4(renderScript));
script.setRadius(blurRadius);
script.setInput(input);
script.forEach(output);
script.setRadius(blurRadius);
script.setInput(input);
script.forEach(output);
output.copyTo(out);
output.copyTo(out);
renderScript.destroy();
rs.destroy();
return out;
} catch (RSRuntimeException e) {
// on some devices RenderScript.create() throws: android.support.v8.renderscript.RSRuntimeException: Error loading libRSSupport library
if (BuildConfig.DEBUG) e.printStackTrace();
}
}
return StackBlur.blur(out, blurRadius);
return out;
}
@Override

View file

@ -9,8 +9,10 @@ import androidx.annotation.NonNull;
import com.bumptech.glide.Glide;
import com.bumptech.glide.GlideBuilder;
import com.bumptech.glide.Registry;
import com.bumptech.glide.load.DecodeFormat;
import com.bumptech.glide.load.engine.cache.DiskLruCacheFactory;
import com.bumptech.glide.module.GlideModule;
import com.bumptech.glide.request.RequestOptions;
import com.dkanada.gramophone.App;
import com.dkanada.gramophone.glide.palette.BitmapPaletteTranscoder;
import com.dkanada.gramophone.glide.palette.BitmapPaletteWrapper;
@ -21,19 +23,17 @@ import java.io.File;
public class CustomGlideModule implements GlideModule {
@Override
public void applyOptions(@NonNull Context context, GlideBuilder builder) {
builder.setDiskCache(new DiskLruCacheFactory(new DiskLruCacheFactory.CacheDirectoryGetter() {
@Override
public File getCacheDirectory() {
String folder = "/Gelli/images";
return PreferenceUtil.getInstance(App.getInstance()).getExternalDirectory()
? new File(Environment.getExternalStorageDirectory() + folder)
: new File(App.getInstance().getApplicationInfo().dataDir + folder);
}
}, PreferenceUtil.getInstance(App.getInstance()).getCacheSize()));
File file = PreferenceUtil.getInstance(context).getExternalDirectory()
? new File(Environment.getExternalStorageDirectory() + "/Gelli/images")
: new File(App.getInstance().getApplicationInfo().dataDir + "/glide");
int size = PreferenceUtil.getInstance(context).getCacheSize();
builder.setDiskCache(new DiskLruCacheFactory(() -> file, size));
builder.setDefaultRequestOptions(new RequestOptions().format(DecodeFormat.PREFER_RGB_565));
}
@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
registry.register(Bitmap.class, BitmapPaletteWrapper.class, new BitmapPaletteTranscoder(glide.getBitmapPool()));
registry.register(Bitmap.class, BitmapPaletteWrapper.class, new BitmapPaletteTranscoder());
}
}

View file

@ -8,13 +8,11 @@ import androidx.annotation.NonNull;
import com.bumptech.glide.RequestBuilder;
import com.bumptech.glide.RequestManager;
import com.bumptech.glide.load.Key;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.bitmap.BitmapTransitionOptions;
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.transition.ViewAnimationFactory;
import com.bumptech.glide.signature.MediaStoreSignature;
import com.bumptech.glide.signature.ObjectKey;
import com.dkanada.gramophone.App;
import com.dkanada.gramophone.R;
import com.dkanada.gramophone.glide.palette.BitmapPaletteWrapper;
@ -98,7 +96,7 @@ public class CustomGlideRequest {
.centerCrop()
.error(DEFAULT_IMAGE)
.diskCacheStrategy(DEFAULT_DISK_CACHE_STRATEGY)
.signature(createSignature(item));
.signature(new ObjectKey(item != null ? item : 0));
}
public static String createUrl(String item) {
@ -108,8 +106,4 @@ public class CustomGlideRequest {
return App.getApiClient().GetImageUrl(item, options);
}
public static Key createSignature(String item) {
return new MediaStoreSignature("image/jpeg", item != null ? item.hashCode() : 0, 0);
}
}

View file

@ -3,17 +3,13 @@ package com.dkanada.gramophone.glide.palette;
import androidx.annotation.NonNull;
import com.bumptech.glide.load.engine.Resource;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.util.Util;
public class BitmapPaletteResource implements Resource<BitmapPaletteWrapper> {
private final BitmapPaletteWrapper bitmapPaletteWrapper;
private final BitmapPool bitmapPool;
public BitmapPaletteResource(BitmapPaletteWrapper bitmapPaletteWrapper, BitmapPool bitmapPool) {
public BitmapPaletteResource(BitmapPaletteWrapper bitmapPaletteWrapper) {
this.bitmapPaletteWrapper = bitmapPaletteWrapper;
this.bitmapPool = bitmapPool;
}
@NonNull
@ -22,6 +18,7 @@ public class BitmapPaletteResource implements Resource<BitmapPaletteWrapper> {
return BitmapPaletteWrapper.class;
}
@NonNull
@Override
public BitmapPaletteWrapper get() {
return bitmapPaletteWrapper;

View file

@ -6,21 +6,13 @@ import androidx.annotation.NonNull;
import com.bumptech.glide.load.Options;
import com.bumptech.glide.load.engine.Resource;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.transcode.ResourceTranscoder;
import com.dkanada.gramophone.util.ThemeUtil;
public class BitmapPaletteTranscoder implements ResourceTranscoder<Bitmap, BitmapPaletteWrapper> {
private final BitmapPool bitmapPool;
public BitmapPaletteTranscoder(BitmapPool bitmapPool) {
this.bitmapPool = bitmapPool;
}
@Override
public Resource<BitmapPaletteWrapper> transcode(@NonNull Resource<Bitmap> resource, @NonNull Options options) {
Bitmap bitmap = resource.get();
BitmapPaletteWrapper bitmapPaletteWrapper = new BitmapPaletteWrapper(bitmap, ThemeUtil.generatePalette(bitmap));
return new BitmapPaletteResource(bitmapPaletteWrapper, bitmapPool);
BitmapPaletteWrapper bitmapPaletteWrapper = new BitmapPaletteWrapper(resource.get(), ThemeUtil.generatePalette(resource.get()));
return new BitmapPaletteResource(bitmapPaletteWrapper);
}
}

View file

@ -4,19 +4,19 @@ import android.graphics.Bitmap;
import androidx.palette.graphics.Palette;
public class BitmapPaletteWrapper {
private final Bitmap mBitmap;
private final Palette mPalette;
private final Bitmap bitmap;
private final Palette palette;
public BitmapPaletteWrapper(Bitmap bitmap, Palette palette) {
mBitmap = bitmap;
mPalette = palette;
this.bitmap = bitmap;
this.palette = palette;
}
public Bitmap getBitmap() {
return mBitmap;
return bitmap;
}
public Palette getPalette() {
return mPalette;
return palette;
}
}