summaryrefslogtreecommitdiff
path: root/app/src/main/java/de
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java13
-rw-r--r--app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java2
2 files changed, 14 insertions, 1 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 7099d6f3a..8efc89c9a 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java
@@ -86,6 +86,19 @@ public class EpisodeItemListAdapter extends RecyclerView.Adapter<EpisodeItemView
protected void afterBindViewHolder(EpisodeItemViewHolder holder, int pos) {
}
+ @Override
+ public void onViewRecycled(@NonNull EpisodeItemViewHolder holder) {
+ super.onViewRecycled(holder);
+ // Set all listeners to null. This is required to prevent leaking fragments that have set a listener.
+ // Activity -> recycledViewPool -> EpisodeItemViewHolder -> Listener -> Fragment (can not be garbage collected)
+ holder.itemView.setOnClickListener(null);
+ holder.secondaryActionButton.setOnClickListener(null);
+ holder.dragHandle.setOnTouchListener(null);
+ holder.coverHolder.setOnTouchListener(null);
+ holder.container.setOnCreateContextMenuListener(null);
+ holder.container.setOnLongClickListener(null);
+ }
+
/**
* {@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/view/viewholder/EpisodeItemViewHolder.java b/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java
index 55a3d1130..902e5094b 100644
--- a/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java
+++ b/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java
@@ -39,7 +39,7 @@ import de.danoeh.antennapod.view.CircularProgressBar;
public class EpisodeItemViewHolder extends RecyclerView.ViewHolder {
private static final String TAG = "EpisodeItemViewHolder";
- private final View container;
+ public final View container;
public final ImageView dragHandle;
private final TextView placeholder;
private final ImageView cover;