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