From c6f7cf5b8ad9102e64d304cca4b509ecbb36cc79 Mon Sep 17 00:00:00 2001 From: nofish Date: Sat, 28 Mar 2026 15:31:16 +0100 Subject: [PATCH] feat: pick (absolute) date/time for reminders ref: https://github.com/FossifyOrg/Calendar/issues/214 --- .../calendar/activities/EventActivity.kt | 27 ++++++++++++++----- .../calendar/activities/TaskActivity.kt | 27 ++++++++++++++----- 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/calendar/activities/EventActivity.kt b/app/src/main/kotlin/org/fossify/calendar/activities/EventActivity.kt index 9bdecd7b6..1f0fe7914 100644 --- a/app/src/main/kotlin/org/fossify/calendar/activities/EventActivity.kt +++ b/app/src/main/kotlin/org/fossify/calendar/activities/EventActivity.kt @@ -844,22 +844,37 @@ class EventActivity : SimpleActivity() { } private fun showReminder1Dialog() { - showPickSecondsDialogHelper(mReminder1Minutes, showDuringDayOption = mIsAllDayEvent) { - mReminder1Minutes = if (it == -1 || it == 0) it else it / 60 + showPickSecondsDialogHelper( + curMinutes = mReminder1Minutes, + showDuringDayOption = mIsAllDayEvent, + showAbsoluteDateTimeOption = true, + eventStartTS = mEvent.startTS + ) { seconds -> + mReminder1Minutes = if (seconds == -1 || seconds == 0) seconds else seconds / 60 checkReminderTexts() } } private fun showReminder2Dialog() { - showPickSecondsDialogHelper(mReminder2Minutes, showDuringDayOption = mIsAllDayEvent) { - mReminder2Minutes = if (it == -1 || it == 0) it else it / 60 + showPickSecondsDialogHelper( + curMinutes = mReminder2Minutes, + showDuringDayOption = mIsAllDayEvent, + showAbsoluteDateTimeOption = true, + eventStartTS = mEvent.startTS + ) { seconds -> + mReminder2Minutes = if (seconds == -1 || seconds == 0) seconds else seconds / 60 checkReminderTexts() } } private fun showReminder3Dialog() { - showPickSecondsDialogHelper(mReminder3Minutes, showDuringDayOption = mIsAllDayEvent) { - mReminder3Minutes = if (it == -1 || it == 0) it else it / 60 + showPickSecondsDialogHelper( + curMinutes = mReminder3Minutes, + showDuringDayOption = mIsAllDayEvent, + showAbsoluteDateTimeOption = true, + eventStartTS = mEvent.startTS + ) { seconds -> + mReminder3Minutes = if (seconds == -1 || seconds == 0) seconds else seconds / 60 checkReminderTexts() } } diff --git a/app/src/main/kotlin/org/fossify/calendar/activities/TaskActivity.kt b/app/src/main/kotlin/org/fossify/calendar/activities/TaskActivity.kt index 1be816ddd..98bd20ea1 100644 --- a/app/src/main/kotlin/org/fossify/calendar/activities/TaskActivity.kt +++ b/app/src/main/kotlin/org/fossify/calendar/activities/TaskActivity.kt @@ -885,22 +885,37 @@ class TaskActivity : SimpleActivity() { } private fun showReminder1Dialog() { - showPickSecondsDialogHelper(mReminder1Minutes, showDuringDayOption = mIsAllDayTask) { - mReminder1Minutes = if (it == -1 || it == 0) it else it / 60 + showPickSecondsDialogHelper( + curMinutes = mReminder1Minutes, + showDuringDayOption = mIsAllDayTask, + showAbsoluteDateTimeOption = true, + eventStartTS = mTask.startTS + ) { seconds -> + mReminder1Minutes = if (seconds == -1 || seconds == 0) seconds else seconds / 60 updateReminderTexts() } } private fun showReminder2Dialog() { - showPickSecondsDialogHelper(mReminder2Minutes, showDuringDayOption = mIsAllDayTask) { - mReminder2Minutes = if (it == -1 || it == 0) it else it / 60 + showPickSecondsDialogHelper( + curMinutes = mReminder2Minutes, + showDuringDayOption = mIsAllDayTask, + showAbsoluteDateTimeOption = true, + eventStartTS = mTask.startTS + ) { seconds -> + mReminder2Minutes = if (seconds == -1 || seconds == 0) seconds else seconds / 60 updateReminderTexts() } } private fun showReminder3Dialog() { - showPickSecondsDialogHelper(mReminder3Minutes, showDuringDayOption = mIsAllDayTask) { - mReminder3Minutes = if (it == -1 || it == 0) it else it / 60 + showPickSecondsDialogHelper( + curMinutes = mReminder3Minutes, + showDuringDayOption = mIsAllDayTask, + showAbsoluteDateTimeOption = true, + eventStartTS = mTask.startTS + ) { seconds -> + mReminder3Minutes = if (seconds == -1 || seconds == 0) seconds else seconds / 60 updateReminderTexts() } }