|
|
@ -30,6 +30,7 @@ class NumberDialog : AppCompatDialogFragment() {
|
|
|
|
|
|
|
|
|
|
|
|
private var originalNotes: String = ""
|
|
|
|
private var originalNotes: String = ""
|
|
|
|
private var originalValue: Double = 0.0
|
|
|
|
private var originalValue: Double = 0.0
|
|
|
|
|
|
|
|
private var wasSaved = false
|
|
|
|
private lateinit var view: CheckmarkPopupBinding
|
|
|
|
private lateinit var view: CheckmarkPopupBinding
|
|
|
|
|
|
|
|
|
|
|
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
|
|
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
|
|
@ -60,26 +61,26 @@ class NumberDialog : AppCompatDialogFragment() {
|
|
|
|
)
|
|
|
|
)
|
|
|
|
view.value.setOnKeyListener { _, keyCode, event ->
|
|
|
|
view.value.setOnKeyListener { _, keyCode, event ->
|
|
|
|
if (event.action == MotionEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
|
|
|
|
if (event.action == MotionEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
|
|
|
|
save()
|
|
|
|
saveAndDismiss()
|
|
|
|
return@setOnKeyListener true
|
|
|
|
return@setOnKeyListener true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return@setOnKeyListener false
|
|
|
|
return@setOnKeyListener false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
view.saveBtn.setOnClickListener {
|
|
|
|
view.saveBtn.setOnClickListener {
|
|
|
|
save()
|
|
|
|
saveAndDismiss()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
view.skipBtnNumber.setOnClickListener {
|
|
|
|
view.skipBtnNumber.setOnClickListener {
|
|
|
|
view.value.setText(DecimalFormat("#.###").format((Entry.SKIP.toDouble() / 1000)))
|
|
|
|
view.value.setText(DecimalFormat("#.###").format((Entry.SKIP.toDouble() / 1000)))
|
|
|
|
save()
|
|
|
|
saveAndDismiss()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
view.unknownBtnNumber.setOnClickListener {
|
|
|
|
view.unknownBtnNumber.setOnClickListener {
|
|
|
|
view.value.setText(DecimalFormat("#.###").format((Entry.UNKNOWN.toDouble() / 1000)))
|
|
|
|
view.value.setText(DecimalFormat("#.###").format((Entry.UNKNOWN.toDouble() / 1000)))
|
|
|
|
save()
|
|
|
|
saveAndDismiss()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
view.notes.setOnEditorActionListener { v, actionId, event ->
|
|
|
|
view.notes.setOnEditorActionListener { v, actionId, event ->
|
|
|
|
save()
|
|
|
|
saveAndDismiss()
|
|
|
|
true
|
|
|
|
true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
view.value.requestFocusWithKeyboard()
|
|
|
|
view.value.requestFocusWithKeyboard()
|
|
|
@ -92,6 +93,13 @@ class NumberDialog : AppCompatDialogFragment() {
|
|
|
|
return dialog
|
|
|
|
return dialog
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onDestroyView() {
|
|
|
|
|
|
|
|
if (!wasSaved) {
|
|
|
|
|
|
|
|
save()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
super.onDestroyView()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun fixDecimalSeparator(view: CheckmarkPopupBinding) {
|
|
|
|
private fun fixDecimalSeparator(view: CheckmarkPopupBinding) {
|
|
|
|
// https://stackoverflow.com/a/34256139
|
|
|
|
// https://stackoverflow.com/a/34256139
|
|
|
|
val separator = DecimalFormatSymbols.getInstance().decimalSeparator
|
|
|
|
val separator = DecimalFormatSymbols.getInstance().decimalSeparator
|
|
|
@ -107,6 +115,11 @@ class NumberDialog : AppCompatDialogFragment() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fun saveAndDismiss() {
|
|
|
|
|
|
|
|
save()
|
|
|
|
|
|
|
|
requireDialog().dismiss()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fun save() {
|
|
|
|
fun save() {
|
|
|
|
var value = originalValue
|
|
|
|
var value = originalValue
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -123,6 +136,6 @@ class NumberDialog : AppCompatDialogFragment() {
|
|
|
|
val notes = view.notes.text.toString()
|
|
|
|
val notes = view.notes.text.toString()
|
|
|
|
val location = view.saveBtn.getCenter()
|
|
|
|
val location = view.saveBtn.getCenter()
|
|
|
|
onToggle(value, notes)
|
|
|
|
onToggle(value, notes)
|
|
|
|
requireDialog().dismiss()
|
|
|
|
wasSaved = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|