diff --git a/android/app/src/main/java/com/github/quarck/calnotify/Settings.kt b/android/app/src/main/java/com/github/quarck/calnotify/Settings.kt index e4cc1236..9d3b3924 100644 --- a/android/app/src/main/java/com/github/quarck/calnotify/Settings.kt +++ b/android/app/src/main/java/com/github/quarck/calnotify/Settings.kt @@ -132,6 +132,9 @@ class Settings(context: Context) : PersistentStorageBase(context) { val snoozePresetsRaw: String get() = getString(SNOOZE_PRESET_KEY, DEFAULT_SNOOZE_PRESET) + val displayNextAlertTime: Boolean + get() = getBoolean(DISPLAY_NEXT_ALERT_TIME, false) + val snoozePresets: LongArray get() { var ret = PreferenceUtils.parseSnoozePresets(snoozePresetsRaw) @@ -438,6 +441,7 @@ class Settings(context: Context) : PersistentStorageBase(context) { private const val CALENDAR_IS_HANDLED_KEY_PREFIX = "calendar_handled_" private const val SNOOZE_PRESET_KEY = "pref_snooze_presets" //"15m, 1h, 4h, 1d" + private const val DISPLAY_NEXT_ALERT_TIME = "pref_display_next_alert_time" //false private const val VIEW_AFTER_EDIT_KEY = "show_event_after_reschedule" // true private const val ENABLE_REMINDERS_KEY = "enable_reminding_key" // false private const val REMINDER_INTERVAL_PATTERN_KEY = "remind_interval_key_pattern" // "10m" diff --git a/android/app/src/main/java/com/github/quarck/calnotify/calendar/EventRecord.kt b/android/app/src/main/java/com/github/quarck/calnotify/calendar/EventRecord.kt index 7e6c9461..a2a31c30 100644 --- a/android/app/src/main/java/com/github/quarck/calnotify/calendar/EventRecord.kt +++ b/android/app/src/main/java/com/github/quarck/calnotify/calendar/EventRecord.kt @@ -167,4 +167,12 @@ fun EventRecord.nextAlarmTime(currentTime: Long): Long { } return ret -} \ No newline at end of file +} + +fun EventRecord.getNextAlertTimeAfter(anchor: Long): Long? { + val futureReminders = eventRecord + .reminders + .map { eventRecord.startTime - it.millisecondsBefore } + .filter { it > anchor } + return futureReminders.maxOrNull() +} diff --git a/android/app/src/main/java/com/github/quarck/calnotify/textutils/EventFormatter.kt b/android/app/src/main/java/com/github/quarck/calnotify/textutils/EventFormatter.kt index 15e7460e..968bd026 100644 --- a/android/app/src/main/java/com/github/quarck/calnotify/textutils/EventFormatter.kt +++ b/android/app/src/main/java/com/github/quarck/calnotify/textutils/EventFormatter.kt @@ -79,6 +79,20 @@ class EventFormatter( sb.append(formatDateTimeOneLine(event, false)) + if (Settings(ctx).displayNextAlertTime) { + val nextAlertTime = todo("need EventRecord here").getNextAlertTimeAfter(event.displayedStartTime) + if (nextAlertTime != null) { + val duration = nextAlertTime - clock.currentTimeMillis() + if (duration > 0) { + sb.append(" (") + sb.append(ctx.getString(R.string.next_alert_in)) + sb.append(" ") + sb.append(formatTimeDuration(duration, 60)) + sb.append(")") + } + } + } + if (event.location != "") { sb.append("\n") sb.append(ctx.resources.getString(R.string.location));