From ec668ad26a53932a9943fdb487c663718d12cce7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ensar=20Saraj=C4=8Di=C4=87?= Date: Wed, 20 Sep 2023 13:06:14 +0200 Subject: [PATCH] Remove notifyDataSetChanged uses to restore item animations --- .../notes/pro/adapters/ChecklistAdapter.kt | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/ChecklistAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/ChecklistAdapter.kt index 0e5484ff..0c7193a3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/ChecklistAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/ChecklistAdapter.kt @@ -78,13 +78,9 @@ class ChecklistAdapter( override fun getItemKeyPosition(key: Int) = items.indexOfFirst { it.id == key } - override fun onActionModeCreated() { - notifyDataSetChanged() - } + override fun onActionModeCreated() {} - override fun onActionModeDestroyed() { - notifyDataSetChanged() - } + override fun onActionModeDestroyed() {} override fun prepareActionMode(menu: Menu) { val selectedItems = getSelectedItems() @@ -161,27 +157,35 @@ class ChecklistAdapter( private fun moveSelectedItemsToTop() { activity.config.sorting = SORT_BY_CUSTOM + val movedPositions = mutableListOf() selectedKeys.reversed().forEach { checklistId -> val position = items.indexOfFirst { it.id == checklistId } val tempItem = items[position] items.removeAt(position) + movedPositions.add(position) items.add(0, tempItem) } - notifyDataSetChanged() + movedPositions.forEach { + notifyItemMoved(it, 0) + } listener?.saveChecklist() } private fun moveSelectedItemsToBottom() { activity.config.sorting = SORT_BY_CUSTOM + val movedPositions = mutableListOf() selectedKeys.forEach { checklistId -> val position = items.indexOfFirst { it.id == checklistId } val tempItem = items[position] items.removeAt(position) + movedPositions.add(position) items.add(items.size, tempItem) } - notifyDataSetChanged() + movedPositions.forEach { + notifyItemMoved(it, items.size - 1) + } listener?.saveChecklist() }