summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/adapter/CoverTarget.java
diff options
context:
space:
mode:
authorTom Hennen <TomHennen@users.noreply.github.com>2016-05-19 16:11:01 -0400
committerTom Hennen <TomHennen@users.noreply.github.com>2016-05-19 16:11:01 -0400
commit23971da9c6063c036f38b1e42f66a075585dc9af (patch)
tree99b353852d8a54ea567c504aee69fc154292bf65 /app/src/main/java/de/danoeh/antennapod/adapter/CoverTarget.java
parent37e9781930cd356a205267ca65cda0283d8e228e (diff)
parent0290d38f52117a319a76f42ca5ce39133ebb0a9d (diff)
downloadAntennaPod-23971da9c6063c036f38b1e42f66a075585dc9af.zip
Merge pull request #1952 from AntennaPod/1.6.0_devel
1.6.0.7 released
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/adapter/CoverTarget.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/CoverTarget.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/CoverTarget.java b/app/src/main/java/de/danoeh/antennapod/adapter/CoverTarget.java
new file mode 100644
index 000000000..ed0c08086
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/CoverTarget.java
@@ -0,0 +1,58 @@
+package de.danoeh.antennapod.adapter;
+
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.drawable.GlideDrawable;
+import com.bumptech.glide.request.animation.GlideAnimation;
+import com.bumptech.glide.request.target.GlideDrawableImageViewTarget;
+
+import java.lang.ref.WeakReference;
+
+import de.danoeh.antennapod.activity.MainActivity;
+import de.danoeh.antennapod.core.glide.ApGlideSettings;
+
+class CoverTarget extends GlideDrawableImageViewTarget {
+
+ private final WeakReference<Uri> fallback;
+ private final WeakReference<TextView> placeholder;
+ private final WeakReference<ImageView> cover;
+ private final WeakReference<MainActivity> mainActivity;
+
+ public CoverTarget(Uri fallbackUri, TextView txtvPlaceholder, ImageView imgvCover, MainActivity activity) {
+ super(imgvCover);
+ fallback = new WeakReference<>(fallbackUri);
+ placeholder = new WeakReference<>(txtvPlaceholder);
+ cover = new WeakReference<>(imgvCover);
+ mainActivity = new WeakReference<>(activity);
+ }
+
+ @Override
+ public void onLoadFailed(Exception e, Drawable errorDrawable) {
+ Uri fallbackUri = fallback.get();
+ TextView txtvPlaceholder = placeholder.get();
+ ImageView imgvCover = cover.get();
+ if (fallbackUri != null && txtvPlaceholder != null && imgvCover != null) {
+ MainActivity activity = mainActivity.get();
+ Glide.with(activity)
+ .load(fallbackUri)
+ .diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
+ .fitCenter()
+ .dontAnimate()
+ .into(new CoverTarget(null, txtvPlaceholder, imgvCover, activity));
+ }
+ }
+
+ @Override
+ public void onResourceReady(GlideDrawable drawable, GlideAnimation anim) {
+ super.onResourceReady(drawable, anim);
+ TextView txtvPlaceholder = placeholder.get();
+ if (txtvPlaceholder != null) {
+ txtvPlaceholder.setVisibility(View.INVISIBLE);
+ }
+ }
+}