Fixed item touch helper memory leak

This commit is contained in:
M66B
2023-11-12 16:05:15 +01:00
parent f6e80d917d
commit 85ee7f1d5d
2 changed files with 6 additions and 11 deletions

View File

@@ -370,7 +370,6 @@ public class FragmentMessages extends FragmentBase
private boolean navigating = false;
private AdapterMessage adapter;
private ItemTouchHelper itemTouchHelper;
private AdapterMessage.ViewType viewType;
private SelectionPredicateMessage selectionPredicate = null;
@@ -2043,13 +2042,10 @@ public class FragmentMessages extends FragmentBase
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
});
} else {
itemTouchHelper = new ItemTouchHelper(touchHelper);
itemTouchHelper.attachToRecyclerView(rvMessage);
}
} else
new ItemTouchHelper(touchHelper).attachToRecyclerView(rvMessage);
} else {
itemTouchHelper = new ItemTouchHelper(touchHelper);
itemTouchHelper.attachToRecyclerView(rvMessage);
new ItemTouchHelper(touchHelper).attachToRecyclerView(rvMessage);
selectionPredicate = new SelectionPredicateMessage(rvMessage);
@@ -3252,9 +3248,10 @@ public class FragmentMessages extends FragmentBase
}
private void redraw(RecyclerView.ViewHolder vh) {
if (vh != null && itemTouchHelper != null)
if (vh != null)
try {
itemTouchHelper.onChildViewDetachedFromWindow(vh.itemView);
rvMessage.getLayoutManager().detachView(vh.itemView);
rvMessage.getLayoutManager().removeDetachedView(vh.itemView);
} catch (Throwable ex) {
Log.e(ex);
}