From 622778e88229ec430f45b1527a3d342b79f8a6d5 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 26 Dec 2018 23:50:41 +0100 Subject: [PATCH] allow adding 3 checklist items at once --- .../pro/dialogs/NewChecklistItemDialog.kt | 15 ++++++++----- .../pro/dialogs/RenameChecklistItemDialog.kt | 2 +- .../notes/pro/fragments/ChecklistFragment.kt | 11 +++++++--- .../res/layout/dialog_new_checklist_item.xml | 22 +++++++++++++++++-- 4 files changed, 38 insertions(+), 12 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/NewChecklistItemDialog.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/NewChecklistItemDialog.kt index a4613df1..da1183e0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/NewChecklistItemDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/NewChecklistItemDialog.kt @@ -10,7 +10,7 @@ import com.simplemobiletools.commons.extensions.value import com.simplemobiletools.notes.pro.R import kotlinx.android.synthetic.main.dialog_new_checklist_item.view.* -class NewChecklistItemDialog(val activity: Activity, callback: (title: String) -> Unit) { +class NewChecklistItemDialog(val activity: Activity, callback: (titles: ArrayList) -> Unit) { init { val view = activity.layoutInflater.inflate(R.layout.dialog_new_checklist_item, null) @@ -18,14 +18,17 @@ class NewChecklistItemDialog(val activity: Activity, callback: (title: String) - .setPositiveButton(R.string.ok, null) .setNegativeButton(R.string.cancel, null) .create().apply { - activity.setupDialogStuff(view, this, R.string.add_new_checklist_item) { - showKeyboard(view.checklist_item_title) + activity.setupDialogStuff(view, this, R.string.add_new_checklist_items) { + showKeyboard(view.checklist_item_title_1) getButton(BUTTON_POSITIVE).setOnClickListener { - val title = view.checklist_item_title.value + val title1 = view.checklist_item_title_1.value + val title2 = view.checklist_item_title_2.value + val title3 = view.checklist_item_title_3.value when { - title.isEmpty() -> activity.toast(R.string.empty_name) + title1.isEmpty() && title2.isEmpty() && title3.isEmpty() -> activity.toast(R.string.empty_name) else -> { - callback(title) + val titles = arrayListOf(title1, title2, title3).filter { it.isNotEmpty() }.toMutableList() as ArrayList + callback(titles) dismiss() } } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/RenameChecklistItemDialog.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/RenameChecklistItemDialog.kt index 78704c06..c6851bf9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/RenameChecklistItemDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/RenameChecklistItemDialog.kt @@ -8,7 +8,7 @@ import com.simplemobiletools.commons.extensions.showKeyboard import com.simplemobiletools.commons.extensions.toast import com.simplemobiletools.commons.extensions.value import com.simplemobiletools.notes.pro.R -import kotlinx.android.synthetic.main.dialog_new_checklist_item.view.* +import kotlinx.android.synthetic.main.dialog_rename_checklist_item.view.* class RenameChecklistItemDialog(val activity: Activity, val oldTitle: String, callback: (newTitle: String) -> Unit) { init { 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 b91fda2e..7ba06b53 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 @@ -80,12 +80,17 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener { private fun showNewItemDialog() { NewChecklistItemDialog(activity as SimpleActivity) { - val currentMaxId = items.maxBy { it.id }?.id ?: 0 - val checklistItem = ChecklistItem(currentMaxId + 1, it, false) - items.add(checklistItem) + var currentMaxId = items.maxBy { it.id }?.id ?: 0 + it.forEach { + val checklistItem = ChecklistItem(currentMaxId + 1, it, false) + items.add(checklistItem) + currentMaxId++ + } saveNote() if (items.size == 1) { setupAdapter() + } else { + (view.checklist_list.adapter as? ChecklistAdapter)?.notifyDataSetChanged() } } } diff --git a/app/src/main/res/layout/dialog_new_checklist_item.xml b/app/src/main/res/layout/dialog_new_checklist_item.xml index 568bb066..2113c7b2 100644 --- a/app/src/main/res/layout/dialog_new_checklist_item.xml +++ b/app/src/main/res/layout/dialog_new_checklist_item.xml @@ -10,10 +10,28 @@ android:paddingRight="@dimen/activity_margin"> + + + +