diff options
author | Tom Hennen <TomHennen@users.noreply.github.com> | 2016-05-19 16:11:01 -0400 |
---|---|---|
committer | Tom Hennen <TomHennen@users.noreply.github.com> | 2016-05-19 16:11:01 -0400 |
commit | 23971da9c6063c036f38b1e42f66a075585dc9af (patch) | |
tree | 99b353852d8a54ea567c504aee69fc154292bf65 /app/src/main/java/de/danoeh/antennapod/adapter/CoverTarget.java | |
parent | 37e9781930cd356a205267ca65cda0283d8e228e (diff) | |
parent | 0290d38f52117a319a76f42ca5ce39133ebb0a9d (diff) | |
download | AntennaPod-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.java | 58 |
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); + } + } +} |