diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/OmnipodPumpPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/OmnipodPumpPlugin.java index 89d9a48ab1..ab231236fd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/OmnipodPumpPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/OmnipodPumpPlugin.java @@ -28,6 +28,7 @@ import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.db.Source; import info.nightscout.androidaps.db.TemporaryBasal; +import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.events.EventRefreshOverview; import info.nightscout.androidaps.interfaces.PluginDescription; import info.nightscout.androidaps.interfaces.PluginType; @@ -36,6 +37,7 @@ import info.nightscout.androidaps.plugins.bus.RxBus; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.general.actions.defs.CustomAction; import info.nightscout.androidaps.plugins.general.actions.defs.CustomActionType; +import info.nightscout.androidaps.plugins.general.overview.events.EventOverviewBolusProgress; import info.nightscout.androidaps.plugins.pump.common.PumpPluginAbstract; import info.nightscout.androidaps.plugins.pump.common.data.TempBasalPair; import info.nightscout.androidaps.plugins.pump.common.defs.PumpDriverState; @@ -62,8 +64,11 @@ import info.nightscout.androidaps.plugins.pump.omnipod.util.LogReceiver; import info.nightscout.androidaps.plugins.pump.omnipod.util.OmnipodConst; 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.OKDialog; import info.nightscout.androidaps.utils.SP; +import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.schedulers.Schedulers; /** * Created by andy on 23.04.18. @@ -78,6 +83,7 @@ public class OmnipodPumpPlugin extends PumpPluginAbstract implements OmnipodPump private RileyLinkOmnipodService omnipodService; protected OmnipodPumpStatus pumpStatusLocal = null; protected OmnipodUIComm omnipodUIComm; + private CompositeDisposable disposable = new CompositeDisposable(); // variables for handling statuses and history protected boolean firstRun = true; @@ -166,6 +172,34 @@ public class OmnipodPumpPlugin extends PumpPluginAbstract implements OmnipodPump } + @Override + protected void onStart() { + super.onStart(); + disposable.add(RxBus.INSTANCE + .toObservable(EventPreferenceChange.class) + .observeOn(Schedulers.io()) + .subscribe(event -> { + if ((event.isChanged(R.string.key_omnipod_beep_basal_enabled)) || + (event.isChanged(R.string.key_omnipod_beep_bolus_enabled)) || + (event.isChanged(R.string.key_omnipod_beep_smb_enabled))) + refreshConfiguration(); + }, FabricPrivacy::logException) + ); + refreshConfiguration(); + } + + private void refreshConfiguration() { + if (pumpStatusLocal!=null) { + pumpStatusLocal.refreshConfiguration(); + } + } + + @Override + protected void onStop() { + disposable.clear(); + super.onStop(); + } + private String getLogPrefix() { return "OmnipodPlugin::"; } @@ -417,7 +451,7 @@ public class OmnipodPumpPlugin extends PumpPluginAbstract implements OmnipodPump } triggerUIChange(); - RxBus.INSTANCE.send(new EventOmnipodPumpValuesChanged()); + RxBus.INSTANCE.send(new EventRefreshOverview("Omnipod Pump")); getPodPumpStatus(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dialogs/PodManagementActivity.kt b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dialogs/PodManagementActivity.kt index 97e846c18f..38f19c255e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dialogs/PodManagementActivity.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dialogs/PodManagementActivity.kt @@ -9,6 +9,7 @@ import com.atech.android.library.wizardpager.defs.WizardStepsWayType import info.nightscout.androidaps.MainApp import info.nightscout.androidaps.R import info.nightscout.androidaps.activities.NoSplashActivity +import info.nightscout.androidaps.events.EventRefreshOverview import info.nightscout.androidaps.plugins.bus.RxBus import info.nightscout.androidaps.plugins.pump.omnipod.driver.comm.AapsOmnipodManager import info.nightscout.androidaps.plugins.pump.omnipod.dialogs.wizard.initpod.InitPodCancelAction @@ -25,6 +26,8 @@ import kotlinx.android.synthetic.main.omnipod_pod_mgmt.* */ class PodManagementActivity : NoSplashActivity() { + private var podSessionActiveOnStart:Boolean? = null + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.omnipod_pod_mgmt) @@ -53,7 +56,10 @@ class PodManagementActivity : NoSplashActivity() { override fun onDestroy() { super.onDestroy() - RxBus.send(EventOmnipodPumpValuesChanged()) + if (podSessionActiveOnStart!=(OmnipodUtil.getPodSessionState()!=null)) { + RxBus.send(EventOmnipodPumpValuesChanged()) + RxBus.send(EventRefreshOverview()) + } } @@ -121,6 +127,10 @@ class PodManagementActivity : NoSplashActivity() { val isPodSessionActive = (OmnipodUtil.getPodSessionState()!=null) + if (podSessionActiveOnStart==null) { + podSessionActiveOnStart = isPodSessionActive + } + initpod_init_pod.isEnabled = !isPodSessionActive initpod_remove_pod.isEnabled = isPodSessionActive initpod_reset_pod.isEnabled = isPodSessionActive diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/OmnipodPumpStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/OmnipodPumpStatus.java index 9a1cd51ea0..948d615be7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/OmnipodPumpStatus.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/OmnipodPumpStatus.java @@ -105,6 +105,8 @@ public class OmnipodPumpStatus extends PumpStatus { this.beepBolusEnabled = SP.getBoolean(OmnipodConst.Prefs.BeepBolusEnabled, true); this.beepSMBEnabled = SP.getBoolean(OmnipodConst.Prefs.BeepSMBEnabled, true); + LOG.debug("Beeps [basal={}, bolus={}, SMB={}]", this.beepBasalEnabled, this.beepBolusEnabled, this.beepSMBEnabled); + reconfigureService(); return true;