diff --git a/pump/omnipod-common/src/main/res/values/strings.xml b/pump/omnipod-common/src/main/res/values/strings.xml index 821e0112ec..dd0cd0208f 100644 --- a/pump/omnipod-common/src/main/res/values/strings.xml +++ b/pump/omnipod-common/src/main/res/values/strings.xml @@ -8,7 +8,7 @@ AAPS.Omnipod.suspend_delivery_button_enabled AAPS.Omnipod.time_change_enabled AAPS.Omnipod.expiration_reminder_enabled - AAPS.Omnipod.expiration_reminder_hours_before_shutdown + AAPS.Omnipod.expiration_reminder_hours_before_expiry AAPS.Omnipod.expiration_alarm_enabled AAPS.Omnipod.expiration_alarm_hours_before_shutdown AAPS.Omnipod.low_reservoir_alert_enabled @@ -132,7 +132,7 @@ DST/Time zone detection enabled Expiration reminder enabled When enabled the pod will beep when the specified time is reached - Reminder at hours before shutdown (80 Hours) + Reminder at hours before expiry (72 Hours) Expiration alert enabled When enabled the pod will beep when the specified time is reached and every hour after that Alert at hours before shutdown (80 Hours) diff --git a/pump/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/OmnipodDashPumpPlugin.kt b/pump/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/OmnipodDashPumpPlugin.kt index 2bd8f45313..c1e12cecd2 100644 --- a/pump/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/OmnipodDashPumpPlugin.kt +++ b/pump/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/OmnipodDashPumpPlugin.kt @@ -482,7 +482,7 @@ class OmnipodDashPumpPlugin @Inject constructor( .subscribe( { if (it.isChanged(rh.gs(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_reminder_enabled)) || - it.isChanged(rh.gs(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_reminder_hours_before_shutdown)) || + it.isChanged(rh.gs(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_reminder_hours_before_expiry)) || it.isChanged(rh.gs(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_alarm_enabled)) || it.isChanged(rh.gs(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_alarm_hours_before_shutdown)) || it.isChanged(rh.gs(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_low_reservoir_alert_enabled)) || @@ -1224,7 +1224,7 @@ class OmnipodDashPumpPlugin @Inject constructor( private fun updateAlertConfiguration(): PumpEnactResult { val expirationReminderEnabled = sp.getBoolean(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_reminder_enabled, true) - val expirationReminderHours = sp.getInt(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_reminder_hours_before_shutdown, 7) + val expirationReminderHours = sp.getInt(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_reminder_hours_before_expiry, 9) val expirationAlarmEnabled = sp.getBoolean(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_alarm_enabled, true) val expirationAlarmHours = sp.getInt(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_alarm_hours_before_shutdown, 8) val lowReservoirAlertEnabled = sp.getBoolean(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_low_reservoir_alert_enabled, true) @@ -1250,16 +1250,17 @@ class OmnipodDashPumpPlugin @Inject constructor( } val podLifeLeft = Duration.between(ZonedDateTime.now(), podStateManager.expiry) - val expiryAlertDelay = podLifeLeft.minus(Duration.ofHours(expirationReminderHours.toLong())) - if (expiryAlertDelay.isNegative) { + val expiryReminderDelay = podLifeLeft.minus(Duration.ofHours(expirationReminderHours.toLong())) + if (expiryReminderDelay.isNegative) { aapsLogger.warn( LTag.PUMPBTCOMM, "updateAlertConfiguration negative " + - "expiryAlertDuration=$expiryAlertDelay" + "expiryAlertDuration=$expiryReminderDelay" ) PumpEnactResult(injector).success(false).enacted(false) } - val expiryAlarmDelay = podLifeLeft.minus(Duration.ofHours(expirationAlarmHours.toLong())) + // expiry Alarm Delay, add 8 hours (grace period) + val expiryAlarmDelay = podLifeLeft.minus(Duration.ofHours(expirationAlarmHours.toLong())).plus(Duration.ofHours(8)) if (expiryAlarmDelay.isNegative) { aapsLogger.warn( LTag.PUMPBTCOMM, @@ -1268,7 +1269,7 @@ class OmnipodDashPumpPlugin @Inject constructor( ) PumpEnactResult(injector).success(false).enacted(false) } - val expiryImminentDelay = podLifeLeft.minus(Duration.ofHours(POD_EXPIRATION_IMMINENT_ALERT_HOURS_REMAINING)) + val expiryImminentDelay = podLifeLeft.minus(Duration.ofHours(POD_EXPIRATION_IMMINENT_ALERT_HOURS_REMAINING)).plus(Duration.ofHours(8)) if (expiryImminentDelay.isNegative) { aapsLogger.warn( LTag.PUMPBTCOMM, @@ -1293,7 +1294,7 @@ class OmnipodDashPumpPlugin @Inject constructor( durationInMinutes = 0, autoOff = false, AlertTrigger.TimerTrigger( - expiryAlertDelay.toMinutes().toShort() + expiryReminderDelay.toMinutes().toShort() ), BeepType.FOUR_TIMES_BIP_BEEP, BeepRepetitionType.EVERY_MINUTE_AND_EVERY_15_MIN @@ -1301,7 +1302,7 @@ class OmnipodDashPumpPlugin @Inject constructor( AlertConfiguration( AlertType.EXPIRATION, enabled = expirationAlarmEnabled, - durationInMinutes = TimeUnit.HOURS.toMinutes(expirationAlarmHours.toLong()).toShort(), + durationInMinutes = TimeUnit.HOURS.toMinutes((expirationAlarmHours - 1).toLong()).toShort(), autoOff = false, AlertTrigger.TimerTrigger( expiryAlarmDelay.toMinutes().toShort() diff --git a/pump/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/OmnipodDashManagerImpl.kt b/pump/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/OmnipodDashManagerImpl.kt index 1d3da0e982..b3080dd2b3 100644 --- a/pump/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/OmnipodDashManagerImpl.kt +++ b/pump/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/OmnipodDashManagerImpl.kt @@ -424,18 +424,19 @@ class OmnipodDashManagerImpl @Inject constructor( val expirationAlarmEnabled = userConfiguredExpirationAlarmHours != null && userConfiguredExpirationAlarmHours > 0 val expirationAlarmDelay = podLifeLeft.minus( Duration.ofHours(userConfiguredExpirationAlarmHours ?: POD_EXPIRATION_ALERT_HOURS_REMAINING_DEFAULT) - ) - val expirationImminnentDelay = podLifeLeft.minus( + ).plus(Duration.ofHours(8)) // Add 8 hours for grace period + + val expirationImminentDelay = podLifeLeft.minus( Duration.ofHours(POD_EXPIRATION_IMMINENT_ALERT_HOURS_REMAINING) - ) + ).plus(Duration.ofHours(8)) // Add 8 hours for grace period val alerts = mutableListOf( AlertConfiguration( AlertType.EXPIRATION, enabled = expirationAlarmEnabled, - durationInMinutes = TimeUnit.HOURS.toMinutes( + durationInMinutes = (TimeUnit.HOURS.toMinutes( userConfiguredExpirationAlarmHours ?: POD_EXPIRATION_ALERT_HOURS_REMAINING_DEFAULT - ).toShort(), + ) - 60).toShort(), autoOff = false, AlertTrigger.TimerTrigger( expirationAlarmDelay.toMinutes().toShort() @@ -449,30 +450,31 @@ class OmnipodDashManagerImpl @Inject constructor( durationInMinutes = 0, autoOff = false, AlertTrigger.TimerTrigger( - expirationImminnentDelay.toMinutes().toShort() + expirationImminentDelay.toMinutes().toShort() ), BeepType.FOUR_TIMES_BIP_BEEP, BeepRepetitionType.XXX4 ) ) - val userExpiryAlertDelay = podLifeLeft.minus( + val userExpiryReminderEnabled = userConfiguredExpirationReminderHours != null && userConfiguredExpirationReminderHours > 0 + val userExpiryReminderDelay = podLifeLeft.minus( Duration.ofHours(userConfiguredExpirationReminderHours ?: MAX_POD_LIFETIME.toHours() + 1) ) - if (userExpiryAlertDelay.isNegative) { + if (userExpiryReminderDelay.isNegative) { logger.warn( LTag.PUMPBTCOMM, "createActivationPart2Observables negative " + - "expiryAlertDuration=$userExpiryAlertDelay" + "expiryAlertDuration=$userExpiryReminderDelay" ) } else { alerts.add( AlertConfiguration( AlertType.USER_SET_EXPIRATION, - enabled = true, + enabled = userExpiryReminderEnabled, durationInMinutes = 0, autoOff = false, AlertTrigger.TimerTrigger( - userExpiryAlertDelay.toMinutes().toShort() + userExpiryReminderDelay.toMinutes().toShort() ), BeepType.FOUR_TIMES_BIP_BEEP, BeepRepetitionType.EVERY_MINUTE_AND_EVERY_15_MIN diff --git a/pump/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/activation/viewmodel/action/DashInsertCannulaViewModel.kt b/pump/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/activation/viewmodel/action/DashInsertCannulaViewModel.kt index 9ab1d3b22b..18c4767350 100644 --- a/pump/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/activation/viewmodel/action/DashInsertCannulaViewModel.kt +++ b/pump/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/activation/viewmodel/action/DashInsertCannulaViewModel.kt @@ -67,7 +67,7 @@ class DashInsertCannulaViewModel @Inject constructor( basalProgram ) val expirationReminderEnabled = sp.getBoolean(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_reminder_enabled, true) - val expirationReminderHours = sp.getInt(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_reminder_hours_before_shutdown, 9) + val expirationReminderHours = sp.getInt(info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_reminder_hours_before_expiry, 9) val expirationReminderHoursBeforeShutdown = if (expirationReminderEnabled) expirationReminderHours.toLong() diff --git a/pump/omnipod-dash/src/main/res/xml/omnipod_dash_preferences.xml b/pump/omnipod-dash/src/main/res/xml/omnipod_dash_preferences.xml index a94485e6d5..08bb260419 100644 --- a/pump/omnipod-dash/src/main/res/xml/omnipod_dash_preferences.xml +++ b/pump/omnipod-dash/src/main/res/xml/omnipod_dash_preferences.xml @@ -45,8 +45,8 @@ android:dependency="@string/key_omnipod_common_expiration_reminder_enabled" android:digits="0123456789" android:inputType="number" - android:key="@string/key_omnipod_common_expiration_reminder_hours_before_shutdown" - android:title="@string/omnipod_common_preferences_expiration_reminder_hours_before_shutdown" + android:key="@string/key_omnipod_common_expiration_reminder_hours_before_expiry" + android:title="@string/omnipod_common_preferences_expiration_reminder_hours_before_expiry" validate:maxNumber="24" validate:minNumber="2" validate:testType="numericRange" /> @@ -64,7 +64,7 @@ android:inputType="number" android:key="@string/key_omnipod_common_expiration_alarm_hours_before_shutdown" android:title="@string/omnipod_common_preferences_expiration_alarm_hours_before_shutdown" - validate:maxNumber="24" + validate:maxNumber="8" validate:minNumber="1" validate:testType="numericRange" /> diff --git a/pump/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/definition/OmnipodErosStorageKeys.java b/pump/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/definition/OmnipodErosStorageKeys.java index 1f4ce595ab..88826204b1 100644 --- a/pump/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/definition/OmnipodErosStorageKeys.java +++ b/pump/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/definition/OmnipodErosStorageKeys.java @@ -14,7 +14,7 @@ public class OmnipodErosStorageKeys { public static final int PULSE_LOG_BUTTON_ENABLED = R.string.key_omnipod_eros_pulse_log_button_enabled; public static final int TIME_CHANGE_EVENT_ENABLED = info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_time_change_event_enabled; public static final int EXPIRATION_REMINDER_ENABLED = info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_reminder_enabled; - public static final int EXPIRATION_REMINDER_HOURS_BEFORE_SHUTDOWN = info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_reminder_hours_before_shutdown; + public static final int EXPIRATION_REMINDER_HOURS_BEFORE_SHUTDOWN = info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_expiration_reminder_hours_before_expiry; public static final int LOW_RESERVOIR_ALERT_ENABLED = info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_low_reservoir_alert_enabled; public static final int LOW_RESERVOIR_ALERT_UNITS = info.nightscout.androidaps.plugins.pump.omnipod.common.R.string.key_omnipod_common_low_reservoir_alert_units; public static final int NOTIFICATION_UNCERTAIN_TBR_SOUND_ENABLED = R.string.key_omnipod_eros_notification_uncertain_tbr_sound_enabled; diff --git a/pump/omnipod-eros/src/main/res/xml/omnipod_eros_preferences.xml b/pump/omnipod-eros/src/main/res/xml/omnipod_eros_preferences.xml index 1aa8ce5ed7..53c34d0905 100644 --- a/pump/omnipod-eros/src/main/res/xml/omnipod_eros_preferences.xml +++ b/pump/omnipod-eros/src/main/res/xml/omnipod_eros_preferences.xml @@ -76,8 +76,8 @@ android:dependency="@string/key_omnipod_common_expiration_reminder_enabled" android:digits="0123456789" android:inputType="number" - android:key="@string/key_omnipod_common_expiration_reminder_hours_before_shutdown" - android:title="@string/omnipod_common_preferences_expiration_reminder_hours_before_shutdown" + android:key="@string/key_omnipod_common_expiration_reminder_hours_before_expiry" + android:title="@string/omnipod_common_preferences_expiration_reminder_hours_before_expiry" validate:maxNumber="24" validate:minNumber="2" validate:testType="numericRange" />