From 5692f48e75ae79c2abb49d202dd0bf79cb5f00ba Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 3 Apr 2025 01:46:11 -0500 Subject: [PATCH] Fix populating clock picker --- .../org/tasks/activities/DateAndTimePickerActivity.kt | 10 +++++++--- .../commonMain/kotlin/org/tasks/time/LongExtensions.kt | 3 +++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/tasks/activities/DateAndTimePickerActivity.kt b/app/src/main/java/org/tasks/activities/DateAndTimePickerActivity.kt index ee6c950d7..71d67fc55 100644 --- a/app/src/main/java/org/tasks/activities/DateAndTimePickerActivity.kt +++ b/app/src/main/java/org/tasks/activities/DateAndTimePickerActivity.kt @@ -21,6 +21,10 @@ import org.tasks.themes.TasksTheme import org.tasks.themes.Theme import org.tasks.time.DateTime import org.tasks.time.DateTimeUtils2.currentTimeMillis +import org.tasks.time.hourOfDay +import org.tasks.time.millisOfDay +import org.tasks.time.minuteOfHour +import org.tasks.time.withMillisOfDay import javax.inject.Inject @AndroidEntryPoint @@ -43,8 +47,8 @@ class DateAndTimePickerActivity : AppCompatActivity() { if (showTimePicker) { TimePickerDialog( state = rememberTimePickerState( - initialHour = 0, - initialMinute = 0, + initialHour = dateSelected.hourOfDay, + initialMinute = dateSelected.minuteOfHour, is24Hour = is24HourFormat ), initialDisplayMode = remember { preferences.timeDisplayMode }, @@ -74,7 +78,7 @@ class DateAndTimePickerActivity : AppCompatActivity() { preferences.calendarDisplayMode = it }, selected = { - dateSelected = it + dateSelected = it.withMillisOfDay(dateSelected.millisOfDay) showTimePicker = true }, dismiss = { diff --git a/kmp/src/commonMain/kotlin/org/tasks/time/LongExtensions.kt b/kmp/src/commonMain/kotlin/org/tasks/time/LongExtensions.kt index 144c731fb..3a6a87dad 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/time/LongExtensions.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/time/LongExtensions.kt @@ -137,6 +137,9 @@ private fun Long.minus(value: Int, units: DateTimeUnit.TimeBased): Long = val Long.millisOfDay: Int get() = if (this > 0) toLocalDateTime().time.toMillisecondOfDay() else 0 +val Long.hourOfDay: Int + get() = if (this > 0) toLocalDateTime().hour else 0 + val Long.minuteOfHour: Int get() = if (this > 0) toLocalDateTime().minute else 0