From 9f5591cc414a68a1cfb0387cf1b08150e5045bc6 Mon Sep 17 00:00:00 2001 From: Hafiz Date: Wed, 10 Aug 2022 21:53:19 -0400 Subject: [PATCH] Reminder current time fix Fix issue with creating reminders for current or past current time. --- .../android/habitica/helpers/TaskAlarmManager.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.kt index a4572bee3..b812eb85f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.kt @@ -82,9 +82,16 @@ class TaskAlarmManager( return remindersItem } + + /** + * If reminderItem time is before now, a new reminder will not be created until the reminder passes. + * The exception to this is if the task & reminder was newly created for the same time, + * in which the alarm will be created - + * which is indicated by first nextDue being null (As the alarm is created before the API returns nextDue times) + */ private fun setAlarmForRemindersItem(reminderItemTask: Task, remindersItem: RemindersItem?) { val now = ZonedDateTime.now().withZoneSameLocal(ZoneId.systemDefault())?.toInstant() - if (remindersItem == null || remindersItem.getLocalZonedDateTimeInstant()?.isBefore(now) == true) { + if (remindersItem == null || (remindersItem.getLocalZonedDateTimeInstant()?.isBefore(now) == true && reminderItemTask.nextDue?.first() != null)) { return }