Disable instead of remove 'Enable pump unreachable' preference for pumps that have a fixed unreachable warning; make pump unreachable threshold configurable for pumps that have a fixed unreachable warning
This commit is contained in:
parent
db2c95af46
commit
bc06b6b24a
5 changed files with 19 additions and 18 deletions
|
@ -10,6 +10,7 @@ import android.preference.PreferenceFragment;
|
|||
import android.preference.PreferenceGroup;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.preference.SwitchPreference;
|
||||
|
||||
import info.nightscout.androidaps.Config;
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
|
@ -208,12 +209,14 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre
|
|||
if (activePump != null && localAlertsPreferenceScreen != null && activePump.getPumpDescription().hasFixedUnreachableAlert) {
|
||||
Preference pumpUnreachableEnabledPreference = findPreference(MainApp.gs(R.string.key_enable_pump_unreachable_alert));
|
||||
if (pumpUnreachableEnabledPreference != null) {
|
||||
localAlertsPreferenceScreen.removePreference(pumpUnreachableEnabledPreference);
|
||||
((SwitchPreference) pumpUnreachableEnabledPreference).setChecked(true);
|
||||
pumpUnreachableEnabledPreference.setEnabled(false);
|
||||
pumpUnreachableEnabledPreference.setShouldDisableView(true);
|
||||
}
|
||||
|
||||
Preference pumpUnreachableThresholdPreference = findPreference(MainApp.gs(R.string.key_pump_unreachable_threshold));
|
||||
if (pumpUnreachableThresholdPreference != null) {
|
||||
localAlertsPreferenceScreen.removePreference(pumpUnreachableThresholdPreference);
|
||||
pumpUnreachableThresholdPreference.setDependency(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -100,7 +100,7 @@ public interface PumpInterface {
|
|||
void timeDateOrTimeZoneChanged();
|
||||
|
||||
/* Only used for pump types where hasFixedUnreachableAlert=true */
|
||||
default boolean isFixedUnreachableAlertTimeoutExceeded() {
|
||||
default boolean isFixedUnreachableAlertTimeoutExceeded(long alertTimeoutMilliseconds) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -70,7 +70,6 @@ import info.nightscout.androidaps.plugins.pump.omnipod.util.OmnipodUtil;
|
|||
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
|
||||
import info.nightscout.androidaps.utils.FabricPrivacy;
|
||||
import info.nightscout.androidaps.utils.SP;
|
||||
import info.nightscout.androidaps.utils.T;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
|
@ -108,7 +107,6 @@ public class OmnipodPumpPlugin extends PumpPluginAbstract implements OmnipodPump
|
|||
boolean omnipodServiceRunning = false;
|
||||
|
||||
private long nextPodCheck = 0L;
|
||||
private static long UNREACHABLE_ALERT_THRESHOLD_MILLIS = T.mins(30).msecs();
|
||||
|
||||
private OmnipodPumpPlugin() {
|
||||
|
||||
|
@ -942,11 +940,11 @@ public class OmnipodPumpPlugin extends PumpPluginAbstract implements OmnipodPump
|
|||
|
||||
|
||||
@Override
|
||||
public boolean isFixedUnreachableAlertTimeoutExceeded() {
|
||||
public boolean isFixedUnreachableAlertTimeoutExceeded(long unreachableTimeoutMilliseconds) {
|
||||
getPodPumpStatusObject();
|
||||
|
||||
if (pumpStatusLocal.lastConnection != 0 || pumpStatusLocal.lastErrorConnection != 0) {
|
||||
if (pumpStatusLocal.lastConnection + UNREACHABLE_ALERT_THRESHOLD_MILLIS < System.currentTimeMillis()) {
|
||||
if (pumpStatusLocal.lastConnection + unreachableTimeoutMilliseconds < System.currentTimeMillis()) {
|
||||
if (pumpStatusLocal.lastErrorConnection > pumpStatusLocal.lastConnection) {
|
||||
// We exceeded the alert threshold, and our last connection failed
|
||||
// We should show an alert
|
||||
|
@ -960,8 +958,6 @@ public class OmnipodPumpPlugin extends PumpPluginAbstract implements OmnipodPump
|
|||
|
||||
}
|
||||
|
||||
// If we have no last connection and error data, don't show any alert
|
||||
// FIXME is this appropriate?
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,10 +48,12 @@ public class LocalAlertUtils {
|
|||
return;
|
||||
}
|
||||
|
||||
if(pump.isFixedUnreachableAlertTimeoutExceeded()) {
|
||||
long pumpUnreachableThresholdMilliseconds = pumpUnreachableThreshold();
|
||||
|
||||
if (pump.isFixedUnreachableAlertTimeoutExceeded(pumpUnreachableThresholdMilliseconds)) {
|
||||
log.debug("Generating static pump unreachable alarm.");
|
||||
|
||||
showUnreachableNotification(T.mins(30).msecs());
|
||||
showUnreachableNotification(pumpUnreachableThresholdMilliseconds);
|
||||
} else {
|
||||
RxBus.INSTANCE.send(new EventDismissNotification(Notification.PUMP_UNREACHABLE));
|
||||
}
|
||||
|
@ -85,10 +87,10 @@ public class LocalAlertUtils {
|
|||
* Call only at startup!
|
||||
*/
|
||||
public static void presnoozeAlarms() {
|
||||
if (SP.getLong("nextMissedReadingsAlarm", 0l) < System.currentTimeMillis()) {
|
||||
if (SP.getLong("nextMissedReadingsAlarm", 0L) < System.currentTimeMillis()) {
|
||||
SP.putLong("nextMissedReadingsAlarm", System.currentTimeMillis() + 5 * 60 * 1000);
|
||||
}
|
||||
if (SP.getLong("nextPumpDisconnectedAlarm", 0l) < System.currentTimeMillis()) {
|
||||
if (SP.getLong("nextPumpDisconnectedAlarm", 0L) < System.currentTimeMillis()) {
|
||||
SP.putLong("nextPumpDisconnectedAlarm", System.currentTimeMillis() + 5 * 60 * 1000);
|
||||
}
|
||||
}
|
||||
|
@ -112,7 +114,7 @@ public class LocalAlertUtils {
|
|||
if (pump != null && profile != null) {
|
||||
long lastConnection = pump.lastDataTime();
|
||||
long earliestAlarmTime = lastConnection + pumpUnreachableThreshold();
|
||||
if (SP.getLong("nextPumpDisconnectedAlarm", 0l) < earliestAlarmTime) {
|
||||
if (SP.getLong("nextPumpDisconnectedAlarm", 0L) < earliestAlarmTime) {
|
||||
SP.putLong("nextPumpDisconnectedAlarm", earliestAlarmTime);
|
||||
}
|
||||
}
|
||||
|
@ -122,7 +124,7 @@ public class LocalAlertUtils {
|
|||
BgReading bgReading = DatabaseHelper.lastBg();
|
||||
if (SP.getBoolean(MainApp.gs(R.string.key_enable_missed_bg_readings_alert), false)
|
||||
&& bgReading != null && bgReading.date + missedReadingsThreshold() < System.currentTimeMillis()
|
||||
&& SP.getLong("nextMissedReadingsAlarm", 0l) < System.currentTimeMillis()) {
|
||||
&& SP.getLong("nextMissedReadingsAlarm", 0L) < System.currentTimeMillis()) {
|
||||
Notification n = new Notification(Notification.BG_READINGS_MISSED, MainApp.gs(R.string.missed_bg_readings), Notification.URGENT);
|
||||
n.soundId = R.raw.alarm;
|
||||
SP.putLong("nextMissedReadingsAlarm", System.currentTimeMillis() + missedReadingsThreshold());
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
android:title="@string/enable_pump_unreachable_alert" />
|
||||
<com.andreabaccega.widget.ValidatingEditTextPreference
|
||||
validate:testType="numericRange"
|
||||
validate:minNumber="30"
|
||||
validate:minNumber="20"
|
||||
validate:maxNumber="300"
|
||||
android:defaultValue="30"
|
||||
android:dependency="@string/key_enable_pump_unreachable_alert"
|
||||
|
|
Loading…
Reference in a new issue