From 052884e0813fbd4580d6139d3034a4fe57e2bce0 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sat, 2 Jan 2021 20:05:45 +0100 Subject: [PATCH] Clear glide when loading image manually --- .../antennapod/adapter/CoverLoader.java | 33 ++++++++++++++----- .../antennapod/adapter/NavListAdapter.java | 2 +- .../adapter/SubscriptionsAdapter.java | 7 +--- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/CoverLoader.java b/app/src/main/java/de/danoeh/antennapod/adapter/CoverLoader.java index d782d4ed5..aeaf526be 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/CoverLoader.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/CoverLoader.java @@ -21,6 +21,7 @@ import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.core.glide.ApGlideSettings; public class CoverLoader { + private int resource = 0; private String uri; private String fallbackUri; private TextView txtvPlaceholder; @@ -37,6 +38,11 @@ public class CoverLoader { return this; } + public CoverLoader withResource(int resource) { + this.resource = resource; + return this; + } + public CoverLoader withFallbackUri(String uri) { fallbackUri = uri; return this; @@ -66,6 +72,12 @@ public class CoverLoader { } public void load() { + if (resource != 0) { + imgvCover.setImageResource(resource); + CoverTarget.setPlaceholderVisibility(txtvPlaceholder, textAndImageCombined); + return; + } + RequestOptions options = new RequestOptions() .diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY) .fitCenter() @@ -106,15 +118,7 @@ public class CoverLoader { @Override public void onResourceReady(@NonNull Drawable resource, @Nullable Transition transition) { - TextView txtvPlaceholder = placeholder.get(); - if (txtvPlaceholder != null) { - if (textAndImageCombined) { - int bgColor = txtvPlaceholder.getContext().getResources().getColor(R.color.feed_text_bg); - txtvPlaceholder.setBackgroundColor(bgColor); - } else { - txtvPlaceholder.setVisibility(View.INVISIBLE); - } - } + setPlaceholderVisibility(placeholder.get(), textAndImageCombined); ImageView ivCover = cover.get(); ivCover.setImageDrawable(resource); } @@ -124,5 +128,16 @@ public class CoverLoader { ImageView ivCover = cover.get(); ivCover.setImageDrawable(placeholder); } + + static void setPlaceholderVisibility(TextView placeholder, boolean textAndImageCombined) { + if (placeholder != null) { + if (textAndImageCombined) { + int bgColor = placeholder.getContext().getResources().getColor(R.color.feed_text_bg); + placeholder.setBackgroundColor(bgColor); + } else { + placeholder.setVisibility(View.INVISIBLE); + } + } + } } } \ No newline at end of file diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java index 10f841366..83abd4091 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java @@ -342,7 +342,7 @@ public class NavListAdapter extends RecyclerView.Adapter if (folder.isOpen) { holder.count.setVisibility(View.GONE); } - + Glide.with(context).clear(holder.image); holder.image.setImageResource(ThemeUtils.getDrawableFromAttr(context, R.attr.ic_folder)); holder.failure.setVisibility(View.GONE); } diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsAdapter.java index d07d3cbe4..879058eab 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsAdapter.java @@ -118,13 +118,8 @@ public class SubscriptionsAdapter extends BaseAdapter implements AdapterView.OnI .withCoverView(holder.imageView) .load(); } else { - String resourceEntryName = mainActivityRef.get().getResources() - .getResourceEntryName(ThemeUtils.getDrawableFromAttr(mainActivityRef.get(), R.attr.ic_folder)); - String iconUri = ContentResolver.SCHEME_ANDROID_RESOURCE + "://" - + mainActivityRef.get().getPackageName() + "/raw/" - + resourceEntryName; new CoverLoader(mainActivityRef.get()) - .withUri(iconUri) + .withResource(ThemeUtils.getDrawableFromAttr(mainActivityRef.get(), R.attr.ic_folder)) .withPlaceholderView(holder.feedTitle, true) .withCoverView(holder.imageView) .load();