|
|
@ -47,6 +47,7 @@ class NumberPopup(
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
var onToggle: (Double, String) -> Unit = { _, _ -> }
|
|
|
|
var onToggle: (Double, String) -> Unit = { _, _ -> }
|
|
|
|
private val originalValue = value
|
|
|
|
private val originalValue = value
|
|
|
|
|
|
|
|
private lateinit var popup: PopupWindow
|
|
|
|
|
|
|
|
|
|
|
|
private val view = CheckmarkPopupBinding.inflate(LayoutInflater.from(context)).apply {
|
|
|
|
private val view = CheckmarkPopupBinding.inflate(LayoutInflater.from(context)).apply {
|
|
|
|
// Required for round corners
|
|
|
|
// Required for round corners
|
|
|
@ -78,26 +79,25 @@ class NumberPopup(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fun show() {
|
|
|
|
fun show() {
|
|
|
|
val popup = PopupWindow()
|
|
|
|
popup = PopupWindow()
|
|
|
|
popup.contentView = view.root
|
|
|
|
popup.contentView = view.root
|
|
|
|
popup.width = view.root.dp(POPUP_WIDTH).toInt()
|
|
|
|
popup.width = view.root.dp(POPUP_WIDTH).toInt()
|
|
|
|
popup.height = view.root.dp(POPUP_HEIGHT).toInt()
|
|
|
|
popup.height = view.root.dp(POPUP_HEIGHT).toInt()
|
|
|
|
popup.isFocusable = true
|
|
|
|
popup.isFocusable = true
|
|
|
|
popup.elevation = view.root.dp(24f)
|
|
|
|
popup.elevation = view.root.dp(24f)
|
|
|
|
popup.setOnDismissListener {
|
|
|
|
|
|
|
|
save()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
view.value.setOnKeyListener { _, keyCode, event ->
|
|
|
|
view.value.setOnKeyListener { _, keyCode, event ->
|
|
|
|
if (event.action == ACTION_DOWN && keyCode == KEYCODE_ENTER) {
|
|
|
|
if (event.action == ACTION_DOWN && keyCode == KEYCODE_ENTER) {
|
|
|
|
popup.dismiss()
|
|
|
|
save()
|
|
|
|
return@setOnKeyListener true
|
|
|
|
return@setOnKeyListener true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return@setOnKeyListener false
|
|
|
|
return@setOnKeyListener false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
view.saveBtn.setOnClickListener { popup.dismiss() }
|
|
|
|
view.saveBtn.setOnClickListener {
|
|
|
|
|
|
|
|
save()
|
|
|
|
|
|
|
|
}
|
|
|
|
view.skipBtnNumber.setOnClickListener {
|
|
|
|
view.skipBtnNumber.setOnClickListener {
|
|
|
|
view.value.setText((Entry.SKIP.toDouble() / 1000).toString())
|
|
|
|
view.value.setText((Entry.SKIP.toDouble() / 1000).toString())
|
|
|
|
popup.dismiss()
|
|
|
|
save()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
popup.showAtLocation(anchor, Gravity.CENTER, 0, 0)
|
|
|
|
popup.showAtLocation(anchor, Gravity.CENTER, 0, 0)
|
|
|
|
view.value.requestFocusWithKeyboard()
|
|
|
|
view.value.requestFocusWithKeyboard()
|
|
|
@ -108,5 +108,6 @@ class NumberPopup(
|
|
|
|
val value = view.value.text.toString().toDoubleOrNull() ?: originalValue
|
|
|
|
val value = view.value.text.toString().toDoubleOrNull() ?: originalValue
|
|
|
|
val notes = view.notes.text.toString()
|
|
|
|
val notes = view.notes.text.toString()
|
|
|
|
onToggle(value, notes)
|
|
|
|
onToggle(value, notes)
|
|
|
|
|
|
|
|
popup.dismiss()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|