@@ -2,38 +2,67 @@ package com.simplemobiletools.notes.pro.dialogs
22
33import android.app.Activity
44import android.content.DialogInterface.BUTTON_POSITIVE
5+ import android.view.KeyEvent
6+ import android.view.View
7+ import android.view.ViewGroup
8+ import android.view.inputmethod.EditorInfo
9+ import android.widget.EditText
510import androidx.appcompat.app.AlertDialog
6- import com.simplemobiletools.commons.extensions.setupDialogStuff
7- import com.simplemobiletools.commons.extensions.showKeyboard
8- import com.simplemobiletools.commons.extensions.toast
9- import com.simplemobiletools.commons.extensions.value
11+ import com.simplemobiletools.commons.extensions.*
1012import com.simplemobiletools.notes.pro.R
13+ import com.simplemobiletools.notes.pro.extensions.config
1114import kotlinx.android.synthetic.main.dialog_new_checklist_item.view.*
15+ import kotlinx.android.synthetic.main.item_add_checklist.view.*
1216
1317class NewChecklistItemDialog (val activity : Activity , callback : (titles: ArrayList <String >) -> Unit ) {
14- init {
15- val view = activity.layoutInflater.inflate(R .layout.dialog_new_checklist_item, null )
18+ private val titles = mutableListOf<EditText >()
19+ private val textColor = activity.config.textColor
20+ private val view: ViewGroup = activity.layoutInflater.inflate(R .layout.dialog_new_checklist_item, null ) as ViewGroup
1621
22+ init {
23+ addNewEditText()
24+ view.add_item.applyColorFilter(activity.getAdjustedPrimaryColor())
25+ view.add_item.background.applyColorFilter(textColor)
26+ view.add_item.setOnClickListener {
27+ addNewEditText()
28+ }
1729 AlertDialog .Builder (activity)
18- .setPositiveButton(R .string.ok, null )
19- .setNegativeButton(R .string.cancel, null )
20- .create().apply {
21- activity.setupDialogStuff(view, this , R .string.add_new_checklist_items) {
22- showKeyboard(view.checklist_item_title_1)
23- getButton(BUTTON_POSITIVE ).setOnClickListener {
24- val title1 = view.checklist_item_title_1.value
25- val title2 = view.checklist_item_title_2.value
26- val title3 = view.checklist_item_title_3.value
27- when {
28- title1.isEmpty() && title2.isEmpty() && title3.isEmpty() -> activity.toast(R .string.empty_name)
29- else -> {
30- val titles = arrayListOf (title1, title2, title3).filter { it.isNotEmpty() }.toMutableList() as ArrayList <String >
31- callback(titles)
32- dismiss()
33- }
30+ .setPositiveButton(R .string.ok, null )
31+ .setNegativeButton(R .string.cancel, null )
32+ .create().apply {
33+ activity.setupDialogStuff(view, this , R .string.add_new_checklist_items) {
34+ showKeyboard(titles.first())
35+ getButton(BUTTON_POSITIVE ).setOnClickListener {
36+ when {
37+ titles.all { it.text.isEmpty() } -> activity.toast(R .string.empty_name)
38+ else -> {
39+ val titles = titles.map { it.text.toString() }.filter { it.isNotEmpty() }.toMutableList() as ArrayList <String >
40+ callback(titles)
41+ dismiss()
3442 }
3543 }
3644 }
3745 }
46+ }
47+ }
48+
49+ private fun addNewEditText () {
50+ activity.layoutInflater.inflate(R .layout.item_add_checklist, null ).apply {
51+ title_edit_text.setOnEditorActionListener { _, actionId, _ ->
52+ if (actionId == EditorInfo .IME_ACTION_NEXT || actionId == EditorInfo .IME_ACTION_DONE || actionId == KeyEvent .KEYCODE_ENTER ) {
53+ addNewEditText()
54+ true
55+ } else {
56+ false
57+ }
58+ }
59+ titles.add(title_edit_text)
60+ view.checklist_holder.addView(this )
61+ activity.updateTextColors(view.checklist_holder)
62+ view.dialog_holder.post {
63+ view.dialog_holder.fullScroll(View .FOCUS_DOWN )
64+ activity.showKeyboard(title_edit_text)
65+ }
66+ }
3867 }
3968}
0 commit comments