Implement deleting done checklist items

This commit is contained in:
tanvirahmod
2021-01-04 18:43:54 +06:00
parent ab9407ee7a
commit 75da88ba33
33 changed files with 83 additions and 26 deletions

View File

@ -61,7 +61,7 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener {
try {
val checklistItemType = object : TypeToken<List<ChecklistItem>>() {}.type
items = Gson().fromJson<ArrayList<ChecklistItem>>(storedNote.value, checklistItemType)
?: ArrayList(1)
?: ArrayList(1)
} catch (e: Exception) {
migrateCheckListOnFailure(storedNote)
}
@ -81,9 +81,9 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener {
note.value.split("\n").map { it.trim() }.filter { it.isNotBlank() }.forEachIndexed { index, value ->
items.add(ChecklistItem(
id = index,
title = value,
isDone = false
id = index,
title = value,
isDone = false
))
}
@ -135,18 +135,14 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener {
}
private fun setupAdapter() {
with(view) {
fragment_placeholder.beVisibleIf(items.isEmpty())
fragment_placeholder_2.beVisibleIf(items.isEmpty())
checklist_list.beVisibleIf(items.isNotEmpty())
}
updateUIVisibility()
ChecklistAdapter(
activity = activity as SimpleActivity,
items = items,
listener = this,
recyclerView = view.checklist_list,
showIcons = true
activity = activity as SimpleActivity,
items = items,
listener = this,
recyclerView = view.checklist_list,
showIcons = true
) { item ->
val clickedNote = item as ChecklistItem
clickedNote.isDone = !clickedNote.isDone
@ -176,6 +172,21 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener {
}
}
fun removeDoneItems() {
items.removeIf { it.isDone }
updateUIVisibility()
view.checklist_list.adapter?.notifyDataSetChanged()
saveNote()
}
private fun updateUIVisibility() {
with(view) {
fragment_placeholder.beVisibleIf(items.isEmpty())
fragment_placeholder_2.beVisibleIf(items.isEmpty())
checklist_list.beVisibleIf(items.isNotEmpty())
}
}
override fun saveChecklist() {
saveNote()
}