From 3ae68ffa7b48a9cd753af4326c2a21aa44f9fff9 Mon Sep 17 00:00:00 2001 From: Moritz Warning Date: Mon, 2 Feb 2026 21:03:51 +0100 Subject: [PATCH] LunaEvent: rework sleep event Make the UI more flexible and slightly easier to understand. --- .../lunatracker/MainActivity.kt | 126 +++++++++++------- .../adapters/LunaEventRecyclerAdapter.kt | 7 +- .../lunatracker/entities/LunaEvent.kt | 14 +- app/src/main/java/utils/DateUtils.kt | 6 +- .../main/res/layout/dialog_edit_duration.xml | 51 +++++-- app/src/main/res/values/strings.xml | 8 +- 6 files changed, 146 insertions(+), 66 deletions(-) diff --git a/app/src/main/java/it/danieleverducci/lunatracker/MainActivity.kt b/app/src/main/java/it/danieleverducci/lunatracker/MainActivity.kt index 13d09ad..b7f15f3 100644 --- a/app/src/main/java/it/danieleverducci/lunatracker/MainActivity.kt +++ b/app/src/main/java/it/danieleverducci/lunatracker/MainActivity.kt @@ -421,86 +421,122 @@ class MainActivity : AppCompatActivity() { return dateTime } - fun addSleepEvent(event: LunaEvent) { - askSleepValue(event, true) { saveEvent(event) } + fun addDurationEvent(event: LunaEvent) { + askDurationEvent(event, true) { saveEvent(event) } } - fun askSleepValue(event: LunaEvent, hideDurationButtons: Boolean, onPositive: () -> Unit) { + fun askDurationEvent(event: LunaEvent, showTime: Boolean, onPositive: () -> Unit) { val d = AlertDialog.Builder(this) val dialogView = layoutInflater.inflate(R.layout.dialog_edit_duration, null) d.setTitle(event.getDialogTitle(this)) - d.setMessage(event.getDialogMessage(this)) d.setView(dialogView) val durationTextView = dialogView.findViewById(R.id.dialog_date_duration) - val datePicker = dialogView.findViewById(R.id.dialog_date_picker) + val datePickerBegin = dialogView.findViewById(R.id.dialog_date_picker_begin) + val datePickerEnd = dialogView.findViewById(R.id.dialog_date_picker_end) + val dateDelimiter = dialogView.findViewById(R.id.dialog_date_range_delimiter) val durationButtons = dialogView.findViewById(R.id.duration_buttons) val durationNowButton = dialogView.findViewById