From 2611758758b4ac7ef0fc88c2a78539ef4b8059c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ensar=20Saraj=C4=8Di=C4=87?= Date: Wed, 20 Sep 2023 11:49:33 +0200 Subject: [PATCH] Wait for DB updates before refreshing checklist items --- .../notes/pro/adapters/ChecklistAdapter.kt | 7 ++++--- .../notes/pro/fragments/ChecklistFragment.kt | 7 ++++--- .../notes/pro/interfaces/ChecklistItemsListener.kt | 2 +- 3 files changed, 9 insertions(+), 7 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 e8869376..0e5484ff 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 @@ -152,9 +152,10 @@ class ChecklistAdapter( positions.sortDescending() removeSelectedItems(positions) - listener?.saveChecklist() - if (items.isEmpty()) { - listener?.refreshItems() + listener?.saveChecklist { + if (items.isEmpty()) { + listener.refreshItems() + } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/ChecklistFragment.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/ChecklistFragment.kt index 1d0e83cf..04003ed7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/ChecklistFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/ChecklistFragment.kt @@ -190,7 +190,7 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener { } } - private fun saveNote(refreshIndex: Int = -1) { + private fun saveNote(refreshIndex: Int = -1, callback: () -> Unit = {}) { if (note == null) { return } @@ -215,6 +215,7 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener { ensureBackgroundThread { saveNoteValue(note!!, note!!.value) context?.updateWidgets() + activity?.runOnUiThread(callback) } } } @@ -235,8 +236,8 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener { fun getChecklistItems() = Gson().toJson(items) - override fun saveChecklist() { - saveNote() + override fun saveChecklist(callback: () -> Unit) { + saveNote(callback = callback) } override fun refreshItems() { diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/interfaces/ChecklistItemsListener.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/interfaces/ChecklistItemsListener.kt index 04667b6b..01766222 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/interfaces/ChecklistItemsListener.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/interfaces/ChecklistItemsListener.kt @@ -3,5 +3,5 @@ package com.simplemobiletools.notes.pro.interfaces interface ChecklistItemsListener { fun refreshItems() - fun saveChecklist() + fun saveChecklist(callback: () -> Unit = {}) }