Skip to content

Commit 9cfa2cc

Browse files
committed
feat(tasks): uncheck all checked items
1 parent c60ce47 commit 9cfa2cc

5 files changed

Lines changed: 20 additions & 0 deletions

File tree

app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,7 @@ class MainActivity : SimpleActivity() {
269269
findItem(R.id.delete_note).isVisible = multipleNotesExist
270270
findItem(R.id.open_search).isVisible = !isCurrentItemChecklist
271271
findItem(R.id.remove_done_items).isVisible = isCurrentItemChecklist
272+
findItem(R.id.uncheck_done_items).isVisible = isCurrentItemChecklist
272273
findItem(R.id.sort_checklist).isVisible = isCurrentItemChecklist
273274
findItem(R.id.import_folder).isVisible = !isQPlus()
274275
findItem(R.id.lock_note).isVisible =
@@ -316,6 +317,7 @@ class MainActivity : SimpleActivity() {
316317
R.id.settings -> launchSettings()
317318
R.id.about -> launchAbout()
318319
R.id.remove_done_items -> fragment?.handleUnlocking { removeDoneItems() }
320+
R.id.uncheck_done_items -> fragment?.handleUnlocking { uncheckDoneItems() }
319321
R.id.sort_checklist -> fragment?.handleUnlocking { displaySortChecklistDialog() }
320322
else -> return@setOnMenuItemClickListener false
321323
}
@@ -1555,6 +1557,10 @@ class MainActivity : SimpleActivity() {
15551557
getPagerAdapter().removeDoneCheckListItems(binding.viewPager.currentItem)
15561558
}
15571559

1560+
private fun uncheckDoneItems() {
1561+
getPagerAdapter().uncheckCheckedItems(binding.viewPager.currentItem)
1562+
}
1563+
15581564
private fun displaySortChecklistDialog() {
15591565
SortChecklistDialog(this, mCurrentNote.id) {
15601566
getPagerAdapter().refreshChecklist(binding.viewPager.currentItem)

app/src/main/kotlin/org/fossify/notes/adapters/NotesPagerAdapter.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,10 @@ class NotesPagerAdapter(fm: FragmentManager, val notes: List<Note>, val activity
9696
(fragments[position] as? TasksFragment)?.removeCheckedItems()
9797
}
9898

99+
fun uncheckCheckedItems(position: Int) {
100+
(fragments[position] as? TasksFragment)?.uncheckCheckedItems()
101+
}
102+
99103
fun refreshChecklist(position: Int) {
100104
(fragments[position] as? TasksFragment)?.saveAndReload()
101105
}

app/src/main/kotlin/org/fossify/notes/fragments/TasksFragment.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,11 @@ class TasksFragment : NoteFragment(), TasksActionListener {
256256
setupAdapter()
257257
}
258258

259+
fun uncheckCheckedItems() {
260+
tasks = tasks.map { it.copy(isDone = false) }.toMutableList()
261+
saveAndReload()
262+
}
263+
259264
private fun updateUIVisibility() {
260265
binding.apply {
261266
fragmentPlaceholder.beVisibleIf(tasks.isEmpty())

app/src/main/res/menu/menu.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@
4040
android:id="@+id/remove_done_items"
4141
android:title="@string/delete_checked_items"
4242
app:showAsAction="never" />
43+
<item
44+
android:id="@+id/uncheck_done_items"
45+
android:title="@string/uncheck_checked_items"
46+
app:showAsAction="never" />
4347
<item
4448
android:id="@+id/sort_checklist"
4549
android:icon="@drawable/ic_sort_vector"

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
<string name="add_new_checklist_items">Add new checklist items</string>
7272
<string name="checklist_is_empty">The checklist is empty</string>
7373
<string name="delete_checked_items">Delete checked items</string>
74+
<string name="uncheck_checked_items">Uncheck checked items</string>
7475
<string name="add_to_the_top">Add to the top</string>
7576
<string name="use_for_this_checklist">Use for this checklist only</string>
7677
<plurals name="num_checked_items">

0 commit comments

Comments
 (0)