summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/adapter/FeedSearchResultAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/adapter/FeedSearchResultAdapter.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/FeedSearchResultAdapter.java76
1 files changed, 76 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/FeedSearchResultAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/FeedSearchResultAdapter.java
new file mode 100644
index 000000000..2e5ba31c9
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/FeedSearchResultAdapter.java
@@ -0,0 +1,76 @@
+package de.danoeh.antennapod.adapter;
+
+import android.view.View;
+import android.view.ViewGroup;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
+import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.activity.MainActivity;
+import de.danoeh.antennapod.core.feed.Feed;
+import de.danoeh.antennapod.fragment.FeedItemlistFragment;
+import de.danoeh.antennapod.view.SquareImageView;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+public class FeedSearchResultAdapter extends RecyclerView.Adapter<FeedSearchResultAdapter.Holder> {
+
+ private final WeakReference<MainActivity> mainActivityRef;
+ private final List<Feed> data = new ArrayList<>();
+
+ public FeedSearchResultAdapter(MainActivity mainActivity) {
+ this.mainActivityRef = new WeakReference<>(mainActivity);
+ }
+
+ public void updateData(List<Feed> newData) {
+ data.clear();
+ data.addAll(newData);
+ notifyDataSetChanged();
+ }
+
+ @NonNull
+ @Override
+ public Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View convertView = View.inflate(mainActivityRef.get(), R.layout.searchlist_item_feed, null);
+ return new Holder(convertView);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull Holder holder, int position) {
+ final Feed podcast = data.get(position);
+ holder.imageView.setContentDescription(podcast.getTitle());
+ holder.imageView.setOnClickListener(v ->
+ mainActivityRef.get().loadChildFragment(FeedItemlistFragment.newInstance(podcast.getId())));
+
+ Glide.with(mainActivityRef.get())
+ .load(podcast.getImageUrl())
+ .apply(new RequestOptions()
+ .placeholder(R.color.light_gray)
+ .fitCenter()
+ .dontAnimate())
+ .into(holder.imageView);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return data.get(position).getId();
+ }
+
+ @Override
+ public int getItemCount() {
+ return data.size();
+ }
+
+ static class Holder extends RecyclerView.ViewHolder {
+ SquareImageView imageView;
+
+ public Holder(@NonNull View itemView) {
+ super(itemView);
+ imageView = itemView.findViewById(R.id.discovery_cover);
+ imageView.setDirection(SquareImageView.DIRECTION_HEIGHT);
+ }
+ }
+}