Merge pull request #388 from tanvir-ahmod/fix_382

Fix #382 , Implement deleting done checklist items
This commit is contained in:
Tibor Kaputa
2021-01-10 19:07:24 +01:00
committed by GitHub
33 changed files with 60 additions and 5 deletions

View File

@ -153,6 +153,7 @@ class MainActivity : SimpleActivity() {
findItem(R.id.delete_note).isVisible = multipleNotesExist
findItem(R.id.export_all_notes).isVisible = multipleNotesExist && hasPermission(PERMISSION_WRITE_STORAGE)
findItem(R.id.open_search).isVisible = !isCurrentItemChecklist()
findItem(R.id.remove_done_items).isVisible = isCurrentItemChecklist()
findItem(R.id.import_folder).isVisible = hasPermission(PERMISSION_READ_STORAGE)
saveNoteButton = findItem(R.id.save_note)
@ -185,6 +186,7 @@ class MainActivity : SimpleActivity() {
R.id.delete_note -> displayDeleteNotePrompt()
R.id.settings -> startActivity(Intent(applicationContext, SettingsActivity::class.java))
R.id.about -> launchAbout()
R.id.remove_done_items -> removeDoneItems()
else -> return super.onOptionsItemSelected(item)
}
return true
@ -1058,4 +1060,8 @@ class MainActivity : SimpleActivity() {
checkWhatsNew(this, BuildConfig.VERSION_CODE)
}
}
private fun removeDoneItems() {
getPagerAdapter().removeDoneCheckListItems(view_pager.currentItem)
}
}

View File

@ -89,4 +89,8 @@ class NotesPagerAdapter(fm: FragmentManager, val notes: List<Note>, val activity
fragments[position] = fragment
return fragment
}
fun removeDoneCheckListItems(position: Int) {
(fragments[position] as? ChecklistFragment)?.removeDoneItems()
}
}

View File

@ -135,11 +135,7 @@ 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,
@ -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()
}