Merge pull request #4231 from ByteHamster/garbage-collect
Fixed leaking fragments
This commit is contained in:
commit
04099e7efa
@ -86,6 +86,19 @@ public class EpisodeItemListAdapter extends RecyclerView.Adapter<EpisodeItemView
|
|||||||
protected void afterBindViewHolder(EpisodeItemViewHolder holder, int pos) {
|
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.
|
* {@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.
|
* Calling {@link #notifyItemChanged(int)} may bind the item to a new ViewHolder and execute a transition.
|
||||||
|
@ -39,7 +39,7 @@ import de.danoeh.antennapod.view.CircularProgressBar;
|
|||||||
public class EpisodeItemViewHolder extends RecyclerView.ViewHolder {
|
public class EpisodeItemViewHolder extends RecyclerView.ViewHolder {
|
||||||
private static final String TAG = "EpisodeItemViewHolder";
|
private static final String TAG = "EpisodeItemViewHolder";
|
||||||
|
|
||||||
private final View container;
|
public final View container;
|
||||||
public final ImageView dragHandle;
|
public final ImageView dragHandle;
|
||||||
private final TextView placeholder;
|
private final TextView placeholder;
|
||||||
private final ImageView cover;
|
private final ImageView cover;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user