From 0ffa0c34f0c15953bf38542025a7b08954e384bc Mon Sep 17 00:00:00 2001 From: tarsin Date: Fri, 6 Jan 2023 18:27:54 +0800 Subject: [PATCH] Remove some NotifyDataSetChanged usage --- .../hippo/ehviewer/ui/scene/GalleryListScene.kt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt index 8ca882492..8e68e43f1 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt @@ -233,7 +233,6 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H showSearchBar() } - @SuppressLint("NotifyDataSetChanged") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mDownloadManager.addDownloadInfoListener(mDownloadInfoListener) @@ -1413,7 +1412,6 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H ) } - @SuppressLint("NotifyDataSetChanged") override fun onMove( recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, @@ -1424,14 +1422,17 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H if (fromPosition == toPosition) { return false } - EhDB.moveQuickSearch(fromPosition, toPosition) - val item = mQuickSearchList.removeAt(fromPosition) - mQuickSearchList.add(toPosition, item) - mAdapter.notifyDataSetChanged() + lifecycleScope.launchIO { + EhDB.moveQuickSearch(fromPosition, toPosition) + val item = mQuickSearchList.removeAt(fromPosition) + mQuickSearchList.add(toPosition, item) + withUIContext { + mAdapter.notifyItemMoved(fromPosition, toPosition) + } + } return true } - @SuppressLint("NotifyDataSetChanged") override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) { val position = viewHolder.bindingAdapterPosition val quickSearch = mQuickSearchList[position] @@ -1439,7 +1440,7 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H EhDB.deleteQuickSearch(quickSearch) mQuickSearchList.removeAt(position) withUIContext { - mAdapter.notifyDataSetChanged() + mAdapter.notifyItemRemoved(position) } } }