summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java35
1 files changed, 35 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java
index 3e84e090a..cb74bb169 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java
@@ -1,6 +1,7 @@
package de.danoeh.antennapod.adapter;
import android.content.Context;
+import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -9,10 +10,15 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.feed.Chapter;
+import de.danoeh.antennapod.core.feed.util.ImageResourceUtils;
+import de.danoeh.antennapod.core.glide.ApGlideSettings;
import de.danoeh.antennapod.core.util.ChapterUtils;
import de.danoeh.antennapod.core.util.Converter;
+import de.danoeh.antennapod.core.util.EmbeddedChapterImage;
import de.danoeh.antennapod.core.util.IntentUtils;
import de.danoeh.antennapod.core.util.ThemeUtils;
import de.danoeh.antennapod.core.util.playback.Playable;
@@ -23,6 +29,7 @@ public class ChaptersListAdapter extends ArrayAdapter<Chapter> {
private Playable media;
private final Callback callback;
private int currentChapterIndex = -1;
+ private boolean hasImages = false;
public ChaptersListAdapter(Context context, int textViewResourceId, Callback callback) {
super(context, textViewResourceId);
@@ -31,6 +38,15 @@ public class ChaptersListAdapter extends ArrayAdapter<Chapter> {
public void setMedia(Playable media) {
this.media = media;
+ hasImages = false;
+ if (media.getChapters() != null) {
+ for (Chapter chapter : media.getChapters()) {
+ if (!ignoreChapter(chapter) && !TextUtils.isEmpty(chapter.getImageUrl())) {
+ hasImages = true;
+ }
+ }
+ }
+ notifyDataSetChanged();
}
@NonNull
@@ -51,6 +67,7 @@ public class ChaptersListAdapter extends ArrayAdapter<Chapter> {
holder.title = convertView.findViewById(R.id.txtvTitle);
holder.start = convertView.findViewById(R.id.txtvStart);
holder.link = convertView.findViewById(R.id.txtvLink);
+ holder.image = convertView.findViewById(R.id.imgvCover);
holder.duration = convertView.findViewById(R.id.txtvDuration);
holder.secondaryActionButton = convertView.findViewById(R.id.secondaryActionButton);
holder.secondaryActionIcon = convertView.findViewById(R.id.secondaryActionIcon);
@@ -94,6 +111,23 @@ public class ChaptersListAdapter extends ArrayAdapter<Chapter> {
holder.view.setBackgroundColor(ContextCompat.getColor(getContext(), android.R.color.transparent));
}
+ if (hasImages) {
+ holder.image.setVisibility(View.VISIBLE);
+ if (TextUtils.isEmpty(sc.getImageUrl())) {
+ Glide.with(getContext()).clear(holder.image);
+ } else {
+ Glide.with(getContext())
+ .load(EmbeddedChapterImage.getModelFor(media, position))
+ .apply(new RequestOptions()
+ .diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
+ .dontAnimate()
+ .fitCenter())
+ .into(holder.image);
+ }
+ } else {
+ holder.image.setVisibility(View.GONE);
+ }
+
return convertView;
}
@@ -103,6 +137,7 @@ public class ChaptersListAdapter extends ArrayAdapter<Chapter> {
TextView start;
TextView link;
TextView duration;
+ ImageView image;
View secondaryActionButton;
ImageView secondaryActionIcon;
}