Handle task showing reminder notification for completed task

Handle if task was completed before reminder, and show upcoming reminders if task still marked as complete.
This commit is contained in:
Hafiz 2022-09-13 05:31:01 -04:00
parent 751e87338a
commit a96e669f48
3 changed files with 7 additions and 1 deletions

View file

@ -90,6 +90,11 @@ open class Task : RealmObject, BaseMainObject, Parcelable, BaseTask {
override var isDue: Boolean? = null
var nextDue: RealmList<Date>? = null
var updatedAt: Date? = null
val isUpdatedToday: Boolean
get() = ZonedDateTime.ofInstant(updatedAt?.toInstant(), ZoneId.systemDefault()).toLocalDate()
.equals(ZonedDateTime.now().withZoneSameLocal(ZoneId.systemDefault()).toLocalDate())
// Needed for offline creating/updating
var isSaving: Boolean = false

View file

@ -46,7 +46,7 @@ class TaskReceiver : BroadcastReceiver() {
.firstElement()
.subscribe(
Consumer {
if (!it.isValid || it.completed) {
if (it.isUpdatedToday && it.completed) {
return@Consumer
}

View file

@ -85,6 +85,7 @@ class TaskSerializer : JsonSerializer<Task>, JsonDeserializer<Task> {
} catch (ignored: java.lang.UnsupportedOperationException) {}
task.dateCreated = context.deserialize(obj.get("createdAt"), Date::class.java)
task.dueDate = context.deserialize(obj.get("date"), Date::class.java)
task.updatedAt = context.deserialize(obj.get("updatedAt"), Date::class.java)
task.startDate = context.deserialize(obj.get("startDate"), Date::class.java)
task.isDue = obj.get("isDue")?.asBoolean
if (obj.has("nextDue")) {