sleep: fix date picker usage

The time the date picker uses needs to be updated.
Also make some variable names more logical.
This commit is contained in:
2026-06-18 14:28:28 +02:00
parent c75d4ed8a7
commit ddcc2fc492

View File

@@ -481,15 +481,15 @@ class MainActivity : AppCompatActivity() {
d.setTitle(event.getDialogTitle(this)) d.setTitle(event.getDialogTitle(this))
d.setView(dialogView) d.setView(dialogView)
val durationTextView = dialogView.findViewById<TextView>(R.id.dialog_date_duration) val durationTV = dialogView.findViewById<TextView>(R.id.dialog_date_duration)
val datePickerBegin = dialogView.findViewById<TextView>(R.id.dialog_date_picker_begin) val datePickerBeginTV = dialogView.findViewById<TextView>(R.id.dialog_date_picker_begin)
val datePickerEnd = dialogView.findViewById<TextView>(R.id.dialog_date_picker_end) val datePickerEndTV = dialogView.findViewById<TextView>(R.id.dialog_date_picker_end)
val dateDelimiter = dialogView.findViewById<TextView>(R.id.dialog_date_range_delimiter) val dateDelimiterTV = dialogView.findViewById<TextView>(R.id.dialog_date_range_delimiter)
val durationButtons = dialogView.findViewById<LinearLayout>(R.id.duration_buttons) val durationButtons = dialogView.findViewById<LinearLayout>(R.id.duration_buttons)
val durationNowButton = dialogView.findViewById<Button>(R.id.dialog_date_duration_now) val durationNowButton = dialogView.findViewById<Button>(R.id.dialog_date_duration_now)
val durationClearButton = dialogView.findViewById<Button>(R.id.dialog_date_duration_clear) val durationClearButton = dialogView.findViewById<Button>(R.id.dialog_date_duration_clear)
val currentDurationTextColor = durationTextView.currentTextColor val currentDurationTextColor = durationTV.currentTextColor
val invalidDurationTextColor = ContextCompat.getColor(this, R.color.danger) val invalidDurationTextColor = ContextCompat.getColor(this, R.color.danger)
// in seconds // in seconds
@@ -506,59 +506,59 @@ class MainActivity : AppCompatActivity() {
} }
fun updateFields() { fun updateFields() {
datePickerBegin.text = DateUtils.formatDateTime(durationStart) datePickerBeginTV.text = DateUtils.formatDateTime(durationStart)
datePickerEnd.text = DateUtils.formatDateTime(durationEnd) datePickerEndTV.text = DateUtils.formatDateTime(durationEnd)
durationTextView.setTextColor(currentDurationTextColor) dateTimePicker(durationStart, datePickerBeginTV) { pickedTime: Long ->
durationStart = pickedTime
if (datePickerEndTV.visibility == View.GONE) {
durationEnd = pickedTime
}
updateFields()
}
dateTimePicker(durationEnd, datePickerEndTV) { pickedTime: Long ->
durationEnd = pickedTime
updateFields()
}
durationTV.setTextColor(currentDurationTextColor)
val duration = durationEnd - durationStart val duration = durationEnd - durationStart
if (duration == 0L) { if (duration == 0L) {
// event is ongoing // event is ongoing
durationTextView.text = "💤" durationTV.text = "💤"
dateDelimiter.visibility = View.GONE dateDelimiterTV.visibility = View.GONE
datePickerEnd.visibility = View.GONE datePickerEndTV.visibility = View.GONE
} else { } else {
durationTextView.text = DateUtils.formatTimeDuration(applicationContext, duration) durationTV.text = DateUtils.formatTimeDuration(applicationContext, duration)
if (!isValidTimeSpan(durationStart, durationEnd)) { if (!isValidTimeSpan(durationStart, durationEnd)) {
durationTextView.setTextColor(invalidDurationTextColor) durationTV.setTextColor(invalidDurationTextColor)
} }
dateDelimiter.visibility = View.VISIBLE dateDelimiterTV.visibility = View.VISIBLE
datePickerEnd.visibility = View.VISIBLE datePickerEndTV.visibility = View.VISIBLE
} }
datePickerBegin.setTextColor(if (isValidTime(durationStart)) { currentDurationTextColor } else { invalidDurationTextColor }) val colorBegin = if (isValidTime(durationStart)) { currentDurationTextColor } else { invalidDurationTextColor }
datePickerEnd.setTextColor(if (isValidTime(durationEnd)) { currentDurationTextColor } else { invalidDurationTextColor }) datePickerBeginTV.setTextColor(colorBegin)
}
val pickedDateTimeBegin = dateTimePicker(event.time, datePickerBegin) { pickedTime: Long -> val colorEnd = if (isValidTime(durationEnd)) { currentDurationTextColor } else { invalidDurationTextColor }
durationStart = pickedTime datePickerEndTV.setTextColor(colorEnd)
if (datePickerEnd.visibility == View.GONE) {
durationEnd = pickedTime
}
updateFields()
}
val pickedDateTimeEnd = dateTimePicker(event.time + event.quantity, datePickerEnd) { pickedTime: Long ->
durationEnd = pickedTime
updateFields()
} }
if (showTime) { if (showTime) {
dateDelimiter.visibility = View.GONE dateDelimiterTV.visibility = View.GONE
datePickerEnd.visibility = View.GONE datePickerEndTV.visibility = View.GONE
durationTextView.visibility = View.GONE durationTV.visibility = View.GONE
durationButtons.visibility = View.GONE durationButtons.visibility = View.GONE
//d.setMessage("") //d.setMessage("")
} else { } else {
dateDelimiter.visibility = View.VISIBLE dateDelimiterTV.visibility = View.VISIBLE
datePickerEnd.visibility = View.VISIBLE datePickerEndTV.visibility = View.VISIBLE
durationTextView.visibility = View.VISIBLE durationTV.visibility = View.VISIBLE
durationButtons.visibility = View.VISIBLE durationButtons.visibility = View.VISIBLE
d.setMessage(event.getDialogMessage(this)) d.setMessage(event.getDialogMessage(this))
} }
durationStart = pickedDateTimeBegin.time.time / 1000
durationEnd = pickedDateTimeEnd.time.time / 1000
updateFields() updateFields()
durationClearButton.setOnClickListener { durationClearButton.setOnClickListener {