diff options
author | H. Lehmann <ByteHamster@users.noreply.github.com> | 2020-03-17 15:41:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-17 15:41:24 +0100 |
commit | 54056dd8d95fe88d1a582c55e066778ce25eff50 (patch) | |
tree | 17eddd45c779ccb01c34e43dab06d0bd046e949d /app/src/main/java/de/danoeh/antennapod/adapter/FeedSearchResultAdapter.java | |
parent | 4e0e4baa056509536f34078bf15031d8c0c97053 (diff) | |
parent | 6066fef1f2a3f3b8d5c5d946c750d356429e75a8 (diff) | |
download | AntennaPod-54056dd8d95fe88d1a582c55e066778ce25eff50.zip |
Merge pull request #3937 from ByteHamster/recyclerview
Converted lists to RecyclerView
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.java | 76 |
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); + } + } +} |