3 Commits

Author SHA1 Message Date
422ecfb970 MainActivity: inline nested function for dynamic menu 2026-02-22 13:48:26 +01:00
d8b73f94d8 MainActivity: generate dynamic menu from last two weeks 2026-02-22 13:48:26 +01:00
d06d226d09 LunaEvent: rework sleep event
Make the UI more flexible and
slightly easier to understand.
2026-02-22 13:48:22 +01:00

View File

@@ -454,11 +454,6 @@ class MainActivity : AppCompatActivity() {
return (timeBeginUnix <= timeEndUnix) && (timeEndUnix - timeBeginUnix) < (24 * 60 * 60)
}
// prevent printing of seconds
fun adjustToMinute(unixTime: Long): Long {
return unixTime - (unixTime % 60)
}
fun updateFields() {
datePickerBegin.text = DateUtils.formatDateTime(sleepStart)
datePickerEnd.text = DateUtils.formatDateTime(sleepEnd)
@@ -483,13 +478,13 @@ class MainActivity : AppCompatActivity() {
datePickerEnd.setTextColor(if (isValidTime(sleepEnd)) { currentDurationTextColor } else { invalidDurationTextColor })
}
val pickedDateTimeBegin = dateTimePicker(event.time, datePickerBegin) { time: Long ->
sleepStart = adjustToMinute(time)
val pickedDateTimeBegin = dateTimePicker(event.time, datePickerBegin) { pickedTime: Long ->
sleepStart = pickedTime
updateFields()
}
val pickedDateTimeEnd = dateTimePicker(event.time + event.quantity, datePickerEnd) { time: Long ->
sleepEnd = adjustToMinute(time)
val pickedDateTimeEnd = dateTimePicker(event.time + event.quantity, datePickerEnd) { pickedTime: Long ->
sleepEnd = pickedTime
updateFields()
}
@@ -507,8 +502,8 @@ class MainActivity : AppCompatActivity() {
d.setMessage(event.getDialogMessage(this))
}
sleepStart = adjustToMinute(pickedDateTimeBegin.time.time / 1000)
sleepEnd = adjustToMinute(pickedDateTimeEnd.time.time / 1000)
sleepStart = pickedDateTimeBegin.time.time / 1000
sleepEnd = pickedDateTimeEnd.time.time / 1000
updateFields()
@@ -528,8 +523,7 @@ class MainActivity : AppCompatActivity() {
}
durationNowButton.setOnClickListener {
val now = System.currentTimeMillis() / 1000
sleepEnd = adjustToMinute(now)
sleepEnd = System.currentTimeMillis() / 1000
updateFields()
}