remove some dead code for glide
This commit is contained in:
parent
c00765c59e
commit
a88956578a
7 changed files with 38 additions and 92 deletions
|
|
@ -46,6 +46,8 @@ android {
|
|||
|
||||
dependencies {
|
||||
implementation 'com.github.jellyfin.jellyfin-apiclient-java:android:0.7.3'
|
||||
implementation 'com.github.woltapp:blurhash:f41a23cc50'
|
||||
implementation 'com.github.florent37:glidepalette:2.1.2'
|
||||
|
||||
implementation 'com.google.android.exoplayer:exoplayer:2.11.4'
|
||||
implementation 'com.google.android.material:material:1.2.1'
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue