-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMapEntryDialog.kt
More file actions
63 lines (56 loc) · 2.26 KB
/
Copy pathMapEntryDialog.kt
File metadata and controls
63 lines (56 loc) · 2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package dev.arkbuilders.sample.storage
import android.app.Dialog
import android.os.Bundle
import android.view.View
import android.view.WindowManager
import android.view.inputmethod.EditorInfo
import androidx.fragment.app.DialogFragment
import dev.arkbuilders.sample.R
import dev.arkbuilders.sample.databinding.DialogMapEntryBinding
class MapEntryDialog(private val isDelete: Boolean,
private val onDone: ((key: String, value: String?) -> Unit)? = null)
: DialogFragment() {
private lateinit var mBinding: DialogMapEntryBinding
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
mBinding = DialogMapEntryBinding.inflate(layoutInflater)
val dialog = Dialog(requireContext(), R.style.SampleDialog)
dialog.window?.setLayout(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.WRAP_CONTENT
)
dialog.setContentView(mBinding.root)
initView()
return dialog
}
private fun initView() {
if (isDelete) {
mBinding.tvTitle.text = getString(R.string.delete_map_entry)
mBinding.edtValue.visibility = View.GONE
mBinding.edtValue.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
onDone?.invoke(mBinding.edtKey.text.toString(), null)
dismiss()
return@setOnEditorActionListener true
}
false
}
} else {
mBinding.tvTitle.text = getString(R.string.set_map_entry)
mBinding.edtValue.visibility = View.VISIBLE
mBinding.edtValue.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
onDone?.invoke(mBinding.edtKey.text.toString(), mBinding.edtValue.text.toString())
return@setOnEditorActionListener true
}
false
}
}
mBinding.btnDone.setOnClickListener {
onDone?.invoke(mBinding.edtKey.text.toString(), mBinding.edtValue.text.toString())
dismiss()
}
mBinding.ivClose.setOnClickListener {
dismiss()
}
}
}