summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/adapter
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/adapter')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java22
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java4
2 files changed, 21 insertions, 5 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java
index 2f39b599f..d391f1c54 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java
@@ -42,14 +42,25 @@ public class EpisodeItemListAdapter extends RecyclerView.Adapter<EpisodeItemView
notifyDataSetChanged();
}
+ @Override
+ public final int getItemViewType(int position) {
+ return R.id.episode_item_view_holder;
+ }
+
@NonNull
@Override
- public EpisodeItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ public final EpisodeItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new EpisodeItemViewHolder(mainActivityRef.get(), parent);
}
@Override
- public void onBindViewHolder(EpisodeItemViewHolder holder, int pos) {
+ public final void onBindViewHolder(EpisodeItemViewHolder holder, int pos) {
+ // Reset state of recycled views
+ holder.coverHolder.setVisibility(View.VISIBLE);
+ holder.dragHandle.setVisibility(View.GONE);
+
+ beforeBindViewHolder(holder, pos);
+
FeedItem item = episodes.get(pos);
holder.bind(item);
holder.itemView.setOnLongClickListener(v -> {
@@ -65,9 +76,16 @@ public class EpisodeItemListAdapter extends RecyclerView.Adapter<EpisodeItemView
}
});
holder.itemView.setOnCreateContextMenuListener(this);
+ afterBindViewHolder(holder, pos);
holder.hideSeparatorIfNecessary();
}
+ protected void beforeBindViewHolder(EpisodeItemViewHolder holder, int pos) {
+ }
+
+ protected void afterBindViewHolder(EpisodeItemViewHolder holder, int pos) {
+ }
+
/**
* {@link #notifyItemChanged(int)} is final, so we can not override.
* Calling {@link #notifyItemChanged(int)} may bind the item to a new ViewHolder and execute a transition.
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java
index 14f537eb0..428a968c6 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java
@@ -35,8 +35,7 @@ public class QueueRecyclerAdapter extends EpisodeItemListAdapter {
@Override
@SuppressLint("ClickableViewAccessibility")
- public void onBindViewHolder(EpisodeItemViewHolder holder, int pos) {
- super.onBindViewHolder(holder, pos);
+ protected void afterBindViewHolder(EpisodeItemViewHolder holder, int pos) {
View.OnTouchListener startDragTouchListener = (v1, event) -> {
if (MotionEventCompat.getActionMasked(event) == MotionEvent.ACTION_DOWN) {
Log.d(TAG, "startDrag()");
@@ -56,7 +55,6 @@ public class QueueRecyclerAdapter extends EpisodeItemListAdapter {
}
holder.isInQueue.setVisibility(View.GONE);
- holder.hideSeparatorIfNecessary();
}
@Override