commit f7833181986dc722c00cf0df2b932be74ad6899f
parent 83fd108af9212a75a34ad15094362545ee80b296
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Thu,  4 Jan 2024 02:24:49 +0100

fix(app/streaks_reminder): negative time

Diffstat:
Mapp/src/main/kotlin/me/rhunk/snapenhance/messaging/StreaksReminder.kt | 6+++---
Mcommon/src/main/kotlin/me/rhunk/snapenhance/common/data/MessagingCoreObjects.kt | 5++++-
2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/messaging/StreaksReminder.kt b/app/src/main/kotlin/me/rhunk/snapenhance/messaging/StreaksReminder.kt @@ -44,14 +44,14 @@ class StreaksReminder( if (streaksReminderConfig.globalState != true) return - val interval = streaksReminderConfig.interval.get() + val interval = streaksReminderConfig.interval.get().hours val remainingHours = streaksReminderConfig.remainingHours.get() - if (sharedPreferences.getLong("lastStreaksReminder", 0).milliseconds + interval.hours - 10.minutes > System.currentTimeMillis().milliseconds) return + if (sharedPreferences.getLong("lastStreaksReminder", 0).milliseconds + interval - 10.minutes > System.currentTimeMillis().milliseconds) return sharedPreferences.edit().putLong("lastStreaksReminder", System.currentTimeMillis()).apply() remoteSideContext.androidContext.getSystemService(AlarmManager::class.java).setRepeating( - AlarmManager.RTC_WAKEUP, 5000, interval.toLong() * 60 * 60 * 1000, + AlarmManager.RTC_WAKEUP, 5000, interval.inWholeMilliseconds, PendingIntent.getBroadcast(remoteSideContext.androidContext, 0, Intent(remoteSideContext.androidContext, StreaksReminder::class.java), PendingIntent.FLAG_IMMUTABLE) ) diff --git a/common/src/main/kotlin/me/rhunk/snapenhance/common/data/MessagingCoreObjects.kt b/common/src/main/kotlin/me/rhunk/snapenhance/common/data/MessagingCoreObjects.kt @@ -2,6 +2,7 @@ package me.rhunk.snapenhance.common.data import me.rhunk.snapenhance.common.config.FeatureNotice import me.rhunk.snapenhance.common.util.SerializableDataObject +import kotlin.time.Duration.Companion.hours enum class RuleState( @@ -59,7 +60,9 @@ data class FriendStreaks( ) : SerializableDataObject() { fun hoursLeft() = (expirationTimestamp - System.currentTimeMillis()) / 1000 / 60 / 60 - fun isAboutToExpire(expireHours: Int) = expirationTimestamp - System.currentTimeMillis() < expireHours * 60 * 60 * 1000 + fun isAboutToExpire(expireHours: Int) = (expirationTimestamp - System.currentTimeMillis()).let { + it > 0 && it < expireHours.hours.inWholeMilliseconds + } } data class MessagingGroupInfo(