Merge pull request #2340 from MilosKozak/dagger3_0601a

pluginDescription as constructor declaration only
This commit is contained in:
Milos Kozak 2020-01-06 21:43:26 +01:00 committed by GitHub
commit 3a77fb70fe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
65 changed files with 540 additions and 422 deletions

View file

@ -202,7 +202,7 @@ public class MainActivity extends NoSplashAppCompatActivity {
menu.clear();
for (PluginBase p : MainApp.getPluginsList()) {
pageAdapter.registerNewFragment(p);
if (p.hasFragment() && !p.isFragmentVisible() && p.isEnabled(p.pluginDescription.getType()) && !p.pluginDescription.neverVisible) {
if (p.hasFragment() && !p.isFragmentVisible() && p.isEnabled(p.getPluginDescription().getType()) && !p.getPluginDescription().neverVisible) {
MenuItem menuItem = menu.add(p.getName());
menuItem.setCheckable(true);
menuItem.setOnMenuItemClickListener(item -> {

View file

@ -128,9 +128,9 @@ public class MainApp extends DaggerApplication {
public static boolean devBranch;
public static boolean engineeringMode;
private String CHANNEL_ID = "AndroidAPS-Ongoing";
private int ONGOING_NOTIFICATION_ID = 4711;
private Notification notification;
private String CHANNEL_ID = "AndroidAPS-Ongoing"; // TODO: move to OngoingNotificationProvider (and dagger)
private int ONGOING_NOTIFICATION_ID = 4711; // TODO: move to OngoingNotificationProvider (and dagger)
private Notification notification; // TODO: move to OngoingNotificationProvider (and dagger)
@Inject AAPSLogger aapsLogger;
@Inject ActivityMonitor activityMonitor;

View file

@ -8,9 +8,11 @@ import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
import info.nightscout.androidaps.events.EventConfigBuilderChange
import info.nightscout.androidaps.events.EventRebuildTabs
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.L
import info.nightscout.androidaps.logging.L.isEnabled
import info.nightscout.androidaps.plugins.bus.RxBus
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin
import info.nightscout.androidaps.plugins.configBuilder.EventConfigBuilderUpdateGui
import info.nightscout.androidaps.utils.OKDialog.showConfirmation
@ -20,7 +22,8 @@ import org.slf4j.LoggerFactory
/**
* Created by mike on 09.06.2016.
*/
abstract class PluginBase(pluginDesc: PluginDescription) {
abstract class PluginBase(val pluginDescription: PluginDescription, val rxBus: RxBusWrapper, val aapsLogger: AAPSLogger ) {
companion object {
private val log = LoggerFactory.getLogger(L.CORE)
}
@ -29,17 +32,11 @@ abstract class PluginBase(pluginDesc: PluginDescription) {
NOT_INITIALIZED, ENABLED, DISABLED
}
lateinit var pluginDescription: PluginDescription // TODO: workaround to have pluginDescription accessible in child classes
private var state = State.NOT_INITIALIZED
private var fragmentVisible = false
// Specific plugin with more Interfaces
protected var isProfileInterfaceEnabled = false
init {
pluginDescription = pluginDesc
}
// Default always calls invoke
// Plugins that have special constraints if they get switched to may override this method
open fun switchAllowed(newState: Boolean, activity: FragmentActivity?, type: PluginType) {

View file

@ -68,8 +68,6 @@ import io.reactivex.schedulers.Schedulers;
@Singleton
public class LoopPlugin extends PluginBase {
private final AAPSLogger aapsLogger;
private final RxBusWrapper rxBus;
private final SP sp;
private final ConstraintChecker constraintChecker;
private final ResourceHelper resourceHelper;
@ -106,7 +104,7 @@ public class LoopPlugin extends PluginBase {
@Inject
public LoopPlugin(
AAPSLogger aapsLogger,
RxBusWrapper rxBus,
RxBusWrapper rxBusWrapper,
SP sp,
ConstraintChecker constraintChecker,
ResourceHelper resourceHelper,
@ -123,10 +121,9 @@ public class LoopPlugin extends PluginBase {
.pluginName(R.string.loop)
.shortName(R.string.loop_shortname)
.preferencesId(R.xml.pref_loop)
.description(R.string.description_loop)
.description(R.string.description_loop),
rxBusWrapper, aapsLogger
);
this.aapsLogger = aapsLogger;
this.rxBus = rxBus;
this.sp = sp;
this.constraintChecker = constraintChecker;
this.resourceHelper = resourceHelper;
@ -146,7 +143,7 @@ public class LoopPlugin extends PluginBase {
protected void onStart() {
createNotificationChannel();
super.onStart();
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventTempTargetChange.class)
.observeOn(Schedulers.io())
.subscribe(event -> invoke("EventTempTargetChange", true), exception -> FabricPrivacy.getInstance().logException(exception))
@ -158,7 +155,7 @@ public class LoopPlugin extends PluginBase {
* the event causing the calculation is not EventNewBg.
* <p>
*/
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventAutosensCalculationFinished.class)
.observeOn(Schedulers.io())
.subscribe(event -> {
@ -294,13 +291,13 @@ public class LoopPlugin extends PluginBase {
public synchronized void invoke(String initiator, boolean allowNotification, boolean tempBasalFallback) {
try {
aapsLogger.debug(LTag.APS, "invoke from " + initiator);
getAapsLogger().debug(LTag.APS, "invoke from " + initiator);
Constraint<Boolean> loopEnabled = constraintChecker.isLoopInvocationAllowed();
if (!loopEnabled.value()) {
String message = resourceHelper.gs(R.string.loopdisabled) + "\n" + loopEnabled.getReasons();
aapsLogger.debug(LTag.APS, message);
rxBus.send(new EventLoopSetLastRunGui(message));
getAapsLogger().debug(LTag.APS, message);
getRxBus().send(new EventLoopSetLastRunGui(message));
return;
}
final PumpInterface pump = configBuilderPlugin.getActivePump();
@ -315,8 +312,8 @@ public class LoopPlugin extends PluginBase {
if (profile == null || !profileFunction.isProfileValid("Loop")) {
if (L.isEnabled(L.APS))
aapsLogger.debug(LTag.APS, resourceHelper.gs(R.string.noprofileselected));
rxBus.send(new EventLoopSetLastRunGui(resourceHelper.gs(R.string.noprofileselected)));
getAapsLogger().debug(LTag.APS, resourceHelper.gs(R.string.noprofileselected));
getRxBus().send(new EventLoopSetLastRunGui(resourceHelper.gs(R.string.noprofileselected)));
return;
}
@ -331,7 +328,7 @@ public class LoopPlugin extends PluginBase {
// Check if we have any result
if (result == null) {
rxBus.send(new EventLoopSetLastRunGui(resourceHelper.gs(R.string.noapsselected)));
getRxBus().send(new EventLoopSetLastRunGui(resourceHelper.gs(R.string.noapsselected)));
return;
}
@ -355,7 +352,7 @@ public class LoopPlugin extends PluginBase {
// safety check for multiple SMBs
long lastBolusTime = treatmentsPlugin.getLastBolusTime();
if (lastBolusTime != 0 && lastBolusTime + T.mins(3).msecs() > System.currentTimeMillis()) {
aapsLogger.debug(LTag.APS, "SMB requsted but still in 3 min interval");
getAapsLogger().debug(LTag.APS, "SMB requsted but still in 3 min interval");
resultAfterConstraints.smb = 0;
}
@ -370,14 +367,14 @@ public class LoopPlugin extends PluginBase {
NSUpload.uploadDeviceStatus(this);
if (isSuspended()) {
aapsLogger.debug(LTag.APS, resourceHelper.gs(R.string.loopsuspended));
rxBus.send(new EventLoopSetLastRunGui(resourceHelper.gs(R.string.loopsuspended)));
getAapsLogger().debug(LTag.APS, resourceHelper.gs(R.string.loopsuspended));
getRxBus().send(new EventLoopSetLastRunGui(resourceHelper.gs(R.string.loopsuspended)));
return;
}
if (pump.isSuspended()) {
aapsLogger.debug(LTag.APS, resourceHelper.gs(R.string.pumpsuspended));
rxBus.send(new EventLoopSetLastRunGui(resourceHelper.gs(R.string.pumpsuspended)));
getAapsLogger().debug(LTag.APS, resourceHelper.gs(R.string.pumpsuspended));
getRxBus().send(new EventLoopSetLastRunGui(resourceHelper.gs(R.string.pumpsuspended)));
return;
}
@ -393,7 +390,7 @@ public class LoopPlugin extends PluginBase {
lastRun.tbrSetByPump = waiting;
if (resultAfterConstraints.bolusRequested)
lastRun.smbSetByPump = waiting;
rxBus.send(new EventLoopUpdateGui());
getRxBus().send(new EventLoopUpdateGui());
FabricPrivacy.getInstance().logCustom("APSRequest");
applyTBRRequest(resultAfterConstraints, profile, new Callback() {
@Override
@ -414,11 +411,11 @@ public class LoopPlugin extends PluginBase {
invoke("tempBasalFallback", allowNotification, true);
}).start();
}
rxBus.send(new EventLoopUpdateGui());
getRxBus().send(new EventLoopUpdateGui());
}
});
}
rxBus.send(new EventLoopUpdateGui());
getRxBus().send(new EventLoopUpdateGui());
}
});
} else {
@ -459,7 +456,7 @@ public class LoopPlugin extends PluginBase {
(NotificationManager) mainApp.getSystemService(Context.NOTIFICATION_SERVICE);
// mId allows you to update the notification later on.
mNotificationManager.notify(Constants.notificationID, builder.build());
rxBus.send(new EventNewOpenLoopNotification());
getRxBus().send(new EventNewOpenLoopNotification());
// Send to Wear
actionStringHandler.get().handleInitiate("changeRequest");
@ -472,9 +469,9 @@ public class LoopPlugin extends PluginBase {
}
}
rxBus.send(new EventLoopUpdateGui());
getRxBus().send(new EventLoopUpdateGui());
} finally {
aapsLogger.debug(LTag.APS, "invoke end");
getAapsLogger().debug(LTag.APS, "invoke end");
}
}
@ -491,7 +488,7 @@ public class LoopPlugin extends PluginBase {
NSUpload.uploadDeviceStatus(lp);
sp.incInt(R.string.key_ObjectivesmanualEnacts);
}
rxBus.send(new EventAcceptOpenLoopChange());
getRxBus().send(new EventAcceptOpenLoopChange());
}
});
FabricPrivacy.getInstance().logCustom("AcceptTemp");
@ -520,7 +517,7 @@ public class LoopPlugin extends PluginBase {
}
if (!pump.isInitialized()) {
aapsLogger.debug(LTag.APS, "applyAPSRequest: " + resourceHelper.gs(R.string.pumpNotInitialized));
getAapsLogger().debug(LTag.APS, "applyAPSRequest: " + resourceHelper.gs(R.string.pumpNotInitialized));
if (callback != null) {
callback.result(new PumpEnactResult().comment(resourceHelper.gs(R.string.pumpNotInitialized)).enacted(false).success(false)).run();
}
@ -528,24 +525,24 @@ public class LoopPlugin extends PluginBase {
}
if (pump.isSuspended()) {
aapsLogger.debug(LTag.APS, "applyAPSRequest: " + resourceHelper.gs(R.string.pumpsuspended));
getAapsLogger().debug(LTag.APS, "applyAPSRequest: " + resourceHelper.gs(R.string.pumpsuspended));
if (callback != null) {
callback.result(new PumpEnactResult().comment(resourceHelper.gs(R.string.pumpsuspended)).enacted(false).success(false)).run();
}
return;
}
aapsLogger.debug(LTag.APS, "applyAPSRequest: " + request.toString());
getAapsLogger().debug(LTag.APS, "applyAPSRequest: " + request.toString());
long now = System.currentTimeMillis();
TemporaryBasal activeTemp = treatmentsPlugin.getTempBasalFromHistory(now);
if (request.usePercent && allowPercentage) {
if (request.percent == 100 && request.duration == 0) {
if (activeTemp != null) {
aapsLogger.debug(LTag.APS, "applyAPSRequest: cancelTempBasal()");
getAapsLogger().debug(LTag.APS, "applyAPSRequest: cancelTempBasal()");
configBuilderPlugin.getCommandQueue().cancelTempBasal(false, callback);
} else {
aapsLogger.debug(LTag.APS, "applyAPSRequest: Basal set correctly");
getAapsLogger().debug(LTag.APS, "applyAPSRequest: Basal set correctly");
if (callback != null) {
callback.result(new PumpEnactResult().percent(request.percent).duration(0)
.enacted(false).success(true).comment(resourceHelper.gs(R.string.basal_set_correctly))).run();
@ -555,23 +552,23 @@ public class LoopPlugin extends PluginBase {
&& activeTemp.getPlannedRemainingMinutes() > 5
&& request.duration - activeTemp.getPlannedRemainingMinutes() < 30
&& request.percent == activeTemp.percentRate) {
aapsLogger.debug(LTag.APS, "applyAPSRequest: Temp basal set correctly");
getAapsLogger().debug(LTag.APS, "applyAPSRequest: Temp basal set correctly");
if (callback != null) {
callback.result(new PumpEnactResult().percent(request.percent)
.enacted(false).success(true).duration(activeTemp.getPlannedRemainingMinutes())
.comment(resourceHelper.gs(R.string.let_temp_basal_run))).run();
}
} else {
aapsLogger.debug(LTag.APS, "applyAPSRequest: tempBasalPercent()");
getAapsLogger().debug(LTag.APS, "applyAPSRequest: tempBasalPercent()");
configBuilderPlugin.getCommandQueue().tempBasalPercent(request.percent, request.duration, false, profile, callback);
}
} else {
if ((request.rate == 0 && request.duration == 0) || Math.abs(request.rate - pump.getBaseBasalRate()) < pump.getPumpDescription().basalStep) {
if (activeTemp != null) {
aapsLogger.debug(LTag.APS, "applyAPSRequest: cancelTempBasal()");
getAapsLogger().debug(LTag.APS, "applyAPSRequest: cancelTempBasal()");
configBuilderPlugin.getCommandQueue().cancelTempBasal(false, callback);
} else {
aapsLogger.debug(LTag.APS, "applyAPSRequest: Basal set correctly");
getAapsLogger().debug(LTag.APS, "applyAPSRequest: Basal set correctly");
if (callback != null) {
callback.result(new PumpEnactResult().absolute(request.rate).duration(0)
.enacted(false).success(true).comment(resourceHelper.gs(R.string.basal_set_correctly))).run();
@ -581,14 +578,14 @@ public class LoopPlugin extends PluginBase {
&& activeTemp.getPlannedRemainingMinutes() > 5
&& request.duration - activeTemp.getPlannedRemainingMinutes() < 30
&& Math.abs(request.rate - activeTemp.tempBasalConvertedToAbsolute(now, profile)) < pump.getPumpDescription().basalStep) {
aapsLogger.debug(LTag.APS, "applyAPSRequest: Temp basal set correctly");
getAapsLogger().debug(LTag.APS, "applyAPSRequest: Temp basal set correctly");
if (callback != null) {
callback.result(new PumpEnactResult().absolute(activeTemp.tempBasalConvertedToAbsolute(now, profile))
.enacted(false).success(true).duration(activeTemp.getPlannedRemainingMinutes())
.comment(resourceHelper.gs(R.string.let_temp_basal_run))).run();
}
} else {
aapsLogger.debug(LTag.APS, "applyAPSRequest: setTempBasalAbsolute()");
getAapsLogger().debug(LTag.APS, "applyAPSRequest: setTempBasalAbsolute()");
configBuilderPlugin.getCommandQueue().tempBasalAbsolute(request.rate, request.duration, false, profile, callback);
}
}
@ -608,7 +605,7 @@ public class LoopPlugin extends PluginBase {
long lastBolusTime = treatmentsPlugin.getLastBolusTime();
if (lastBolusTime != 0 && lastBolusTime + 3 * 60 * 1000 > System.currentTimeMillis()) {
aapsLogger.debug(LTag.APS, "SMB requested but still in 3 min interval");
getAapsLogger().debug(LTag.APS, "SMB requested but still in 3 min interval");
if (callback != null) {
callback.result(new PumpEnactResult()
.comment(resourceHelper.gs(R.string.smb_frequency_exceeded))
@ -618,7 +615,7 @@ public class LoopPlugin extends PluginBase {
}
if (!pump.isInitialized()) {
aapsLogger.debug(LTag.APS, "applySMBRequest: " + resourceHelper.gs(R.string.pumpNotInitialized));
getAapsLogger().debug(LTag.APS, "applySMBRequest: " + resourceHelper.gs(R.string.pumpNotInitialized));
if (callback != null) {
callback.result(new PumpEnactResult().comment(resourceHelper.gs(R.string.pumpNotInitialized)).enacted(false).success(false)).run();
}
@ -626,14 +623,14 @@ public class LoopPlugin extends PluginBase {
}
if (pump.isSuspended()) {
aapsLogger.debug(LTag.APS, "applySMBRequest: " + resourceHelper.gs(R.string.pumpsuspended));
getAapsLogger().debug(LTag.APS, "applySMBRequest: " + resourceHelper.gs(R.string.pumpsuspended));
if (callback != null) {
callback.result(new PumpEnactResult().comment(resourceHelper.gs(R.string.pumpsuspended)).enacted(false).success(false)).run();
}
return;
}
aapsLogger.debug(LTag.APS, "applySMBRequest: " + request.toString());
getAapsLogger().debug(LTag.APS, "applySMBRequest: " + request.toString());
// deliver SMB
DetailedBolusInfo detailedBolusInfo = new DetailedBolusInfo();
@ -643,7 +640,7 @@ public class LoopPlugin extends PluginBase {
detailedBolusInfo.isSMB = true;
detailedBolusInfo.source = Source.USER;
detailedBolusInfo.deliverAt = request.deliverAt;
aapsLogger.debug(LTag.APS, "applyAPSRequest: bolus()");
getAapsLogger().debug(LTag.APS, "applyAPSRequest: bolus()");
configBuilderPlugin.getCommandQueue().bolus(detailedBolusInfo, callback);
}

View file

@ -74,7 +74,8 @@ public class OpenAPSAMAPlugin extends PluginBase implements APSInterface {
.pluginName(R.string.openapsama)
.shortName(R.string.oaps_shortname)
.preferencesId(R.xml.pref_openapsama)
.description(R.string.description_ama)
.description(R.string.description_ama),
rxBus, aapsLogger
);
this.aapsLogger = aapsLogger;
this.rxBus = rxBus;

View file

@ -41,8 +41,6 @@ import static info.nightscout.androidaps.utils.HardLimits.verifyHardLimits;
@Singleton
public class OpenAPSMAPlugin extends PluginBase implements APSInterface {
private final AAPSLogger aapsLogger;
private final RxBusWrapper rxBus;
private final ConstraintChecker constraintChecker;
private final ResourceHelper resourceHelper;
private final ProfileFunction profileFunction;
@ -59,7 +57,7 @@ public class OpenAPSMAPlugin extends PluginBase implements APSInterface {
@Inject
public OpenAPSMAPlugin(
AAPSLogger aapsLogger,
RxBusWrapper rxBus,
RxBusWrapper rxBusWrapper,
ConstraintChecker constraintChecker,
ResourceHelper resourceHelper,
ProfileFunction profileFunction,
@ -69,15 +67,15 @@ public class OpenAPSMAPlugin extends PluginBase implements APSInterface {
IobCobCalculatorPlugin iobCobCalculatorPlugin
) {
super(new PluginDescription()
.mainType(PluginType.APS)
.fragmentClass(OpenAPSMAFragment.class.getName())
.pluginName(R.string.openapsma)
.shortName(R.string.oaps_shortname)
.preferencesId(R.xml.pref_openapsma)
.description(R.string.description_ma)
.mainType(PluginType.APS)
.fragmentClass(OpenAPSMAFragment.class.getName())
.pluginName(R.string.openapsma)
.shortName(R.string.oaps_shortname)
.preferencesId(R.xml.pref_openapsma)
.description(R.string.description_ma),
rxBusWrapper, aapsLogger
);
this.aapsLogger = aapsLogger;
this.rxBus = rxBus;
this.constraintChecker = constraintChecker;
this.resourceHelper = resourceHelper;
this.profileFunction = profileFunction;
@ -111,36 +109,36 @@ public class OpenAPSMAPlugin extends PluginBase implements APSInterface {
@Override
public void invoke(String initiator, boolean tempBasalFallback) {
aapsLogger.debug(LTag.APS, "invoke from " + initiator + " tempBasalFallback: " + tempBasalFallback);
getAapsLogger().debug(LTag.APS, "invoke from " + initiator + " tempBasalFallback: " + tempBasalFallback);
lastAPSResult = null;
DetermineBasalAdapterMAJS determineBasalAdapterMAJS;
determineBasalAdapterMAJS = new DetermineBasalAdapterMAJS(new ScriptReader(mainApp), aapsLogger);
determineBasalAdapterMAJS = new DetermineBasalAdapterMAJS(new ScriptReader(mainApp), getAapsLogger());
GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
Profile profile = profileFunction.getProfile();
PumpInterface pump = configBuilderPlugin.getActivePump();
if (profile == null) {
rxBus.send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.noprofileselected)));
aapsLogger.debug(LTag.APS, resourceHelper.gs(R.string.noprofileselected));
getRxBus().send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.noprofileselected)));
getAapsLogger().debug(LTag.APS, resourceHelper.gs(R.string.noprofileselected));
return;
}
if (pump == null) {
rxBus.send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.nopumpselected)));
aapsLogger.debug(LTag.APS, resourceHelper.gs(R.string.nopumpselected));
getRxBus().send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.nopumpselected)));
getAapsLogger().debug(LTag.APS, resourceHelper.gs(R.string.nopumpselected));
return;
}
if (!isEnabled(PluginType.APS)) {
rxBus.send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.openapsma_disabled)));
aapsLogger.debug(LTag.APS, resourceHelper.gs(R.string.openapsma_disabled));
getRxBus().send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.openapsma_disabled)));
getAapsLogger().debug(LTag.APS, resourceHelper.gs(R.string.openapsma_disabled));
return;
}
if (glucoseStatus == null) {
rxBus.send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.openapsma_noglucosedata)));
aapsLogger.debug(LTag.APS, resourceHelper.gs(R.string.openapsma_noglucosedata));
getRxBus().send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.openapsma_noglucosedata)));
getAapsLogger().debug(LTag.APS, resourceHelper.gs(R.string.openapsma_noglucosedata));
return;
}
@ -164,7 +162,7 @@ public class OpenAPSMAPlugin extends PluginBase implements APSInterface {
MealData mealData = iobCobCalculatorPlugin.getMealData();
double maxIob = constraintChecker.getMaxIOBAllowed().value();
Profiler.log(aapsLogger, LTag.APS, "MA data gathering", start);
Profiler.log(getAapsLogger(), LTag.APS, "MA data gathering", start);
minBg = verifyHardLimits(minBg, "minBg", HardLimits.VERY_HARD_LIMIT_MIN_BG[0], HardLimits.VERY_HARD_LIMIT_MIN_BG[1]);
maxBg = verifyHardLimits(maxBg, "maxBg", HardLimits.VERY_HARD_LIMIT_MAX_BG[0], HardLimits.VERY_HARD_LIMIT_MAX_BG[1]);
@ -195,14 +193,14 @@ public class OpenAPSMAPlugin extends PluginBase implements APSInterface {
FabricPrivacy.getInstance().logException(e);
return;
}
Profiler.log(aapsLogger, LTag.APS, "MA calculation", start);
Profiler.log(getAapsLogger(), LTag.APS, "MA calculation", start);
long now = System.currentTimeMillis();
DetermineBasalResultMA determineBasalResultMA = determineBasalAdapterMAJS.invoke();
if (determineBasalResultMA == null) {
aapsLogger.error(LTag.APS, "MA calculation returned null");
getAapsLogger().error(LTag.APS, "MA calculation returned null");
lastDetermineBasalAdapterMAJS = null;
lastAPSResult = null;
lastAPSRun = 0;
@ -216,14 +214,14 @@ public class OpenAPSMAPlugin extends PluginBase implements APSInterface {
try {
determineBasalResultMA.json.put("timestamp", DateUtil.toISOString(now));
} catch (JSONException e) {
aapsLogger.error(LTag.APS, "Unhandled exception", e);
getAapsLogger().error(LTag.APS, "Unhandled exception", e);
}
lastDetermineBasalAdapterMAJS = determineBasalAdapterMAJS;
lastAPSResult = determineBasalResultMA;
lastAPSRun = now;
}
rxBus.send(new EventOpenAPSUpdateGui());
getRxBus().send(new EventOpenAPSUpdateGui());
}

View file

@ -45,8 +45,6 @@ import info.nightscout.androidaps.utils.resources.ResourceHelper;
@Singleton
public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, ConstraintsInterface {
private final AAPSLogger aapsLogger;
private final RxBusWrapper rxBus;
private final ConstraintChecker constraintChecker;
private final ResourceHelper resourceHelper;
private final ProfileFunction profileFunction;
@ -76,7 +74,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr
@Inject
public OpenAPSSMBPlugin(
AAPSLogger aapsLogger,
RxBusWrapper rxBus,
RxBusWrapper rxBusWrapper,
ConstraintChecker constraintChecker,
ResourceHelper resourceHelper,
ProfileFunction profileFunction,
@ -84,19 +82,18 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr
ConfigBuilderPlugin configBuilderPlugin,
TreatmentsPlugin treatmentsPlugin,
IobCobCalculatorPlugin iobCobCalculatorPlugin
) {
) {
super(new PluginDescription()
.mainType(PluginType.APS)
.fragmentClass(OpenAPSSMBFragment.class.getName())
.pluginName(R.string.openapssmb)
.shortName(R.string.smb_shortname)
.preferencesId(R.xml.pref_openapssmb)
.description(R.string.description_smb)
.mainType(PluginType.APS)
.fragmentClass(OpenAPSSMBFragment.class.getName())
.pluginName(R.string.openapssmb)
.shortName(R.string.smb_shortname)
.preferencesId(R.xml.pref_openapssmb)
.description(R.string.description_smb),
rxBusWrapper, aapsLogger
);
this.openAPSSMBPlugin = this; // TODO: only while transitioning to Dagger
this.aapsLogger = aapsLogger;
this.rxBus = rxBus;
this.constraintChecker = constraintChecker;
this.resourceHelper = resourceHelper;
this.profileFunction = profileFunction;
@ -130,36 +127,36 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr
@Override
public void invoke(String initiator, boolean tempBasalFallback) {
aapsLogger.debug(LTag.APS, "invoke from " + initiator + " tempBasalFallback: " + tempBasalFallback);
getAapsLogger().debug(LTag.APS, "invoke from " + initiator + " tempBasalFallback: " + tempBasalFallback);
lastAPSResult = null;
DetermineBasalAdapterSMBJS determineBasalAdapterSMBJS;
determineBasalAdapterSMBJS = new DetermineBasalAdapterSMBJS(new ScriptReader(mainApp), aapsLogger);
determineBasalAdapterSMBJS = new DetermineBasalAdapterSMBJS(new ScriptReader(mainApp), getAapsLogger());
GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData();
Profile profile = profileFunction.getProfile();
PumpInterface pump = configBuilderPlugin.getActivePump();
if (profile == null) {
rxBus.send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.noprofileselected)));
aapsLogger.debug(LTag.APS, resourceHelper.gs(R.string.noprofileselected));
getRxBus().send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.noprofileselected)));
getAapsLogger().debug(LTag.APS, resourceHelper.gs(R.string.noprofileselected));
return;
}
if (pump == null) {
rxBus.send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.nopumpselected)));
aapsLogger.debug(LTag.APS, resourceHelper.gs(R.string.nopumpselected));
getRxBus().send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.nopumpselected)));
getAapsLogger().debug(LTag.APS, resourceHelper.gs(R.string.nopumpselected));
return;
}
if (!isEnabled(PluginType.APS)) {
rxBus.send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.openapsma_disabled)));
aapsLogger.debug(LTag.APS, resourceHelper.gs(R.string.openapsma_disabled));
getRxBus().send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.openapsma_disabled)));
getAapsLogger().debug(LTag.APS, resourceHelper.gs(R.string.openapsma_disabled));
return;
}
if (glucoseStatus == null) {
rxBus.send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.openapsma_noglucosedata)));
aapsLogger.debug(LTag.APS, resourceHelper.gs(R.string.openapsma_noglucosedata));
getRxBus().send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.openapsma_noglucosedata)));
getAapsLogger().debug(LTag.APS, resourceHelper.gs(R.string.openapsma_noglucosedata));
return;
}
@ -179,7 +176,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr
long startPart = System.currentTimeMillis();
MealData mealData = iobCobCalculatorPlugin.getMealData();
Profiler.log(aapsLogger, LTag.APS, "getMealData()", startPart);
Profiler.log(getAapsLogger(), LTag.APS, "getMealData()", startPart);
Constraint<Double> maxIOBAllowedConstraint = constraintChecker.getMaxIOBAllowed();
inputConstraints.copyReasons(maxIOBAllowedConstraint);
@ -214,7 +211,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr
if (constraintChecker.isAutosensModeEnabled().value()) {
AutosensData autosensData = iobCobCalculatorPlugin.getLastAutosensDataSynchronized("OpenAPSPlugin");
if (autosensData == null) {
rxBus.send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.openaps_noasdata)));
getRxBus().send(new EventOpenAPSUpdateResultGui(resourceHelper.gs(R.string.openaps_noasdata)));
return;
}
lastAutosensResult = autosensData.autosensResult;
@ -224,7 +221,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr
}
IobTotal[] iobArray = iobCobCalculatorPlugin.calculateIobArrayForSMB(lastAutosensResult, SMBDefaults.exercise_mode, SMBDefaults.half_basal_exercise_target, isTempTarget);
Profiler.log(aapsLogger, LTag.APS, "calculateIobArrayInDia()", startPart);
Profiler.log(getAapsLogger(), LTag.APS, "calculateIobArrayInDia()", startPart);
startPart = System.currentTimeMillis();
Constraint<Boolean> smbAllowed = new Constraint<>(!tempBasalFallback);
@ -239,8 +236,8 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr
constraintChecker.isUAMEnabled(uam);
inputConstraints.copyReasons(uam);
Profiler.log(aapsLogger, LTag.APS, "detectSensitivityandCarbAbsorption()", startPart);
Profiler.log(aapsLogger, LTag.APS, "SMB data gathering", start);
Profiler.log(getAapsLogger(), LTag.APS, "detectSensitivityandCarbAbsorption()", startPart);
Profiler.log(getAapsLogger(), LTag.APS, "SMB data gathering", start);
start = System.currentTimeMillis();
try {
@ -259,9 +256,9 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr
long now = System.currentTimeMillis();
DetermineBasalResultSMB determineBasalResultSMB = determineBasalAdapterSMBJS.invoke();
Profiler.log(aapsLogger, LTag.APS, "SMB calculation", start);
Profiler.log(getAapsLogger(), LTag.APS, "SMB calculation", start);
if (determineBasalResultSMB == null) {
aapsLogger.error(LTag.APS, "SMB calculation returned null");
getAapsLogger().error(LTag.APS, "SMB calculation returned null");
lastDetermineBasalAdapterSMBJS = null;
lastAPSResult = null;
lastAPSRun = 0;
@ -276,7 +273,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr
try {
determineBasalResultSMB.json.put("timestamp", DateUtil.toISOString(now));
} catch (JSONException e) {
aapsLogger.error(LTag.APS, "Unhandled exception", e);
getAapsLogger().error(LTag.APS, "Unhandled exception", e);
}
determineBasalResultSMB.inputConstraints = inputConstraints;
@ -285,7 +282,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr
lastAPSResult = determineBasalResultSMB;
lastAPSRun = now;
}
rxBus.send(new EventOpenAPSUpdateGui());
getRxBus().send(new EventOpenAPSUpdateGui());
//deviceStatus.suggested = determineBasalResultAMA.json;
}
@ -303,7 +300,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface, Constr
String msg = String.format(resourceHelper.gs(R.string.valueoutofrange), valueName);
msg += ".\n";
msg += String.format(resourceHelper.gs(R.string.valuelimitedto), value, newvalue);
aapsLogger.error(LTag.APS, msg);
getAapsLogger().error(LTag.APS, msg);
NSUpload.uploadError(msg);
ToastUtils.showToastInUiThread(mainApp, msg, R.raw.error);
}

View file

@ -40,9 +40,7 @@ import info.nightscout.androidaps.utils.sharedPreferences.SP;
@Singleton
public class ConfigBuilderPlugin extends PluginBase {
private static ConfigBuilderPlugin configBuilderPlugin;
private final AAPSLogger aapsLogger; // TODO move to plugin base
private final SP sp;
private final RxBusWrapper rxBus;
private final SP sp;
/**
@ -66,7 +64,6 @@ public class ConfigBuilderPlugin extends PluginBase {
private CommandQueue commandQueue = new CommandQueue();
private final Lazy<MainApp> mainApp;
private final Lazy<InsulinOrefRapidActingPlugin> insulinOrefRapidActingPlugin;
private final Lazy<LocalProfilePlugin> localProfilePlugin;
private final Lazy<VirtualPumpPlugin> virtualPumpPlugin;
@ -80,31 +77,27 @@ public class ConfigBuilderPlugin extends PluginBase {
* */
@Inject
public ConfigBuilderPlugin(
Lazy<MainApp> mainApp,
Lazy<InsulinOrefRapidActingPlugin> insulinOrefRapidActingPlugin,
Lazy<LocalProfilePlugin> localProfilePlugin,
Lazy<VirtualPumpPlugin> virtualPumpPlugin,
AAPSLogger aapsLogger,
SP sp,
RxBusWrapper rxBus
) {
RxBusWrapper rxBus,
AAPSLogger aapsLogger) {
super(new PluginDescription()
.mainType(PluginType.GENERAL)
.fragmentClass(ConfigBuilderFragment.class.getName())
.showInList(true)
.alwaysEnabled(true)
.alwaysVisible(false)
.pluginName(R.string.configbuilder)
.shortName(R.string.configbuilder_shortname)
.description(R.string.description_config_builder)
.mainType(PluginType.GENERAL)
.fragmentClass(ConfigBuilderFragment.class.getName())
.showInList(true)
.alwaysEnabled(true)
.alwaysVisible(false)
.pluginName(R.string.configbuilder)
.shortName(R.string.configbuilder_shortname)
.description(R.string.description_config_builder),
rxBus, aapsLogger
);
this.mainApp = mainApp;
this.insulinOrefRapidActingPlugin = insulinOrefRapidActingPlugin;
this.localProfilePlugin = localProfilePlugin;
this.virtualPumpPlugin = virtualPumpPlugin;
this.aapsLogger = aapsLogger;
this.sp = sp;
this.rxBus =rxBus;
configBuilderPlugin = this; // TODO: only while transitioning to Dagger
}
@ -118,7 +111,7 @@ public class ConfigBuilderPlugin extends PluginBase {
private void setAlwaysEnabledPluginsEnabled() {
for (PluginBase plugin : pluginList) {
if (plugin.pluginDescription.alwaysEnabled)
if (plugin.getPluginDescription().alwaysEnabled)
plugin.setPluginEnabled(plugin.getType(), true);
}
storeSettings("setAlwaysEnabledPluginsEnabled");
@ -126,15 +119,15 @@ public class ConfigBuilderPlugin extends PluginBase {
public void storeSettings(String from) {
if (pluginList != null) {
aapsLogger.debug(LTag.CONFIGBUILDER, "Storing settings from: " + from);
getAapsLogger().debug(LTag.CONFIGBUILDER, "Storing settings from: " + from);
verifySelectionInCategories();
for (PluginBase p : pluginList) {
PluginType type = p.getType();
if (p.pluginDescription.alwaysEnabled && p.pluginDescription.alwaysVisible)
if (p.getPluginDescription().alwaysEnabled && p.getPluginDescription().alwaysVisible)
continue;
if (p.pluginDescription.alwaysEnabled && p.pluginDescription.neverVisible)
if (p.getPluginDescription().alwaysEnabled && p.getPluginDescription().neverVisible)
continue;
savePref(p, type, true);
if (type == PluginType.PUMP) {
@ -149,16 +142,16 @@ public class ConfigBuilderPlugin extends PluginBase {
private void savePref(PluginBase p, PluginType type, boolean storeVisible) {
String settingEnabled = "ConfigBuilder_" + type.name() + "_" + p.getClass().getSimpleName() + "_Enabled";
sp.putBoolean(settingEnabled, p.isEnabled(type));
aapsLogger.debug(LTag.CONFIGBUILDER, "Storing: " + settingEnabled + ":" + p.isEnabled(type));
getAapsLogger().debug(LTag.CONFIGBUILDER, "Storing: " + settingEnabled + ":" + p.isEnabled(type));
if (storeVisible) {
String settingVisible = "ConfigBuilder_" + type.name() + "_" + p.getClass().getSimpleName() + "_Visible";
sp.putBoolean(settingVisible, p.isFragmentVisible());
aapsLogger.debug(LTag.CONFIGBUILDER, "Storing: " + settingVisible + ":" + p.isFragmentVisible());
getAapsLogger().debug(LTag.CONFIGBUILDER, "Storing: " + settingVisible + ":" + p.isFragmentVisible());
}
}
private void loadSettings() {
aapsLogger.debug(LTag.CONFIGBUILDER, "Loading stored settings");
getAapsLogger().debug(LTag.CONFIGBUILDER, "Loading stored settings");
for (PluginBase p : pluginList) {
PluginType type = p.getType();
loadPref(p, type, true);
@ -175,18 +168,18 @@ public class ConfigBuilderPlugin extends PluginBase {
String settingEnabled = "ConfigBuilder_" + type.name() + "_" + p.getClass().getSimpleName() + "_Enabled";
if (sp.contains(settingEnabled))
p.setPluginEnabled(type, sp.getBoolean(settingEnabled, false));
else if (p.getType() == type && (p.pluginDescription.enableByDefault || p.pluginDescription.alwaysEnabled)) {
else if (p.getType() == type && (p.getPluginDescription().enableByDefault || p.getPluginDescription().alwaysEnabled)) {
p.setPluginEnabled(type, true);
}
aapsLogger.debug(LTag.CONFIGBUILDER, "Loaded: " + settingEnabled + ":" + p.isEnabled(type));
getAapsLogger().debug(LTag.CONFIGBUILDER, "Loaded: " + settingEnabled + ":" + p.isEnabled(type));
if (loadVisible) {
String settingVisible = "ConfigBuilder_" + type.name() + "_" + p.getClass().getSimpleName() + "_Visible";
if (sp.contains(settingVisible))
p.setFragmentVisible(type, sp.getBoolean(settingVisible, false) && sp.getBoolean(settingEnabled, false));
else if (p.getType() == type && p.pluginDescription.visibleByDefault) {
else if (p.getType() == type && p.getPluginDescription().visibleByDefault) {
p.setFragmentVisible(type, true);
}
aapsLogger.debug(LTag.CONFIGBUILDER, "Loaded: " + settingVisible + ":" + p.isFragmentVisible());
getAapsLogger().debug(LTag.CONFIGBUILDER, "Loaded: " + settingVisible + ":" + p.isFragmentVisible());
}
}
@ -194,9 +187,9 @@ public class ConfigBuilderPlugin extends PluginBase {
private void upgradeSettings() {
if (!sp.contains("ConfigBuilder_1_NSProfilePlugin_Enabled"))
return;
aapsLogger.debug(LTag.CONFIGBUILDER, "Upgrading stored settings");
getAapsLogger().debug(LTag.CONFIGBUILDER, "Upgrading stored settings");
for (PluginBase p : pluginList) {
aapsLogger.debug(LTag.CONFIGBUILDER, "Processing " + p.getName());
getAapsLogger().debug(LTag.CONFIGBUILDER, "Processing " + p.getName());
for (int type = 1; type < 11; type++) {
PluginType newType;
switch (type) {
@ -288,7 +281,7 @@ public class ConfigBuilderPlugin extends PluginBase {
public void logPluginStatus() {
for (PluginBase p : pluginList) {
aapsLogger.debug(LTag.CONFIGBUILDER, p.getName() + ":" +
getAapsLogger().debug(LTag.CONFIGBUILDER, p.getName() + ":" +
(p.isEnabled(PluginType.GENERAL) ? " GENERAL" : "") +
(p.isEnabled(PluginType.TREATMENT) ? " TREATMENT" : "") +
(p.isEnabled(PluginType.SENSITIVITY) ? " SENSITIVITY" : "") +
@ -315,7 +308,7 @@ public class ConfigBuilderPlugin extends PluginBase {
if (activeInsulin == null) {
activeInsulin = insulinOrefRapidActingPlugin.get();
insulinOrefRapidActingPlugin.get().setPluginEnabled(PluginType.INSULIN, true);
aapsLogger.debug(LTag.CONFIGBUILDER, "Defaulting InsulinOrefRapidActingPlugin");
getAapsLogger().debug(LTag.CONFIGBUILDER, "Defaulting InsulinOrefRapidActingPlugin");
}
this.setFragmentVisiblities(((PluginBase) activeInsulin).getName(), pluginsInCategory, PluginType.INSULIN);
@ -325,7 +318,7 @@ public class ConfigBuilderPlugin extends PluginBase {
if (activeSensitivity == null) {
activeSensitivity = SensitivityOref0Plugin.getPlugin();
SensitivityOref0Plugin.getPlugin().setPluginEnabled(PluginType.SENSITIVITY, true);
aapsLogger.debug(LTag.CONFIGBUILDER, "Defaulting SensitivityOref0Plugin");
getAapsLogger().debug(LTag.CONFIGBUILDER, "Defaulting SensitivityOref0Plugin");
}
this.setFragmentVisiblities(((PluginBase) activeSensitivity).getName(), pluginsInCategory, PluginType.SENSITIVITY);
@ -341,7 +334,7 @@ public class ConfigBuilderPlugin extends PluginBase {
if (activePump == null) {
activePump = virtualPumpPlugin.get();
virtualPumpPlugin.get().setPluginEnabled(PluginType.PUMP, true);
aapsLogger.debug(LTag.CONFIGBUILDER, "Defaulting VirtualPumpPlugin");
getAapsLogger().debug(LTag.CONFIGBUILDER, "Defaulting VirtualPumpPlugin");
}
this.setFragmentVisiblities(((PluginBase) activePump).getName(), pluginsInCategory, PluginType.PUMP);
@ -399,7 +392,7 @@ public class ConfigBuilderPlugin extends PluginBase {
private void setFragmentVisiblities(String activePluginName, ArrayList<PluginBase> pluginsInCategory,
PluginType pluginType) {
aapsLogger.debug(LTag.CONFIGBUILDER, "Selected interface: " + activePluginName);
getAapsLogger().debug(LTag.CONFIGBUILDER, "Selected interface: " + activePluginName);
for (PluginBase p : pluginsInCategory) {
if (!p.getName().equals(activePluginName)) {
p.setFragmentVisible(pluginType, false);

View file

@ -23,22 +23,23 @@ import javax.inject.Inject
import javax.inject.Singleton
@Singleton
class DstHelperPlugin @Inject constructor(): PluginBase(PluginDescription()
class DstHelperPlugin @Inject constructor(
aapsLogger: AAPSLogger,
rxBus: RxBusWrapper,
var resourceHelper: ResourceHelper,
var mainApp: MainApp,
var sp: SP,
var configBuilderPlugin: ConfigBuilderPlugin,
var loopPlugin: LoopPlugin
) : PluginBase(PluginDescription()
.mainType(PluginType.CONSTRAINTS)
.neverVisible(true)
.alwaysEnabled(true)
.showInList(false)
.pluginName(R.string.dst_plugin_name)
.pluginName(R.string.dst_plugin_name),
rxBus, aapsLogger
), ConstraintsInterface {
@Inject lateinit var aapsLogger: AAPSLogger
@Inject lateinit var rxBus: RxBusWrapper
@Inject lateinit var resourceHelper: ResourceHelper
@Inject lateinit var mainApp: MainApp
@Inject lateinit var sp : SP
@Inject lateinit var configBuilderPlugin: ConfigBuilderPlugin
@Inject lateinit var loopPlugin: LoopPlugin
private val DISABLE_TIMEFRAME_HOURS = -3
private val WARN_PRIOR_TIMEFRAME_HOURS = 12

View file

@ -11,6 +11,8 @@ import info.nightscout.androidaps.interfaces.ConstraintsInterface
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin
import info.nightscout.androidaps.plugins.constraints.objectives.objectives.*
import info.nightscout.androidaps.utils.DateUtil
@ -25,7 +27,9 @@ import javax.inject.Singleton
class ObjectivesPlugin @Inject constructor(
private val sp: SP,
private val resourceHelper: ResourceHelper,
private val configBuilderPlugin: ConfigBuilderPlugin
private val configBuilderPlugin: ConfigBuilderPlugin,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.CONSTRAINTS)
.fragmentClass(ObjectivesFragment::class.qualifiedName)
@ -33,7 +37,9 @@ class ObjectivesPlugin @Inject constructor(
.showInList(Config.APS)
.pluginName(R.string.objectives)
.shortName(R.string.objectives_shortname)
.description(R.string.description_objectives)), ConstraintsInterface {
.description(R.string.description_objectives),
rxBus, aapsLogger
), ConstraintsInterface {
var objectives: MutableList<Objective> = ArrayList()

View file

@ -15,10 +15,12 @@ import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.logging.AAPSLogger;
import info.nightscout.androidaps.plugins.aps.openAPSAMA.OpenAPSAMAPlugin;
import info.nightscout.androidaps.plugins.aps.openAPSMA.OpenAPSMAPlugin;
import info.nightscout.androidaps.plugins.aps.openAPSSMB.OpenAPSSMBPlugin;
import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.configBuilder.ConstraintChecker;
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification;
@ -32,6 +34,8 @@ import info.nightscout.androidaps.utils.SP;
@Singleton
public class SafetyPlugin extends PluginBase implements ConstraintsInterface {
//TODO: dagger
@Inject
OpenAPSAMAPlugin openAPSAMAPlugin;
@ -42,14 +46,14 @@ public class SafetyPlugin extends PluginBase implements ConstraintsInterface {
OpenAPSSMBPlugin openAPSSMBPlugin;
@Inject
public SafetyPlugin() {
public SafetyPlugin(RxBusWrapper rxBusWrapper, AAPSLogger aapsLogger) {
super(new PluginDescription()
.mainType(PluginType.CONSTRAINTS)
.neverVisible(true)
.alwaysEnabled(true)
.showInList(false)
.pluginName(R.string.safety)
.preferencesId(R.xml.pref_safety)
.preferencesId(R.xml.pref_safety), rxBusWrapper, aapsLogger
);
}

View file

@ -8,6 +8,7 @@ import info.nightscout.androidaps.interfaces.ConstraintsInterface
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.L
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification
@ -34,15 +35,17 @@ import javax.inject.Singleton
@Singleton
class SignatureVerifierPlugin @Inject constructor(
private val sp: SP,
private val rxBus: RxBusWrapper,
private val resourceHelper: ResourceHelper,
private val mainApp: MainApp
private val mainApp: MainApp,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.CONSTRAINTS)
.neverVisible(true)
.alwaysEnabled(true)
.showInList(false)
.pluginName(R.string.signature_verifier)), ConstraintsInterface {
.pluginName(R.string.signature_verifier),
rxBus, aapsLogger
), ConstraintsInterface {
private val REVOKED_CERTS_URL = "https://raw.githubusercontent.com/MilosKozak/AndroidAPS/master/app/src/main/assets/revoked_certs.txt"
private val UPDATE_INTERVAL = TimeUnit.DAYS.toMillis(1)

View file

@ -16,8 +16,10 @@ import info.nightscout.androidaps.interfaces.ConstraintsInterface;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.logging.AAPSLoggerProduction;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.general.overview.events.EventDismissNotification;
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification;
@ -36,13 +38,16 @@ public class StorageConstraintPlugin extends PluginBase implements ConstraintsIn
return plugin;
}
// TODO: dagger
public StorageConstraintPlugin() {
super(new PluginDescription()
.mainType(PluginType.CONSTRAINTS)
.neverVisible(true)
.alwaysEnabled(true)
.showInList(false)
.pluginName(R.string.storage)
.mainType(PluginType.CONSTRAINTS)
.neverVisible(true)
.alwaysEnabled(true)
.showInList(false)
.pluginName(R.string.storage),
new RxBusWrapper(), new AAPSLoggerProduction() // TODO: dagger
);
}

View file

@ -7,6 +7,7 @@ import info.nightscout.androidaps.interfaces.ConstraintsInterface
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification
@ -20,16 +21,18 @@ import kotlin.math.roundToInt
@Singleton
class VersionCheckerPlugin @Inject constructor(
private val rxBus: RxBusWrapper,
private val sp: SP,
private val resourceHelper: ResourceHelper,
private val versionCheckerUtils: VersionCheckerUtils
private val versionCheckerUtils: VersionCheckerUtils,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.CONSTRAINTS)
.neverVisible(true)
.alwaysEnabled(true)
.showInList(false)
.pluginName(R.string.versionChecker)), ConstraintsInterface {
.pluginName(R.string.versionChecker),
rxBus, aapsLogger
), ConstraintsInterface {
enum class GracePeriod(val warning: Long, val old: Long, val veryOld: Long) {
RELEASE(30, 60, 90),

View file

@ -5,15 +5,20 @@ import info.nightscout.androidaps.R
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import javax.inject.Inject
import javax.inject.Singleton
@Singleton
class ActionsPlugin @Inject constructor(): PluginBase(PluginDescription()
.mainType(PluginType.GENERAL)
.fragmentClass(ActionsFragment::class.qualifiedName)
.enableByDefault(Config.APS || Config.PUMPCONTROL)
.visibleByDefault(Config.APS || Config.PUMPCONTROL)
.pluginName(R.string.actions)
.shortName(R.string.actions_shortname)
.description(R.string.description_actions))
class ActionsPlugin @Inject constructor(rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.GENERAL)
.fragmentClass(ActionsFragment::class.qualifiedName)
.enableByDefault(Config.APS || Config.PUMPCONTROL)
.visibleByDefault(Config.APS || Config.PUMPCONTROL)
.pluginName(R.string.actions)
.shortName(R.string.actions_shortname)
.description(R.string.description_actions),
rxBus, aapsLogger
)

View file

@ -40,20 +40,20 @@ import javax.inject.Singleton
@Singleton
class AutomationPlugin @Inject constructor(
private val rxBus: RxBusWrapper,
private val aapsLogger: AAPSLogger,
private val resourceHelper: ResourceHelper,
private val mainApp: MainApp,
private val sp: SP,
private val fabricPrivacy: FabricPrivacy,
private val loopPlugin: LoopPlugin
private val loopPlugin: LoopPlugin,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.GENERAL)
.fragmentClass(AutomationFragment::class.qualifiedName)
.pluginName(R.string.automation)
.shortName(R.string.automation_short)
.preferencesId(R.xml.pref_automation)
.description(R.string.automation_description)) {
.description(R.string.automation_description), rxBus, aapsLogger
) {
private var disposable: CompositeDisposable = CompositeDisposable()

View file

@ -20,6 +20,7 @@ import info.nightscout.androidaps.plugins.general.automation.events.EventTrigger
import info.nightscout.androidaps.plugins.general.automation.events.EventTriggerRemove
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin
import info.nightscout.androidaps.services.LastLocationDataContainer
import info.nightscout.androidaps.services.LocationService
import info.nightscout.androidaps.utils.resources.ResourceHelper
import info.nightscout.androidaps.utils.sharedPreferences.SP
@ -34,7 +35,7 @@ abstract class Trigger(val mainApp: MainApp) {
@Inject lateinit var resourceHelper: ResourceHelper
@Inject lateinit var profileFunction: ProfileFunction
@Inject lateinit var sp: SP
@Inject lateinit var locationService: LocationService
@Inject lateinit var locationDataContainer: LastLocationDataContainer
@Inject lateinit var treatmentsPlugin: TreatmentsPlugin
@Inject lateinit var configBuilderPlugin: ConfigBuilderPlugin
@Inject lateinit var iobCobCalculatorPlugin: IobCobCalculatorPlugin

View file

@ -20,10 +20,9 @@ class TriggerLocation(mainApp: MainApp) : Trigger(mainApp) {
var lastMode = InputLocationMode.Mode.INSIDE
private val buttonAction = Runnable {
val location = locationService.lastLocation
if (location != null) {
latitude.value = location.latitude
longitude.value = location.longitude
locationDataContainer.lastLocation?.let {
latitude.value = it.latitude
longitude.value = it.longitude
aapsLogger.debug(LTag.AUTOMATION, String.format("Grabbed location: %f %f", latitude.value, longitude.value))
}
}
@ -39,7 +38,7 @@ class TriggerLocation(mainApp: MainApp) : Trigger(mainApp) {
}
@Synchronized override fun shouldRun(): Boolean {
val location: Location = locationService.lastLocation ?: return false
val location: Location = locationDataContainer.lastLocation ?: return false
val a = Location("Trigger")
a.latitude = latitude.value
a.longitude = longitude.value
@ -98,7 +97,7 @@ class TriggerLocation(mainApp: MainApp) : Trigger(mainApp) {
.add(LabelWithElement(mainApp, resourceHelper.gs(R.string.longitude_short), "", longitude))
.add(LabelWithElement(mainApp, resourceHelper.gs(R.string.distance_short), "", distance))
.add(LabelWithElement(mainApp, resourceHelper.gs(R.string.location_mode), "", modeSelected))
.add(InputButton(mainApp, resourceHelper.gs(R.string.currentlocation), buttonAction), locationService.lastLocation != null)
.add(InputButton(mainApp, resourceHelper.gs(R.string.currentlocation), buttonAction), locationDataContainer.lastLocation != null)
.build(root)
}

View file

@ -5,18 +5,23 @@ import info.nightscout.androidaps.R
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import javax.inject.Inject
import javax.inject.Singleton
@Singleton
class CareportalPlugin @Inject constructor() : PluginBase(PluginDescription()
class CareportalPlugin @Inject constructor(rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.GENERAL)
.fragmentClass(CareportalFragment::class.java.name)
.pluginName(R.string.careportal)
.shortName(R.string.careportal_shortname)
.visibleByDefault(Config.NSCLIENT)
.enableByDefault(Config.NSCLIENT)
.description(R.string.description_careportal)
.description(R.string.description_careportal),
rxBus, aapsLogger
) {
override fun specialEnableCondition(): Boolean {

View file

@ -4,16 +4,20 @@ import info.nightscout.androidaps.R
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import javax.inject.Inject
import javax.inject.Singleton
@Singleton
class FoodPlugin @Inject constructor() : PluginBase(PluginDescription()
class FoodPlugin @Inject constructor(rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.GENERAL)
.fragmentClass(FoodFragment::class.java.name)
.pluginName(R.string.food)
.shortName(R.string.food_short)
.description(R.string.description_food)
.description(R.string.description_food),
rxBus, aapsLogger
) {
var service: FoodService? = null

View file

@ -11,6 +11,7 @@ import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.general.nsclient.data.NSSettingsStatus
import info.nightscout.androidaps.utils.resources.ResourceHelper
import info.nightscout.androidaps.utils.sharedPreferences.SP
@ -23,11 +24,11 @@ import javax.inject.Singleton
@Singleton
class MaintenancePlugin @Inject constructor(
private val aapsLogger: AAPSLogger,
private val mainApp: MainApp,
private val resourceHelper: ResourceHelper,
private val sp: SP,
private val nsSettingsStatus: NSSettingsStatus
private val nsSettingsStatus: NSSettingsStatus,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.GENERAL)
.fragmentClass(MaintenanceFragment::class.java.name)
@ -36,7 +37,8 @@ class MaintenancePlugin @Inject constructor(
.pluginName(R.string.maintenance)
.shortName(R.string.maintenance_shortname)
.preferencesId(R.xml.pref_maintenance)
.description(R.string.description_maintenance)
.description(R.string.description_maintenance),
rxBus, aapsLogger
) {
fun sendLogs() {

View file

@ -30,8 +30,10 @@ import info.nightscout.androidaps.events.EventPreferenceChange;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.logging.AAPSLoggerProduction;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.general.nsclient.data.AlarmAck;
import info.nightscout.androidaps.plugins.general.nsclient.data.NSAlarm;
import info.nightscout.androidaps.plugins.general.nsclient.events.EventNSClientNewLog;
@ -71,6 +73,8 @@ public class NSClientPlugin extends PluginBase {
private NsClientReceiverDelegate nsClientReceiverDelegate;
// TODO: dagger
private NSClientPlugin() {
super(new PluginDescription()
.mainType(PluginType.GENERAL)
@ -78,11 +82,12 @@ public class NSClientPlugin extends PluginBase {
.pluginName(R.string.nsclientinternal)
.shortName(R.string.nsclientinternal_shortname)
.preferencesId(R.xml.pref_nsclientinternal)
.description(R.string.description_ns_client)
.description(R.string.description_ns_client),
new RxBusWrapper(), new AAPSLoggerProduction() // TODO: dagger
);
if (Config.NSCLIENT) {
pluginDescription.alwaysEnabled(true).visibleByDefault(true);
getPluginDescription().alwaysEnabled(true).visibleByDefault(true);
}
paused = SP.getBoolean(R.string.key_nsclientinternal_paused, false);
autoscroll = SP.getBoolean(R.string.key_nsclientinternal_autoscroll, true);

View file

@ -5,6 +5,7 @@ import info.nightscout.androidaps.events.EventRefreshOverview
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.general.overview.events.EventDismissNotification
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification
@ -18,9 +19,9 @@ import javax.inject.Singleton
@Singleton
class OverviewPlugin @Inject constructor(
private val rxBus: RxBusWrapper,
private val notificationStore: NotificationStore,
private val fabricPrivacy: FabricPrivacy
private val fabricPrivacy: FabricPrivacy,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.GENERAL)
.fragmentClass(OverviewFragment::class.qualifiedName)
@ -29,7 +30,8 @@ class OverviewPlugin @Inject constructor(
.pluginName(R.string.overview)
.shortName(R.string.overview_shortname)
.preferencesId(R.xml.pref_overview)
.description(R.string.description_overview)) {
.description(R.string.description_overview), rxBus, aapsLogger
) {
private var disposable: CompositeDisposable = CompositeDisposable()

View file

@ -1,6 +1,5 @@
package info.nightscout.androidaps.plugins.general.persistentNotification
import android.app.Notification
import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.PendingIntent
@ -20,6 +19,7 @@ import info.nightscout.androidaps.events.*
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunction
@ -36,25 +36,27 @@ import javax.inject.Inject
import javax.inject.Singleton
@Singleton
class PersistentNotificationPlugin @Inject constructor() : PluginBase(PluginDescription()
class PersistentNotificationPlugin @Inject constructor(
var mainApp: MainApp,
var resourceHelper: ResourceHelper,
var profileFunction: ProfileFunction,
var fabricPrivacy: FabricPrivacy,
var configBuilderPlugin: ConfigBuilderPlugin,
var treatmentsPlugin: TreatmentsPlugin,
var iobCobCalculatorPlugin: IobCobCalculatorPlugin,
rxBus: RxBusWrapper,
aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.GENERAL)
.neverVisible(true)
.pluginName(R.string.ongoingnotificaction)
.enableByDefault(true)
.alwaysEnabled(true)
.showInList(false)
.description(R.string.description_persistent_notification)
.description(R.string.description_persistent_notification),
rxBus, aapsLogger
) {
@Inject lateinit var rxBus: RxBusWrapper
@Inject lateinit var mainApp: MainApp
@Inject lateinit var resourceHelper: ResourceHelper
@Inject lateinit var profileFunction: ProfileFunction
@Inject lateinit var fabricPrivacy: FabricPrivacy
@Inject lateinit var configBuilderPlugin: ConfigBuilderPlugin
@Inject lateinit var treatmentsPlugin: TreatmentsPlugin
@Inject lateinit var iobCobCalculatorPlugin: IobCobCalculatorPlugin
// For Android Auto
// Intents are not declared in manifest and not consumed, this is intentionally because actually we can't do anything with
private val PACKAGE = "info.nightscout"
@ -66,7 +68,7 @@ class PersistentNotificationPlugin @Inject constructor() : PluginBase(PluginDesc
private val disposable = CompositeDisposable()
override fun onStart() {
override fun onStart() {
super.onStart()
createNotificationChannel() // make sure channels exist before triggering updates through the bus
disposable.add(rxBus

View file

@ -55,8 +55,8 @@ class SmsCommunicatorPlugin @Inject constructor(
private val sp: SP,
private val resourceHelper: ResourceHelper,
private val constraintChecker: ConstraintChecker,
private val aapsLogger: AAPSLogger,
private val rxBus: RxBusWrapper,
aapsLogger: AAPSLogger,
rxBus: RxBusWrapper,
private val profileFunction: ProfileFunction,
private val fabricPrivacy: FabricPrivacy,
private val configBuilderPlugin: ConfigBuilderPlugin,
@ -69,7 +69,8 @@ class SmsCommunicatorPlugin @Inject constructor(
.pluginName(R.string.smscommunicator)
.shortName(R.string.smscommunicator_shortname)
.preferencesId(R.xml.pref_smscommunicator)
.description(R.string.description_sms_communicator)
.description(R.string.description_sms_communicator),
rxBus, aapsLogger
) {
private val disposable = CompositeDisposable()

View file

@ -40,8 +40,8 @@ import javax.inject.Singleton
@Singleton
class TidepoolPlugin @Inject constructor(
private val aapsLogger: AAPSLogger,
private val rxBus: RxBusWrapper,
aapsLogger: AAPSLogger,
rxBus: RxBusWrapper,
private val mainApp: MainApp,
private val resourceHelper: ResourceHelper,
private val fabricPrivacy: FabricPrivacy,
@ -54,7 +54,8 @@ class TidepoolPlugin @Inject constructor(
.shortName(R.string.tidepool_shortname)
.fragmentClass(TidepoolFragment::class.qualifiedName)
.preferencesId(R.xml.pref_tidepool)
.description(R.string.description_tidepool)
.description(R.string.description_tidepool),
rxBus, aapsLogger
) {
private var disposable: CompositeDisposable = CompositeDisposable()

View file

@ -8,6 +8,7 @@ import info.nightscout.androidaps.events.*
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin
import info.nightscout.androidaps.plugins.aps.openAPSMA.events.EventOpenAPSUpdateGui
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
@ -25,19 +26,21 @@ import javax.inject.Singleton
@Singleton
class WearPlugin @Inject constructor(
private val rxBus: RxBusWrapper,
private val resourceHelper: ResourceHelper,
private val sp: SP,
private val mainApp: MainApp,
private val fabricPrivacy: FabricPrivacy,
private val loopPlugin: Lazy<LoopPlugin>
private val loopPlugin: Lazy<LoopPlugin>,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.GENERAL)
.fragmentClass(WearFragment::class.java.name)
.pluginName(R.string.wear)
.shortName(R.string.wear_shortname)
.preferencesId(R.xml.pref_wear)
.description(R.string.description_wear)
.description(R.string.description_wear),
rxBus, aapsLogger
) {
private val disposable = CompositeDisposable()

View file

@ -9,6 +9,7 @@ import info.nightscout.androidaps.events.*
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin
@ -29,7 +30,6 @@ import javax.inject.Singleton
@Singleton
class StatusLinePlugin @Inject constructor(
private val sp: SP,
private val rxBus: RxBusWrapper,
private val profileFunction: ProfileFunction,
private val resourceHelper: ResourceHelper,
private val mainApp: MainApp,
@ -37,7 +37,8 @@ class StatusLinePlugin @Inject constructor(
private val configBuilderPlugin: ConfigBuilderPlugin,
private val treatmentsPlugin: TreatmentsPlugin,
private val loopPlugin: LoopPlugin,
private val iobCobCalculatorPlugin: IobCobCalculatorPlugin
private val iobCobCalculatorPlugin: IobCobCalculatorPlugin,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(
PluginDescription()
.mainType(PluginType.GENERAL)
@ -45,7 +46,7 @@ class StatusLinePlugin @Inject constructor(
.shortName(R.string.xdripstatus_shortname)
.neverVisible(true)
.preferencesId(R.xml.pref_xdripstatus)
.description(R.string.description_xdrip_status_line)) {
.description(R.string.description_xdrip_status_line), rxBus, aapsLogger) {
private val disposable = CompositeDisposable()
private var lastLoopStatus = false

View file

@ -6,6 +6,7 @@ import info.nightscout.androidaps.interfaces.InsulinInterface
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunction
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification
@ -20,14 +21,15 @@ import info.nightscout.androidaps.utils.resources.ResourceHelper
*
*/
abstract class InsulinOrefBasePlugin(
val rxBus: RxBusWrapper,
val resourceHelper: ResourceHelper,
val profileFunction: ProfileFunction
val profileFunction: ProfileFunction,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.INSULIN)
.fragmentClass(InsulinFragment::class.java.name)
.shortName(R.string.insulin_shortname)
.visibleByDefault(false)
.visibleByDefault(false),
rxBus, aapsLogger
), InsulinInterface {
private var lastWarned: Long = 0

View file

@ -2,6 +2,7 @@ package info.nightscout.androidaps.plugins.insulin
import info.nightscout.androidaps.R
import info.nightscout.androidaps.interfaces.InsulinInterface
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunction
import info.nightscout.androidaps.utils.resources.ResourceHelper
@ -16,9 +17,9 @@ import javax.inject.Singleton
class InsulinOrefFreePeakPlugin @Inject constructor(
private val sp: SP,
resourceHelper: ResourceHelper,
rxBus: RxBusWrapper,
profileFunction: ProfileFunction
) : InsulinOrefBasePlugin(rxBus, resourceHelper, profileFunction) {
profileFunction: ProfileFunction,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : InsulinOrefBasePlugin(resourceHelper, profileFunction, rxBus, aapsLogger) {
override fun getId(): Int {
return InsulinInterface.OREF_FREE_PEAK

View file

@ -1,12 +1,11 @@
package info.nightscout.androidaps.plugins.insulin
import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
import info.nightscout.androidaps.interfaces.InsulinInterface
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunction
import info.nightscout.androidaps.utils.resources.ResourceHelper
import info.nightscout.androidaps.utils.sharedPreferences.SP
import javax.inject.Inject
import javax.inject.Singleton
@ -16,9 +15,9 @@ import javax.inject.Singleton
@Singleton
class InsulinOrefRapidActingPlugin @Inject constructor(
resourceHelper: ResourceHelper,
rxBus: RxBusWrapper,
profileFunction: ProfileFunction
) : InsulinOrefBasePlugin(rxBus, resourceHelper, profileFunction) {
profileFunction: ProfileFunction,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : InsulinOrefBasePlugin(resourceHelper, profileFunction, rxBus, aapsLogger) {
override fun getId(): Int {

View file

@ -1,8 +1,8 @@
package info.nightscout.androidaps.plugins.insulin
import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
import info.nightscout.androidaps.interfaces.InsulinInterface
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunction
import info.nightscout.androidaps.utils.resources.ResourceHelper
@ -15,11 +15,10 @@ import javax.inject.Singleton
*/
@Singleton
class InsulinOrefUltraRapidActingPlugin @Inject constructor(
private val sp: SP,
resourceHelper: ResourceHelper,
rxBus: RxBusWrapper,
profileFunction: ProfileFunction
) : InsulinOrefBasePlugin(rxBus, resourceHelper, profileFunction) {
profileFunction: ProfileFunction,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : InsulinOrefBasePlugin(resourceHelper, profileFunction, rxBus, aapsLogger) {
override fun getId(): Int {

View file

@ -55,8 +55,6 @@ import static info.nightscout.androidaps.utils.DateUtil.now;
@Singleton
public class IobCobCalculatorPlugin extends PluginBase {
private final AAPSLogger aapsLogger;
private final RxBusWrapper rxBus;
private final SP sp;
private final ResourceHelper resourceHelper;
private final ProfileFunction profileFunction;
@ -101,11 +99,10 @@ public class IobCobCalculatorPlugin extends PluginBase {
.pluginName(R.string.iobcobcalculator)
.showInList(false)
.neverVisible(true)
.alwaysEnabled(true)
.alwaysEnabled(true),
rxBus, aapsLogger
);
this.plugin = this;
this.aapsLogger = aapsLogger;
this.rxBus = rxBus;
this.sp = sp;
this.resourceHelper = resourceHelper;
this.profileFunction = profileFunction;
@ -117,13 +114,13 @@ public class IobCobCalculatorPlugin extends PluginBase {
protected void onStart() {
super.onStart();
// EventConfigBuilderChange
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventConfigBuilderChange.class)
.observeOn(Schedulers.io())
.subscribe(event -> {
stopCalculation("onEventConfigBuilderChange");
synchronized (dataLock) {
aapsLogger.debug(LTag.AUTOSENS, "Invalidating cached data because of configuration change. IOB: " + iobTable.size() + " Autosens: " + autosensDataTable.size() + " records");
getAapsLogger().debug(LTag.AUTOSENS, "Invalidating cached data because of configuration change. IOB: " + iobTable.size() + " Autosens: " + autosensDataTable.size() + " records");
iobTable = new LongSparseArray<>();
autosensDataTable = new LongSparseArray<>();
}
@ -131,7 +128,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
}, exception -> FabricPrivacy.getInstance().logException(exception))
);
// EventNewBasalProfile
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventNewBasalProfile.class)
.observeOn(Schedulers.io())
.subscribe(event -> {
@ -140,7 +137,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
}
stopCalculation("onNewProfile");
synchronized (dataLock) {
aapsLogger.debug(LTag.AUTOSENS, "Invalidating cached data because of new profile. IOB: " + iobTable.size() + " Autosens: " + autosensDataTable.size() + " records");
getAapsLogger().debug(LTag.AUTOSENS, "Invalidating cached data because of new profile. IOB: " + iobTable.size() + " Autosens: " + autosensDataTable.size() + " records");
iobTable = new LongSparseArray<>();
autosensDataTable = new LongSparseArray<>();
basalDataTable = new LongSparseArray<>();
@ -149,7 +146,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
}, exception -> FabricPrivacy.getInstance().logException(exception))
);
// EventNewBG
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventNewBG.class)
.observeOn(Schedulers.io())
.subscribe(event -> {
@ -158,7 +155,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
}, exception -> FabricPrivacy.getInstance().logException(exception))
);
// EventPreferenceChange
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventPreferenceChange.class)
.observeOn(Schedulers.io())
.subscribe(event -> {
@ -173,7 +170,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
) {
stopCalculation("onEventPreferenceChange");
synchronized (dataLock) {
aapsLogger.debug(LTag.AUTOSENS, "Invalidating cached data because of preference change. IOB: " + iobTable.size() + " Autosens: " + autosensDataTable.size() + " records" + " BasalData: " + basalDataTable.size() + " records");
getAapsLogger().debug(LTag.AUTOSENS, "Invalidating cached data because of preference change. IOB: " + iobTable.size() + " Autosens: " + autosensDataTable.size() + " records" + " BasalData: " + basalDataTable.size() + " records");
iobTable = new LongSparseArray<>();
autosensDataTable = new LongSparseArray<>();
basalDataTable = new LongSparseArray<>();
@ -183,13 +180,13 @@ public class IobCobCalculatorPlugin extends PluginBase {
}, exception -> FabricPrivacy.getInstance().logException(exception))
);
// EventAppInitialized
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventAppInitialized.class)
.observeOn(Schedulers.io())
.subscribe(event -> runCalculation("onEventAppInitialized", System.currentTimeMillis(), true, true, event), exception -> FabricPrivacy.getInstance().logException(exception))
);
// EventNewHistoryData
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventNewHistoryData.class)
.observeOn(Schedulers.io())
.subscribe(event -> newHistoryData(event), exception -> FabricPrivacy.getInstance().logException(exception))
@ -239,10 +236,10 @@ public class IobCobCalculatorPlugin extends PluginBase {
// if close to now expect there can be some readings with time in close future (caused by wrong time setting)
// so read all records
bgReadings = MainApp.getDbHelper().getBgreadingsDataFromTime(start, false);
aapsLogger.debug(LTag.AUTOSENS, "BG data loaded. Size: " + bgReadings.size() + " Start date: " + DateUtil.dateAndTimeString(start));
getAapsLogger().debug(LTag.AUTOSENS, "BG data loaded. Size: " + bgReadings.size() + " Start date: " + DateUtil.dateAndTimeString(start));
} else {
bgReadings = MainApp.getDbHelper().getBgreadingsDataFromTime(start, to, false);
aapsLogger.debug(LTag.AUTOSENS, "BG data loaded. Size: " + bgReadings.size() + " Start date: " + DateUtil.dateAndTimeString(start) + " End date: " + DateUtil.dateAndTimeString(to));
getAapsLogger().debug(LTag.AUTOSENS, "BG data loaded. Size: " + bgReadings.size() + " Start date: " + DateUtil.dateAndTimeString(start) + " End date: " + DateUtil.dateAndTimeString(to));
}
}
@ -262,13 +259,13 @@ public class IobCobCalculatorPlugin extends PluginBase {
totalDiff += diff;
diff = Math.abs(diff);
if (diff > T.secs(30).msecs()) {
aapsLogger.debug(LTag.AUTOSENS, "Interval detection: values: " + bgReadings.size() + " diff: " + (diff / 1000) + "[s] is5minData: " + false);
getAapsLogger().debug(LTag.AUTOSENS, "Interval detection: values: " + bgReadings.size() + " diff: " + (diff / 1000) + "[s] is5minData: " + false);
return false;
}
}
long averageDiff = totalDiff / bgReadings.size() / 1000;
boolean is5mindata = averageDiff < 1;
aapsLogger.debug(LTag.AUTOSENS, "Interval detection: values: " + bgReadings.size() + " averageDiff: " + averageDiff + "[s] is5minData: " + is5mindata);
getAapsLogger().debug(LTag.AUTOSENS, "Interval detection: values: " + bgReadings.size() + " averageDiff: " + averageDiff + "[s] is5minData: " + is5mindata);
return is5mindata;
}
}
@ -350,7 +347,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
bucketed_data = new ArrayList<>();
bucketed_data.add(bgReadings.get(0));
aapsLogger.debug(LTag.AUTOSENS, "Adding. bgTime: " + DateUtil.toISOString(bgReadings.get(0).date) + " lastbgTime: " + "none-first-value" + " " + bgReadings.get(0).toString());
getAapsLogger().debug(LTag.AUTOSENS, "Adding. bgTime: " + DateUtil.toISOString(bgReadings.get(0).date) + " lastbgTime: " + "none-first-value" + " " + bgReadings.get(0).toString());
int j = 0;
for (int i = 1; i < bgReadings.size(); ++i) {
long bgTime = bgReadings.get(i).date;
@ -378,7 +375,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
newBgreading.value = Math.round(nextbg);
//console.error("Interpolated", bucketed_data[j]);
bucketed_data.add(newBgreading);
aapsLogger.debug(LTag.AUTOSENS, "Adding. bgTime: " + DateUtil.toISOString(bgTime) + " lastbgTime: " + DateUtil.toISOString(lastbgTime) + " " + newBgreading.toString());
getAapsLogger().debug(LTag.AUTOSENS, "Adding. bgTime: " + DateUtil.toISOString(bgTime) + " lastbgTime: " + DateUtil.toISOString(lastbgTime) + " " + newBgreading.toString());
elapsed_minutes = elapsed_minutes - 5;
lastbg = nextbg;
@ -389,14 +386,14 @@ public class IobCobCalculatorPlugin extends PluginBase {
newBgreading.value = bgReadings.get(i).value;
newBgreading.date = bgTime;
bucketed_data.add(newBgreading);
aapsLogger.debug(LTag.AUTOSENS, "Adding. bgTime: " + DateUtil.toISOString(bgTime) + " lastbgTime: " + DateUtil.toISOString(lastbgTime) + " " + newBgreading.toString());
getAapsLogger().debug(LTag.AUTOSENS, "Adding. bgTime: " + DateUtil.toISOString(bgTime) + " lastbgTime: " + DateUtil.toISOString(lastbgTime) + " " + newBgreading.toString());
} else if (Math.abs(elapsed_minutes) > 2) {
j++;
BgReading newBgreading = new BgReading();
newBgreading.value = bgReadings.get(i).value;
newBgreading.date = bgTime;
bucketed_data.add(newBgreading);
aapsLogger.debug(LTag.AUTOSENS, "Adding. bgTime: " + DateUtil.toISOString(bgTime) + " lastbgTime: " + DateUtil.toISOString(lastbgTime) + " " + newBgreading.toString());
getAapsLogger().debug(LTag.AUTOSENS, "Adding. bgTime: " + DateUtil.toISOString(bgTime) + " lastbgTime: " + DateUtil.toISOString(lastbgTime) + " " + newBgreading.toString());
} else {
bucketed_data.get(j).value = (bucketed_data.get(j).value + bgReadings.get(i).value) / 2;
//log.error("***** Average");
@ -409,17 +406,17 @@ public class IobCobCalculatorPlugin extends PluginBase {
BgReading previous = bucketed_data.get(i + 1);
long msecDiff = current.date - previous.date;
long adjusted = (msecDiff - T.mins(5).msecs()) / 1000;
aapsLogger.debug(LTag.AUTOSENS, "Adjusting bucketed data time. Current: " + DateUtil.toISOString(current.date) + " to: " + DateUtil.toISOString(previous.date + T.mins(5).msecs()) + " by " + adjusted + " sec");
getAapsLogger().debug(LTag.AUTOSENS, "Adjusting bucketed data time. Current: " + DateUtil.toISOString(current.date) + " to: " + DateUtil.toISOString(previous.date + T.mins(5).msecs()) + " by " + adjusted + " sec");
if (Math.abs(adjusted) > 90) {
// too big adjustment, fallback to non 5 min data
aapsLogger.debug(LTag.AUTOSENS, "Fallback to non 5 min data");
getAapsLogger().debug(LTag.AUTOSENS, "Fallback to non 5 min data");
createBucketedDataRecalculated();
return;
}
current.date = previous.date + T.mins(5).msecs();
}
aapsLogger.debug(LTag.AUTOSENS, "Bucketed data created. Size: " + bucketed_data.size());
getAapsLogger().debug(LTag.AUTOSENS, "Bucketed data created. Size: " + bucketed_data.size());
}
long calculateDetectionStart(long from, boolean limitDataToOldestAvailable) {
@ -432,7 +429,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
if (limitDataToOldestAvailable) {
getBGDataFrom = Math.max(oldestDataAvailable, (long) (from - T.hours(1).msecs() * (24 + dia)));
if (getBGDataFrom == oldestDataAvailable)
aapsLogger.debug(LTag.AUTOSENS, "Limiting data to oldest available temps: " + DateUtil.dateAndTimeFullString(oldestDataAvailable));
getAapsLogger().debug(LTag.AUTOSENS, "Limiting data to oldest available temps: " + DateUtil.dateAndTimeFullString(oldestDataAvailable));
} else
getBGDataFrom = (long) (from - T.hours(1).msecs() * (24 + dia));
return getBGDataFrom;
@ -571,12 +568,12 @@ public class IobCobCalculatorPlugin extends PluginBase {
@Nullable
public AutosensData getLastAutosensDataSynchronized(String reason) {
if (thread != null && thread.isAlive()) {
aapsLogger.debug(LTag.AUTOSENS, "AUTOSENSDATA is waiting for calculation thread: " + reason);
getAapsLogger().debug(LTag.AUTOSENS, "AUTOSENSDATA is waiting for calculation thread: " + reason);
try {
thread.join(5000);
} catch (InterruptedException ignored) {
}
aapsLogger.debug(LTag.AUTOSENS, "AUTOSENSDATA finished waiting for calculation thread: " + reason);
getAapsLogger().debug(LTag.AUTOSENS, "AUTOSENSDATA finished waiting for calculation thread: " + reason);
}
synchronized (dataLock) {
return getLastAutosensData(reason);
@ -628,7 +625,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
@Nullable
public AutosensData getLastAutosensData(String reason) {
if (autosensDataTable.size() < 1) {
aapsLogger.debug(LTag.AUTOSENS, "AUTOSENSDATA null: autosensDataTable empty (" + reason + ")");
getAapsLogger().debug(LTag.AUTOSENS, "AUTOSENSDATA null: autosensDataTable empty (" + reason + ")");
return null;
}
AutosensData data;
@ -638,18 +635,18 @@ public class IobCobCalculatorPlugin extends PluginBase {
// data can be processed on the background
// in this rare case better return null and do not block UI
// APS plugin should use getLastAutosensDataSynchronized where the blocking is not an issue
aapsLogger.error("AUTOSENSDATA null: Exception catched (" + reason + ")");
getAapsLogger().error("AUTOSENSDATA null: Exception catched (" + reason + ")");
return null;
}
if (data == null) {
aapsLogger.error("AUTOSENSDATA null: data==null");
getAapsLogger().error("AUTOSENSDATA null: data==null");
return null;
}
if (data.time < System.currentTimeMillis() - 11 * 60 * 1000) {
aapsLogger.debug(LTag.AUTOSENS, "AUTOSENSDATA null: data is old (" + reason + ") size()=" + autosensDataTable.size() + " lastdata=" + DateUtil.dateAndTimeString(data.time));
getAapsLogger().debug(LTag.AUTOSENS, "AUTOSENSDATA null: data is old (" + reason + ") size()=" + autosensDataTable.size() + " lastdata=" + DateUtil.dateAndTimeString(data.time));
return null;
} else {
aapsLogger.debug(LTag.AUTOSENS, "AUTOSENSDATA (" + reason + ") " + data.toString());
getAapsLogger().debug(LTag.AUTOSENS, "AUTOSENSDATA (" + reason + ") " + data.toString());
return data;
}
}
@ -769,16 +766,16 @@ public class IobCobCalculatorPlugin extends PluginBase {
public void stopCalculation(String from) {
if (thread != null && thread.getState() != Thread.State.TERMINATED) {
stopCalculationTrigger = true;
aapsLogger.debug(LTag.AUTOSENS, "Stopping calculation thread: " + from);
getAapsLogger().debug(LTag.AUTOSENS, "Stopping calculation thread: " + from);
while (thread.getState() != Thread.State.TERMINATED) {
SystemClock.sleep(100);
}
aapsLogger.debug(LTag.AUTOSENS, "Calculation thread stopped: " + from);
getAapsLogger().debug(LTag.AUTOSENS, "Calculation thread stopped: " + from);
}
}
public void runCalculation(String from, long end, boolean bgDataReload, boolean limitDataToOldestAvailable, Event cause) {
aapsLogger.debug(LTag.AUTOSENS, "Starting calculation thread: " + from + " to " + DateUtil.dateAndTimeString(end));
getAapsLogger().debug(LTag.AUTOSENS, "Starting calculation thread: " + from + " to " + DateUtil.dateAndTimeString(end));
if (thread == null || thread.getState() == Thread.State.TERMINATED) {
if (SensitivityOref1Plugin.getPlugin().isEnabled(PluginType.SENSITIVITY))
thread = new IobCobOref1Thread(this, from, end, bgDataReload, limitDataToOldestAvailable, cause);
@ -795,10 +792,10 @@ public class IobCobCalculatorPlugin extends PluginBase {
synchronized (dataLock) {
// clear up 5 min back for proper COB calculation
long time = ev.getTime() - 5 * 60 * 1000L;
aapsLogger.debug(LTag.AUTOSENS, "Invalidating cached data to: " + DateUtil.dateAndTimeFullString(time));
getAapsLogger().debug(LTag.AUTOSENS, "Invalidating cached data to: " + DateUtil.dateAndTimeFullString(time));
for (int index = iobTable.size() - 1; index >= 0; index--) {
if (iobTable.keyAt(index) > time) {
aapsLogger.debug(LTag.AUTOSENS, "Removing from iobTable: " + DateUtil.dateAndTimeFullString(iobTable.keyAt(index)));
getAapsLogger().debug(LTag.AUTOSENS, "Removing from iobTable: " + DateUtil.dateAndTimeFullString(iobTable.keyAt(index)));
iobTable.removeAt(index);
} else {
break;
@ -806,7 +803,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
}
for (int index = autosensDataTable.size() - 1; index >= 0; index--) {
if (autosensDataTable.keyAt(index) > time) {
aapsLogger.debug(LTag.AUTOSENS, "Removing from autosensDataTable: " + DateUtil.dateAndTimeFullString(autosensDataTable.keyAt(index)));
getAapsLogger().debug(LTag.AUTOSENS, "Removing from autosensDataTable: " + DateUtil.dateAndTimeFullString(autosensDataTable.keyAt(index)));
autosensDataTable.removeAt(index);
} else {
break;
@ -814,7 +811,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
}
for (int index = basalDataTable.size() - 1; index >= 0; index--) {
if (basalDataTable.keyAt(index) > time) {
aapsLogger.debug(LTag.AUTOSENS, "Removing from basalDataTable: " + DateUtil.dateAndTimeFullString(basalDataTable.keyAt(index)));
getAapsLogger().debug(LTag.AUTOSENS, "Removing from basalDataTable: " + DateUtil.dateAndTimeFullString(basalDataTable.keyAt(index)));
basalDataTable.removeAt(index);
} else {
break;
@ -827,7 +824,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
public void clearCache() {
synchronized (dataLock) {
aapsLogger.debug(LTag.AUTOSENS, "Clearing cached data.");
getAapsLogger().debug(LTag.AUTOSENS, "Clearing cached data.");
iobTable = new LongSparseArray<>();
autosensDataTable = new LongSparseArray<>();
basalDataTable = new LongSparseArray<>();

View file

@ -14,7 +14,6 @@ import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunction
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload
import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.DecimalFormatter
@ -31,8 +30,8 @@ import kotlin.collections.ArrayList
@Singleton
class LocalProfilePlugin @Inject constructor(
private val aapsLogger: AAPSLogger,
private val rxBus: RxBusWrapper,
aapsLogger: AAPSLogger,
rxBus: RxBusWrapper,
private val resourceHelper: ResourceHelper,
private val sp: SP,
private val profileFunction: ProfileFunction
@ -42,7 +41,7 @@ class LocalProfilePlugin @Inject constructor(
.enableByDefault(true)
.pluginName(R.string.localprofile)
.shortName(R.string.localprofile_shortname)
.description(R.string.description_profile_local)), ProfileInterface {
.description(R.string.description_profile_local), rxBus, aapsLogger), ProfileInterface {
var rawProfile: ProfileStore? = null

View file

@ -19,8 +19,10 @@ import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.ProfileInterface;
import info.nightscout.androidaps.logging.AAPSLoggerProduction;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.general.nsclient.events.EventNSClientRestart;
import info.nightscout.androidaps.plugins.profile.ns.events.EventNSProfileUpdateGUI;
import info.nightscout.androidaps.utils.SP;
@ -50,7 +52,8 @@ public class NSProfilePlugin extends PluginBase implements ProfileInterface {
.alwaysEnabled(Config.NSCLIENT)
.alwaysVisible(Config.NSCLIENT)
.showInList(!Config.NSCLIENT)
.description(R.string.description_profile_nightscout)
.description(R.string.description_profile_nightscout),
new RxBusWrapper(), new AAPSLoggerProduction() // TODO: dagger
);
loadNSProfile();
}

View file

@ -37,8 +37,10 @@ import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.logging.AAPSLoggerProduction;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.common.ManufacturerType;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
@ -130,13 +132,16 @@ public class ComboPlugin extends PluginBase implements PumpInterface, Constraint
private static final PumpEnactResult OPERATION_NOT_SUPPORTED = new PumpEnactResult()
.success(false).enacted(false).comment(MainApp.gs(R.string.combo_pump_unsupported_operation));
// TODO: dagger
private ComboPlugin() {
super(new PluginDescription()
.mainType(PluginType.PUMP)
.fragmentClass(ComboFragment.class.getName())
.pluginName(R.string.combopump)
.shortName(R.string.combopump_shortname)
.description(R.string.description_pump_combo)
.description(R.string.description_pump_combo),
new RxBusWrapper(), new AAPSLoggerProduction() // TODO: dagger
);
ruffyScripter = new RuffyScripter(MainApp.instance().getApplicationContext());
pumpDescription.setPumpDescription(PumpType.AccuChekCombo);

View file

@ -28,8 +28,10 @@ import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.logging.AAPSLogger;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.general.overview.events.EventOverviewBolusProgress;
import info.nightscout.androidaps.plugins.pump.common.data.PumpStatus;
import info.nightscout.androidaps.plugins.pump.common.defs.PumpDriverState;
@ -68,9 +70,9 @@ public abstract class PumpPluginAbstract extends PluginBase implements PumpInter
protected boolean displayConnectionMessages = false;
protected PumpPluginAbstract(PluginDescription pluginDescription, PumpType pumpType) {
protected PumpPluginAbstract(PluginDescription pluginDescription, PumpType pumpType, RxBusWrapper rxBusWrapper, AAPSLogger aapsLogger) {
super(pluginDescription);
super(pluginDescription, rxBusWrapper, aapsLogger);
pumpDescription.setPumpDescription(pumpType);

View file

@ -25,8 +25,10 @@ import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.logging.AAPSLogger;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.common.ManufacturerType;
import info.nightscout.androidaps.plugins.configBuilder.ConstraintChecker;
import info.nightscout.androidaps.plugins.general.actions.defs.CustomAction;
@ -56,14 +58,15 @@ public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInte
public PumpDescription pumpDescription = new PumpDescription();
protected AbstractDanaRPlugin() {
protected AbstractDanaRPlugin(RxBusWrapper rxBus, AAPSLogger aapsLogger) {
super(new PluginDescription()
.mainType(PluginType.PUMP)
.fragmentClass(DanaRFragment.class.getName())
.pluginName(R.string.danarspump)
.shortName(R.string.danarpump_shortname)
.preferencesId(R.xml.pref_danars)
.description(R.string.description_pump_dana_r)
.description(R.string.description_pump_dana_r),
rxBus, aapsLogger
);
}

View file

@ -69,7 +69,7 @@ public class DanaRPlugin extends AbstractDanaRPlugin {
TreatmentsPlugin treatmentsPlugin,
SP sp
) {
super();
super(rxBus, aapsLogger);
plugin = this;
this.aapsLogger = aapsLogger;
this.rxBus = rxBus;

View file

@ -71,7 +71,7 @@ public class DanaRKoreanPlugin extends AbstractDanaRPlugin {
TreatmentsPlugin treatmentsPlugin,
SP sp
) {
super();
super(rxBus, aapsLogger);
plugin = this;
this.aapsLogger = aapsLogger;
this.rxBus = rxBus;
@ -80,7 +80,7 @@ public class DanaRKoreanPlugin extends AbstractDanaRPlugin {
this.constraintChecker = constraintChecker;
this.treatmentsPlugin = treatmentsPlugin;
this.sp = sp;
pluginDescription.description(R.string.description_pump_dana_r_korean);
getPluginDescription().description(R.string.description_pump_dana_r_korean);
useExtendedBoluses = sp.getBoolean(R.string.key_danar_useextended, false);
pumpDescription.setPumpDescription(PumpType.DanaRKorean);

View file

@ -70,9 +70,7 @@ import io.reactivex.schedulers.Schedulers;
@Singleton
public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInterface, ConstraintsInterface {
private CompositeDisposable disposable = new CompositeDisposable();
private final AAPSLogger aapsLogger;
private final RxBusWrapper rxBus;
private final MainApp mainApp;
private final ResourceHelper resourceHelper;
private final ConstraintChecker constraintChecker;
@ -113,11 +111,10 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
.pluginName(R.string.danarspump)
.shortName(R.string.danarspump_shortname)
.preferencesId(R.xml.pref_danars)
.description(R.string.description_pump_dana_rs)
.description(R.string.description_pump_dana_rs),
rxBus, aapsLogger
);
plugin = this;
this.aapsLogger = aapsLogger;
this.rxBus = rxBus;
this.mainApp = maiApp;
this.resourceHelper = resourceHelper;
this.constraintChecker = constraintChecker;
@ -141,12 +138,12 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
Intent intent = new Intent(mainApp, DanaRSService.class);
mainApp.bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventAppExit.class)
.observeOn(Schedulers.io())
.subscribe(event -> mainApp.unbindService(mConnection), exception -> FabricPrivacy.getInstance().logException(exception))
);
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventDanaRSDeviceChange.class)
.observeOn(Schedulers.io())
.subscribe(event -> loadAddress(), exception -> FabricPrivacy.getInstance().logException(exception))
@ -171,12 +168,12 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceDisconnected(ComponentName name) {
aapsLogger.debug(LTag.PUMP, "Service is disconnected");
getAapsLogger().debug(LTag.PUMP, "Service is disconnected");
danaRSService = null;
}
public void onServiceConnected(ComponentName name, IBinder service) {
aapsLogger.debug(LTag.PUMP, "Service is connected");
getAapsLogger().debug(LTag.PUMP, "Service is connected");
DanaRSService.LocalBinder mLocalBinder = (DanaRSService.LocalBinder) service;
danaRSService = mLocalBinder.getServiceInstance();
}
@ -189,7 +186,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
@Override
public void connect(String from) {
aapsLogger.debug(LTag.PUMP, "RS connect from: " + from);
getAapsLogger().debug(LTag.PUMP, "RS connect from: " + from);
if (danaRSService != null && !mDeviceAddress.equals("") && !mDeviceName.equals("")) {
final Object o = new Object();
@ -218,7 +215,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
@Override
public void disconnect(String from) {
aapsLogger.debug(LTag.PUMP, "RS disconnect from: " + from);
getAapsLogger().debug(LTag.PUMP, "RS disconnect from: " + from);
if (danaRSService != null) danaRSService.disconnect(from);
}
@ -308,29 +305,29 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
PumpEnactResult result = new PumpEnactResult();
if (danaRSService == null) {
aapsLogger.error("setNewBasalProfile sExecutionService is null");
getAapsLogger().error("setNewBasalProfile sExecutionService is null");
result.comment = "setNewBasalProfile sExecutionService is null";
return result;
}
if (!isInitialized()) {
aapsLogger.error("setNewBasalProfile not initialized");
getAapsLogger().error("setNewBasalProfile not initialized");
Notification notification = new Notification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED, resourceHelper.gs(R.string.pumpNotInitializedProfileNotSet), Notification.URGENT);
rxBus.send(new EventNewNotification(notification));
getRxBus().send(new EventNewNotification(notification));
result.comment = resourceHelper.gs(R.string.pumpNotInitializedProfileNotSet);
return result;
} else {
rxBus.send(new EventDismissNotification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED));
getRxBus().send(new EventDismissNotification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED));
}
if (!danaRSService.updateBasalsInPump(profile)) {
Notification notification = new Notification(Notification.FAILED_UDPATE_PROFILE, resourceHelper.gs(R.string.failedupdatebasalprofile), Notification.URGENT);
rxBus.send(new EventNewNotification(notification));
getRxBus().send(new EventNewNotification(notification));
result.comment = resourceHelper.gs(R.string.failedupdatebasalprofile);
return result;
} else {
rxBus.send(new EventDismissNotification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED));
rxBus.send(new EventDismissNotification(Notification.FAILED_UDPATE_PROFILE));
getRxBus().send(new EventDismissNotification(Notification.PROFILE_NOT_SET_NOT_INITIALIZED));
getRxBus().send(new EventDismissNotification(Notification.FAILED_UDPATE_PROFILE));
Notification notification = new Notification(Notification.PROFILE_SET_OK, resourceHelper.gs(R.string.profile_set_ok), Notification.INFO, 60);
rxBus.send(new EventNewNotification(notification));
getRxBus().send(new EventNewNotification(notification));
result.success = true;
result.enacted = true;
result.comment = "OK";
@ -351,7 +348,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
Double pumpValue = pump.pumpProfiles[pump.activeProfile][h];
Double profileValue = profile.getBasalTimeFromMidnight(h * basalIncrement);
if (Math.abs(pumpValue - profileValue) > getPumpDescription().basalStep) {
aapsLogger.debug(LTag.PUMP, "Diff found. Hour: " + h + " Pump: " + pumpValue + " Profile: " + profileValue);
getAapsLogger().debug(LTag.PUMP, "Diff found. Hour: " + h + " Pump: " + pumpValue + " Profile: " + profileValue);
return false;
}
}
@ -437,7 +434,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
result.comment = String.format(resourceHelper.gs(R.string.boluserrorcode), detailedBolusInfo.insulin, t.insulin, error);
} else
result.comment = resourceHelper.gs(R.string.virtualpump_resultok);
aapsLogger.debug(LTag.PUMP, "deliverTreatment: OK. Asked: " + detailedBolusInfo.insulin + " Delivered: " + result.bolusDelivered);
getAapsLogger().debug(LTag.PUMP, "deliverTreatment: OK. Asked: " + detailedBolusInfo.insulin + " Delivered: " + result.bolusDelivered);
return result;
} else {
PumpEnactResult result = new PumpEnactResult();
@ -445,7 +442,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
result.bolusDelivered = 0d;
result.carbsDelivered = 0d;
result.comment = resourceHelper.gs(R.string.danar_invalidinput);
aapsLogger.error("deliverTreatment: Invalid input");
getAapsLogger().error("deliverTreatment: Invalid input");
return result;
}
}
@ -453,7 +450,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
@Override
public void stopBolusDelivering() {
if (danaRSService == null) {
aapsLogger.error("stopBolusDelivering sExecutionService is null");
getAapsLogger().error("stopBolusDelivering sExecutionService is null");
return;
}
danaRSService.bolusStop();
@ -480,7 +477,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
if (doTempOff) {
// If temp in progress
if (treatmentsPlugin.isTempBasalInProgress()) {
aapsLogger.debug(LTag.PUMP, "setTempBasalAbsolute: Stopping temp basal (doTempOff)");
getAapsLogger().debug(LTag.PUMP, "setTempBasalAbsolute: Stopping temp basal (doTempOff)");
return cancelTempBasal(false);
}
result.success = true;
@ -488,7 +485,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
result.percent = 100;
result.isPercent = true;
result.isTempCancel = true;
aapsLogger.debug(LTag.PUMP, "setTempBasalAbsolute: doTempOff OK");
getAapsLogger().debug(LTag.PUMP, "setTempBasalAbsolute: doTempOff OK");
return result;
}
@ -501,7 +498,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
// Check if some temp is already in progress
TemporaryBasal activeTemp = treatmentsPlugin.getTempBasalFromHistory(System.currentTimeMillis());
if (activeTemp != null) {
aapsLogger.debug(LTag.PUMP, "setTempBasalAbsolute: currently running: " + activeTemp.toString());
getAapsLogger().debug(LTag.PUMP, "setTempBasalAbsolute: currently running: " + activeTemp.toString());
// Correct basal already set ?
if (activeTemp.percentRate == percentRate && activeTemp.getPlannedRemainingMinutes() > 4) {
if (!enforceNew) {
@ -511,13 +508,13 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
result.duration = activeTemp.getPlannedRemainingMinutes();
result.isPercent = true;
result.isTempCancel = false;
aapsLogger.debug(LTag.PUMP, "setTempBasalAbsolute: Correct temp basal already set (doLowTemp || doHighTemp)");
getAapsLogger().debug(LTag.PUMP, "setTempBasalAbsolute: Correct temp basal already set (doLowTemp || doHighTemp)");
return result;
}
}
}
// Convert duration from minutes to hours
aapsLogger.debug(LTag.PUMP, "setTempBasalAbsolute: Setting temp basal " + percentRate + "% for " + durationInMinutes + " mins (doLowTemp || doHighTemp)");
getAapsLogger().debug(LTag.PUMP, "setTempBasalAbsolute: Setting temp basal " + percentRate + "% for " + durationInMinutes + " mins (doLowTemp || doHighTemp)");
if (percentRate == 0 && durationInMinutes > 30) {
result = setTempBasalPercent(percentRate, durationInMinutes, profile, enforceNew);
} else {
@ -525,14 +522,14 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
result = setHighTempBasalPercent(percentRate);
}
if (!result.success) {
aapsLogger.error("setTempBasalAbsolute: Failed to set hightemp basal");
getAapsLogger().error("setTempBasalAbsolute: Failed to set hightemp basal");
return result;
}
aapsLogger.debug(LTag.PUMP, "setTempBasalAbsolute: hightemp basal set ok");
getAapsLogger().debug(LTag.PUMP, "setTempBasalAbsolute: hightemp basal set ok");
return result;
}
// We should never end here
aapsLogger.error("setTempBasalAbsolute: Internal error");
getAapsLogger().error("setTempBasalAbsolute: Internal error");
result.success = false;
result.comment = "Internal error";
return result;
@ -548,7 +545,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
result.enacted = false;
result.success = false;
result.comment = resourceHelper.gs(R.string.danar_invalidinput);
aapsLogger.error("setTempBasalPercent: Invalid input");
getAapsLogger().error("setTempBasalPercent: Invalid input");
return result;
}
if (percent > getPumpDescription().maxTempPercent)
@ -563,7 +560,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
result.duration = pump.tempBasalRemainingMin;
result.percent = pump.tempBasalPercent;
result.isPercent = true;
aapsLogger.debug(LTag.PUMP, "setTempBasalPercent: Correct value already set");
getAapsLogger().debug(LTag.PUMP, "setTempBasalPercent: Correct value already set");
return result;
}
boolean connectionOK;
@ -581,13 +578,13 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
result.duration = pump.tempBasalRemainingMin;
result.percent = pump.tempBasalPercent;
result.isPercent = true;
aapsLogger.debug(LTag.PUMP, "setTempBasalPercent: OK");
getAapsLogger().debug(LTag.PUMP, "setTempBasalPercent: OK");
return result;
}
result.enacted = false;
result.success = false;
result.comment = resourceHelper.gs(R.string.tempbasaldeliveryerror);
aapsLogger.error("setTempBasalPercent: Failed to set temp basal");
getAapsLogger().error("setTempBasalPercent: Failed to set temp basal");
return result;
}
@ -603,13 +600,13 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
result.duration = pump.tempBasalRemainingMin;
result.percent = pump.tempBasalPercent;
result.isPercent = true;
aapsLogger.debug(LTag.PUMP, "setHighTempBasalPercent: OK");
getAapsLogger().debug(LTag.PUMP, "setHighTempBasalPercent: OK");
return result;
}
result.enacted = false;
result.success = false;
result.comment = resourceHelper.gs(R.string.danar_valuenotsetproperly);
aapsLogger.error("setHighTempBasalPercent: Failed to set temp basal");
getAapsLogger().error("setHighTempBasalPercent: Failed to set temp basal");
return result;
}
@ -630,7 +627,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
result.absolute = pump.extendedBolusAbsoluteRate;
result.isPercent = false;
result.isTempCancel = false;
aapsLogger.debug(LTag.PUMP, "setExtendedBolus: Correct extended bolus already set. Current: " + pump.extendedBolusAmount + " Asked: " + insulin);
getAapsLogger().debug(LTag.PUMP, "setExtendedBolus: Correct extended bolus already set. Current: " + pump.extendedBolusAmount + " Asked: " + insulin);
return result;
}
boolean connectionOK = danaRSService.extendedBolus(insulin, durationInHalfHours);
@ -643,13 +640,13 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
result.absolute = pump.extendedBolusAbsoluteRate;
result.bolusDelivered = pump.extendedBolusAmount;
result.isPercent = false;
aapsLogger.debug(LTag.PUMP, "setExtendedBolus: OK");
getAapsLogger().debug(LTag.PUMP, "setExtendedBolus: OK");
return result;
}
result.enacted = false;
result.success = false;
result.comment = resourceHelper.gs(R.string.danar_valuenotsetproperly);
aapsLogger.error("setExtendedBolus: Failed to extended bolus");
getAapsLogger().error("setExtendedBolus: Failed to extended bolus");
return result;
}
@ -666,13 +663,13 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
result.success = true;
result.isTempCancel = true;
result.comment = resourceHelper.gs(R.string.virtualpump_resultok);
aapsLogger.debug(LTag.PUMP, "cancelRealTempBasal: OK");
getAapsLogger().debug(LTag.PUMP, "cancelRealTempBasal: OK");
return result;
} else {
result.success = false;
result.comment = resourceHelper.gs(R.string.danar_valuenotsetproperly);
result.isTempCancel = true;
aapsLogger.error("cancelRealTempBasal: Failed to cancel temp basal");
getAapsLogger().error("cancelRealTempBasal: Failed to cancel temp basal");
return result;
}
}
@ -689,12 +686,12 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
if (!DanaRPump.getInstance().isExtendedInProgress) {
result.success = true;
result.comment = resourceHelper.gs(R.string.virtualpump_resultok);
aapsLogger.debug(LTag.PUMP, "cancelExtendedBolus: OK");
getAapsLogger().debug(LTag.PUMP, "cancelExtendedBolus: OK");
return result;
} else {
result.success = false;
result.comment = resourceHelper.gs(R.string.danar_valuenotsetproperly);
aapsLogger.error("cancelExtendedBolus: Failed to cancel extended bolus");
getAapsLogger().error("cancelExtendedBolus: Failed to cancel extended bolus");
return result;
}
}
@ -736,7 +733,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
try {
extended.put("ActiveProfile", profileFunction.getProfileName());
} catch (Exception e) {
aapsLogger.error("Unhandled exception", e);
getAapsLogger().error("Unhandled exception", e);
}
pumpjson.put("battery", battery);
@ -745,7 +742,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
pumpjson.put("reservoir", (int) pump.reservoirRemainingUnits);
pumpjson.put("clock", DateUtil.toISOString(now));
} catch (JSONException e) {
aapsLogger.error("Unhandled exception", e);
getAapsLogger().error("Unhandled exception", e);
}
return pumpjson;
}

View file

@ -71,7 +71,7 @@ public class DanaRv2Plugin extends AbstractDanaRPlugin {
TreatmentsPlugin treatmentsPlugin,
SP sp
) {
super();
super(rxBus, aapsLogger);
plugin = this;
this.aapsLogger = aapsLogger;
this.rxBus = rxBus;
@ -80,7 +80,7 @@ public class DanaRv2Plugin extends AbstractDanaRPlugin {
this.constraintChecker = constraintChecker;
this.treatmentsPlugin = treatmentsPlugin;
this.sp = sp;
pluginDescription.description(R.string.description_pump_dana_r_v2);
getPluginDescription().description(R.string.description_pump_dana_r_v2);
useExtendedBoluses = false;
pumpDescription.setPumpDescription(PumpType.DanaRv2);

View file

@ -42,8 +42,10 @@ import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.logging.AAPSLoggerProduction;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.common.ManufacturerType;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
@ -195,7 +197,10 @@ public class LocalInsightPlugin extends PluginBase implements PumpInterface, Con
.description(R.string.description_pump_insight_local)
.fragmentClass(LocalInsightFragment.class.getName())
.preferencesId(MainApp.instance().getPackageName().equals("info.nightscout.androidaps")
? R.xml.pref_insight_local_full : R.xml.pref_insight_local_pumpcontrol));
? R.xml.pref_insight_local_full : R.xml.pref_insight_local_pumpcontrol),
new RxBusWrapper(), new AAPSLoggerProduction() // TODO: dagger
);
pumpDescription = new PumpDescription();
pumpDescription.setPumpDescription(PumpType.AccuChekInsightBluetooth);

View file

@ -18,7 +18,10 @@ import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.logging.AAPSLogger;
import info.nightscout.androidaps.logging.AAPSLoggerProduction;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.common.ManufacturerType;
import info.nightscout.androidaps.plugins.general.actions.defs.CustomAction;
import info.nightscout.androidaps.plugins.general.actions.defs.CustomActionType;
@ -45,11 +48,14 @@ public class MDIPlugin extends PluginBase implements PumpInterface {
private PumpDescription pumpDescription = new PumpDescription();
//TODO dagger
private MDIPlugin() {
super(new PluginDescription()
.mainType(PluginType.PUMP)
.pluginName(R.string.mdi)
.description(R.string.description_pump_mdi)
.mainType(PluginType.PUMP)
.pluginName(R.string.mdi)
.description(R.string.description_pump_mdi),
new RxBusWrapper(), new AAPSLoggerProduction() // TODO: dagger
);
pumpDescription.isBolusCapable = true;
pumpDescription.bolusStep = 0.5d;

View file

@ -37,8 +37,10 @@ import info.nightscout.androidaps.events.EventRefreshOverview;
import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.logging.AAPSLoggerProduction;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.common.ManufacturerType;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.general.actions.defs.CustomAction;
@ -117,7 +119,8 @@ public class MedtronicPumpPlugin extends PumpPluginAbstract implements PumpInter
.pluginName(R.string.medtronic_name) //
.shortName(R.string.medtronic_name_short) //
.preferencesId(R.xml.pref_medtronic).description(R.string.description_pump_medtronic), //
PumpType.Medtronic_522_722 // we default to most basic model, correct model from config is loaded later
PumpType.Medtronic_522_722, // we default to most basic model, correct model from config is loaded later
new RxBusWrapper(), new AAPSLoggerProduction() // TODO: dagger
);
displayConnectionMessages = false;

View file

@ -45,8 +45,8 @@ import javax.inject.Singleton
@Singleton
class VirtualPumpPlugin @Inject constructor(
private val aapsLogger: AAPSLogger,
private val rxBus: RxBusWrapper,
aapsLogger: AAPSLogger,
rxBus: RxBusWrapper,
private var fabricPrivacy: FabricPrivacy,
private val resourceHelper: ResourceHelper,
private val sp: SP,
@ -59,7 +59,8 @@ class VirtualPumpPlugin @Inject constructor(
.shortName(R.string.virtualpump_shortname)
.preferencesId(R.xml.pref_virtualpump)
.neverVisible(Config.NSCLIENT)
.description(R.string.description_pump_virtual)
.description(R.string.description_pump_virtual),
rxBus, aapsLogger
), PumpInterface {

View file

@ -7,7 +7,9 @@ import info.nightscout.androidaps.R;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.SensitivityInterface;
import info.nightscout.androidaps.logging.AAPSLogger;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensResult;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.utils.Round;
@ -18,8 +20,8 @@ public abstract class AbstractSensitivityPlugin extends PluginBase implements Se
private static final Logger log = LoggerFactory.getLogger(L.AUTOSENS);
public AbstractSensitivityPlugin(PluginDescription pluginDescription) {
super(pluginDescription);
public AbstractSensitivityPlugin(PluginDescription pluginDescription, RxBusWrapper rxBusWrapper, AAPSLogger aapsLogger) {
super(pluginDescription, rxBusWrapper, aapsLogger);
}
@Override

View file

@ -17,7 +17,9 @@ import info.nightscout.androidaps.db.CareportalEvent;
import info.nightscout.androidaps.db.ProfileSwitch;
import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.logging.AAPSLoggerProduction;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensData;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensResult;
@ -41,13 +43,16 @@ public class SensitivityAAPSPlugin extends AbstractSensitivityPlugin {
return plugin;
}
// TODO: dagger
public SensitivityAAPSPlugin() {
super(new PluginDescription()
.mainType(PluginType.SENSITIVITY)
.pluginName(R.string.sensitivityaaps)
.shortName(R.string.sensitivity_shortname)
.preferencesId(R.xml.pref_absorption_aaps)
.description(R.string.description_sensitivity_aaps)
.description(R.string.description_sensitivity_aaps),
new RxBusWrapper(), new AAPSLoggerProduction() // TODO: dagger
);
}

View file

@ -17,7 +17,9 @@ import info.nightscout.androidaps.db.CareportalEvent;
import info.nightscout.androidaps.db.ProfileSwitch;
import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.logging.AAPSLoggerProduction;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensData;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensResult;
@ -40,13 +42,16 @@ public class SensitivityOref0Plugin extends AbstractSensitivityPlugin {
return plugin;
}
// TODO: dagger
public SensitivityOref0Plugin() {
super(new PluginDescription()
.mainType(PluginType.SENSITIVITY)
.pluginName(R.string.sensitivityoref0)
.shortName(R.string.sensitivity_shortname)
.preferencesId(R.xml.pref_absorption_oref0)
.description(R.string.description_sensitivity_oref0)
.description(R.string.description_sensitivity_oref0),
new RxBusWrapper(), new AAPSLoggerProduction() // TODO: dagger
);
}

View file

@ -17,7 +17,9 @@ import info.nightscout.androidaps.db.CareportalEvent;
import info.nightscout.androidaps.db.ProfileSwitch;
import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.logging.AAPSLoggerProduction;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensData;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensResult;
@ -46,7 +48,8 @@ public class SensitivityOref1Plugin extends AbstractSensitivityPlugin {
.pluginName(R.string.sensitivityoref1)
.shortName(R.string.sensitivity_shortname)
.preferencesId(R.xml.pref_absorption_oref1)
.description(R.string.description_sensitivity_oref1)
.description(R.string.description_sensitivity_oref1),
new RxBusWrapper(), new AAPSLoggerProduction() // TODO: Dagger
);
}

View file

@ -15,7 +15,9 @@ import info.nightscout.androidaps.db.CareportalEvent;
import info.nightscout.androidaps.db.ProfileSwitch;
import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.logging.AAPSLoggerProduction;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensData;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensResult;
@ -39,13 +41,16 @@ public class SensitivityWeightedAveragePlugin extends AbstractSensitivityPlugin
return plugin;
}
// TODO: dagger
public SensitivityWeightedAveragePlugin() {
super(new PluginDescription()
.mainType(PluginType.SENSITIVITY)
.pluginName(R.string.sensitivityweightedaverage)
.shortName(R.string.sensitivity_shortname)
.preferencesId(R.xml.pref_absorption_aaps)
.description(R.string.description_sensitivity_weighted_average)
.description(R.string.description_sensitivity_weighted_average),
new RxBusWrapper(), new AAPSLoggerProduction() // TODO: dagger
);
}

View file

@ -14,26 +14,29 @@ import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload
import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.sharedPreferences.SP
import info.nightscout.androidaps.utils.T
import info.nightscout.androidaps.utils.sharedPreferences.SP
import org.json.JSONObject
import javax.inject.Inject
import javax.inject.Singleton
@Singleton
class DexcomPlugin @Inject constructor(
private val aapsLogger: AAPSLogger,
private val sp: SP,
private val mainApp: MainApp
private val mainApp: MainApp,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.BGSOURCE)
.fragmentClass(BGSourceFragment::class.java.name)
.pluginName(R.string.dexcom_app_patched)
.shortName(R.string.dexcom_short)
.preferencesId(R.xml.pref_bgsourcedexcom)
.description(R.string.description_source_dexcom)), BgSourceInterface {
.description(R.string.description_source_dexcom),
rxBus,
aapsLogger), BgSourceInterface {
private val PACKAGE_NAMES = arrayOf("com.dexcom.cgm.region1.mgdl", "com.dexcom.cgm.region1.mmol",
"com.dexcom.cgm.region2.mgdl", "com.dexcom.cgm.region2.mmol",

View file

@ -14,6 +14,7 @@ import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.L
import info.nightscout.androidaps.logging.L.isEnabled
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload
import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.sharedPreferences.SP
@ -25,15 +26,17 @@ import javax.inject.Singleton
@Singleton
class EversensePlugin @Inject constructor(
private val aapsLogger: AAPSLogger,
private val sp: SP
private val sp: SP,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.BGSOURCE)
.fragmentClass(BGSourceFragment::class.java.name)
.pluginName(R.string.eversense)
.shortName(R.string.eversense_shortname)
.preferencesId(R.xml.pref_bgsource)
.description(R.string.description_source_eversense)
.description(R.string.description_source_eversense),
rxBus,
aapsLogger
), BgSourceInterface {
override fun advancedFilteringSupported(): Boolean {

View file

@ -11,18 +11,21 @@ import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.BundleLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import javax.inject.Inject
import javax.inject.Singleton
@Singleton
class GlimpPlugin @Inject constructor(
private val aapsLogger: AAPSLogger
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.BGSOURCE)
.fragmentClass(BGSourceFragment::class.java.name)
.pluginName(R.string.Glimp)
.preferencesId(R.xml.pref_bgsource)
.description(R.string.description_source_glimp)
.description(R.string.description_source_glimp),
rxBus,
aapsLogger
), BgSourceInterface {
override fun advancedFilteringSupported(): Boolean {

View file

@ -10,6 +10,7 @@ import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import org.json.JSONArray
import org.json.JSONException
import javax.inject.Inject
@ -17,12 +18,14 @@ import javax.inject.Singleton
@Singleton
class MM640gPlugin @Inject constructor(
private val aapsLogger: AAPSLogger
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.BGSOURCE)
.fragmentClass(BGSourceFragment::class.java.name)
.pluginName(R.string.MM640g)
.description(R.string.description_source_mm640g)
.description(R.string.description_source_mm640g),
rxBus,
aapsLogger
), BgSourceInterface {
override fun advancedFilteringSupported(): Boolean {

View file

@ -10,6 +10,7 @@ import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.general.nsclient.data.NSSgv
import info.nightscout.androidaps.utils.JsonHelper.safeGetLong
import info.nightscout.androidaps.utils.JsonHelper.safeGetString
@ -21,13 +22,15 @@ import javax.inject.Singleton
@Singleton
class NSClientSourcePlugin @Inject constructor(
private val aapsLogger: AAPSLogger,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger,
private val sp: SP
) : PluginBase(PluginDescription()
.mainType(PluginType.BGSOURCE)
.fragmentClass(BGSourceFragment::class.java.name)
.pluginName(R.string.nsclientbg)
.description(R.string.description_source_ns_client)
.description(R.string.description_source_ns_client),
rxBus,
aapsLogger
), BgSourceInterface {
private var lastBGTimeStamp: Long = 0

View file

@ -11,6 +11,7 @@ import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload
import info.nightscout.androidaps.utils.JsonHelper.safeGetString
import info.nightscout.androidaps.utils.sharedPreferences.SP
@ -21,14 +22,16 @@ import javax.inject.Singleton
@Singleton
class PoctechPlugin @Inject constructor(
private val aapsLogger: AAPSLogger,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger,
private val sp: SP
) : PluginBase(PluginDescription()
.mainType(PluginType.BGSOURCE)
.fragmentClass(BGSourceFragment::class.java.name)
.pluginName(R.string.poctech)
.preferencesId(R.xml.pref_bgsource)
.description(R.string.description_source_poctech)
.description(R.string.description_source_poctech),
rxBus,
aapsLogger
), BgSourceInterface {
override fun advancedFilteringSupported(): Boolean {

View file

@ -11,6 +11,7 @@ import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpPlugin
import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.T
@ -23,14 +24,16 @@ import kotlin.math.sin
@Singleton
class RandomBgPlugin @Inject constructor(
private val aapsLogger: AAPSLogger,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger,
private var virtualPumpPlugin: VirtualPumpPlugin
) : PluginBase(PluginDescription()
.mainType(PluginType.BGSOURCE)
.fragmentClass(BGSourceFragment::class.java.name)
.pluginName(R.string.randombg)
.shortName(R.string.randombg_short)
.description(R.string.description_source_randombg)), BgSourceInterface {
.description(R.string.description_source_randombg),
rxBus,
aapsLogger), BgSourceInterface {
private val loopHandler = Handler()
private lateinit var refreshLoop: Runnable

View file

@ -10,6 +10,7 @@ import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload
import info.nightscout.androidaps.utils.sharedPreferences.SP
import javax.inject.Inject
@ -17,7 +18,7 @@ import javax.inject.Singleton
@Singleton
class TomatoPlugin @Inject constructor(
private val aapsLogger: AAPSLogger,
rxBus: RxBusWrapper, aapsLogger: AAPSLogger,
private val sp: SP
) : PluginBase(PluginDescription()
.mainType(PluginType.BGSOURCE)
@ -25,7 +26,9 @@ class TomatoPlugin @Inject constructor(
.pluginName(R.string.tomato)
.preferencesId(R.xml.pref_bgsource)
.shortName(R.string.tomato_short)
.description(R.string.description_source_tomato)
.description(R.string.description_source_tomato),
rxBus,
aapsLogger
), BgSourceInterface {
override fun advancedFilteringSupported(): Boolean {

View file

@ -11,18 +11,21 @@ import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.BundleLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.services.Intents
import javax.inject.Inject
import javax.inject.Singleton
@Singleton
class XdripPlugin @Inject constructor(
private val aapsLogger: AAPSLogger
rxBus: RxBusWrapper, aapsLogger: AAPSLogger
) : PluginBase(PluginDescription()
.mainType(PluginType.BGSOURCE)
.fragmentClass(BGSourceFragment::class.java.name)
.pluginName(R.string.xdrip)
.description(R.string.description_source_xdrip)
.description(R.string.description_source_xdrip),
rxBus,
aapsLogger
), BgSourceInterface {
var advancedFiltering = false

View file

@ -64,8 +64,7 @@ import io.reactivex.schedulers.Schedulers;
@Singleton
public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface {
private final AAPSLogger aapsLogger;
private final RxBusWrapper rxBus;
private final MainApp mainApp;
private final SP sp;
private final ResourceHelper resourceHelper;
@ -112,10 +111,10 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
.pluginName(R.string.treatments)
.shortName(R.string.treatments_shortname)
.alwaysEnabled(true)
.description(R.string.description_treatments)
.description(R.string.description_treatments),
rxBus,
aapsLogger
);
this.aapsLogger = aapsLogger;
this.rxBus = rxBus;
this.resourceHelper = resourceHelper;
this.mainApp = mainApp;
this.sp = sp;
@ -129,35 +128,35 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
this.service = new TreatmentService();
initializeData(range());
super.onStart();
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventReloadTreatmentData.class)
.observeOn(Schedulers.io())
.subscribe(event -> {
aapsLogger.debug(LTag.DATATREATMENTS, "EventReloadTreatmentData");
getAapsLogger().debug(LTag.DATATREATMENTS, "EventReloadTreatmentData");
initializeTreatmentData(range());
initializeExtendedBolusData(range());
updateTotalIOBTreatments();
rxBus.send(event.getNext());
getRxBus().send(event.getNext());
},
exception -> FabricPrivacy.getInstance().logException(exception)
));
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventReloadProfileSwitchData.class)
.observeOn(Schedulers.io())
.subscribe(event -> initializeProfileSwitchData(range()),
exception -> FabricPrivacy.getInstance().logException(exception)
));
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventTempTargetChange.class)
.observeOn(Schedulers.io())
.subscribe(event -> initializeTempTargetData(range()),
exception -> FabricPrivacy.getInstance().logException(exception)
));
disposable.add(rxBus
disposable.add(getRxBus()
.toObservable(EventReloadTempBasalData.class)
.observeOn(Schedulers.io())
.subscribe(event -> {
aapsLogger.debug(LTag.DATATREATMENTS, "EventReloadTempBasalData");
getAapsLogger().debug(LTag.DATATREATMENTS, "EventReloadTempBasalData");
initializeTempBasalData(range());
updateTotalIOBTempBasals();
},
@ -191,7 +190,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
}
private void initializeTreatmentData(long range) {
aapsLogger.debug(LTag.DATATREATMENTS, "initializeTreatmentData");
getAapsLogger().debug(LTag.DATATREATMENTS, "initializeTreatmentData");
synchronized (treatments) {
treatments.clear();
treatments.addAll(getService().getTreatmentDataFromTime(DateUtil.now() - range, false));
@ -199,7 +198,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
}
private void initializeTempBasalData(long range) {
aapsLogger.debug(LTag.DATATREATMENTS, "initializeTempBasalData");
getAapsLogger().debug(LTag.DATATREATMENTS, "initializeTempBasalData");
synchronized (tempBasals) {
tempBasals.reset().add(MainApp.getDbHelper().getTemporaryBasalsDataFromTime(DateUtil.now() - range, false));
}
@ -207,7 +206,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
}
private void initializeExtendedBolusData(long range) {
aapsLogger.debug(LTag.DATATREATMENTS, "initializeExtendedBolusData");
getAapsLogger().debug(LTag.DATATREATMENTS, "initializeExtendedBolusData");
synchronized (extendedBoluses) {
extendedBoluses.reset().add(MainApp.getDbHelper().getExtendedBolusDataFromTime(DateUtil.now() - range, false));
}
@ -215,14 +214,14 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
}
private void initializeTempTargetData(long range) {
aapsLogger.debug(LTag.DATATREATMENTS, "initializeTempTargetData");
getAapsLogger().debug(LTag.DATATREATMENTS, "initializeTempTargetData");
synchronized (tempTargets) {
tempTargets.reset().add(MainApp.getDbHelper().getTemptargetsDataFromTime(DateUtil.now() - range, false));
}
}
private void initializeProfileSwitchData(long range) {
aapsLogger.debug(LTag.DATATREATMENTS, "initializeProfileSwitchData");
getAapsLogger().debug(LTag.DATATREATMENTS, "initializeProfileSwitchData");
synchronized (profiles) {
profiles.reset().add(MainApp.getDbHelper().getProfileSwitchData(DateUtil.now() - range, false));
}
@ -310,13 +309,13 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
long time = System.currentTimeMillis();
synchronized (treatments) {
aapsLogger.debug(MedtronicHistoryData.doubleBolusDebug, LTag.DATATREATMENTS, "DoubleBolusDebug: AllTreatmentsInDb: " + MedtronicUtil.getGsonInstanceCore().toJson(treatments));
getAapsLogger().debug(MedtronicHistoryData.doubleBolusDebug, LTag.DATATREATMENTS, "DoubleBolusDebug: AllTreatmentsInDb: " + MedtronicUtil.getGsonInstanceCore().toJson(treatments));
for (Treatment t : treatments) {
if (t.date <= time && t.date >= fromTimestamp)
in5minback.add(t);
}
aapsLogger.debug(MedtronicHistoryData.doubleBolusDebug, LTag.DATATREATMENTS, "DoubleBolusDebug: FilteredTreatments: AfterTime={}, Items={} " + fromTimestamp + " " + MedtronicUtil.getGsonInstanceCore().toJson(in5minback));
getAapsLogger().debug(MedtronicHistoryData.doubleBolusDebug, LTag.DATATREATMENTS, "DoubleBolusDebug: FilteredTreatments: AfterTime={}, Items={} " + fromTimestamp + " " + MedtronicUtil.getGsonInstanceCore().toJson(in5minback));
return in5minback;
}
}
@ -348,7 +347,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
last = t.date;
}
}
aapsLogger.debug(LTag.DATATREATMENTS, "Last bolus time: " + DateUtil.dateAndTimeString(last));
getAapsLogger().debug(LTag.DATATREATMENTS, "Last bolus time: " + DateUtil.dateAndTimeString(last));
return last;
}
@ -363,7 +362,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
last = t.date;
}
}
aapsLogger.debug(LTag.DATATREATMENTS, "Last manual bolus time: " + DateUtil.dateAndTimeString(last));
getAapsLogger().debug(LTag.DATATREATMENTS, "Last manual bolus time: " + DateUtil.dateAndTimeString(last));
return last;
}
@ -597,7 +596,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
public boolean addToHistoryTreatment(DetailedBolusInfo detailedBolusInfo, boolean allowUpdate) {
boolean medtronicPump = MedtronicUtil.isMedtronicPump();
aapsLogger.debug(MedtronicHistoryData.doubleBolusDebug, LTag.DATATREATMENTS, "DoubleBolusDebug: addToHistoryTreatment::isMedtronicPump={} " + medtronicPump);
getAapsLogger().debug(MedtronicHistoryData.doubleBolusDebug, LTag.DATATREATMENTS, "DoubleBolusDebug: addToHistoryTreatment::isMedtronicPump={} " + medtronicPump);
Treatment treatment = new Treatment();
treatment.date = detailedBolusInfo.date;
@ -612,7 +611,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
treatment.boluscalc = detailedBolusInfo.boluscalc != null ? detailedBolusInfo.boluscalc.toString() : null;
TreatmentService.UpdateReturn creatOrUpdateResult;
aapsLogger.debug(medtronicPump && MedtronicHistoryData.doubleBolusDebug, LTag.DATATREATMENTS, "DoubleBolusDebug: addToHistoryTreatment::treatment={} " + treatment);
getAapsLogger().debug(medtronicPump && MedtronicHistoryData.doubleBolusDebug, LTag.DATATREATMENTS, "DoubleBolusDebug: addToHistoryTreatment::treatment={} " + treatment);
if (!medtronicPump)
creatOrUpdateResult = getService().createOrUpdate(treatment);
@ -629,7 +628,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
carbsTreatment.date = detailedBolusInfo.date + detailedBolusInfo.carbTime * 60 * 1000L + 1000L; // add 1 sec to make them different records
carbsTreatment.carbs = detailedBolusInfo.carbs;
aapsLogger.debug(medtronicPump && MedtronicHistoryData.doubleBolusDebug, LTag.DATATREATMENTS, "DoubleBolusDebug: carbTime!=0, creating second treatment. CarbsTreatment={}" + carbsTreatment);
getAapsLogger().debug(medtronicPump && MedtronicHistoryData.doubleBolusDebug, LTag.DATATREATMENTS, "DoubleBolusDebug: carbTime!=0, creating second treatment. CarbsTreatment={}" + carbsTreatment);
if (!medtronicPump)
getService().createOrUpdate(carbsTreatment);
@ -641,7 +640,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
NSUpload.uploadTreatmentRecord(detailedBolusInfo);
if (!allowUpdate && !creatOrUpdateResult.success) {
aapsLogger.error("Treatment could not be added to DB", new Exception());
getAapsLogger().error("Treatment could not be added to DB", new Exception());
String status = String.format(resourceHelper.gs(R.string.error_adding_treatment_message), treatment.insulin, (int) treatment.carbs, DateUtil.dateAndTimeString(treatment.date));
@ -728,7 +727,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
@Override
public void addToHistoryProfileSwitch(ProfileSwitch profileSwitch) {
//log.debug("Adding new TemporaryBasal record" + profileSwitch.log());
rxBus.send(new EventDismissNotification(Notification.PROFILE_SWITCH_MISSING));
getRxBus().send(new EventDismissNotification(Notification.PROFILE_SWITCH_MISSING));
MainApp.getDbHelper().createOrUpdate(profileSwitch);
NSUpload.uploadProfileSwitch(profileSwitch);
}
@ -757,7 +756,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface
profileSwitch.percentage = percentage;
treatmentsPlugin.addToHistoryProfileSwitch(profileSwitch);
} else {
aapsLogger.error(LTag.PROFILE, "No profile switch exists");
getAapsLogger().error(LTag.PROFILE, "No profile switch exists");
}
}

View file

@ -0,0 +1,14 @@
package info.nightscout.androidaps.services
import android.location.Location
import javax.inject.Inject
import javax.inject.Singleton
/**
* Created by adrian on 2020-01-06.
*/
@Singleton
class LastLocationDataContainer @Inject constructor() {
var lastLocation: Location? = null
}

View file

@ -26,12 +26,14 @@ import io.reactivex.disposables.CompositeDisposable
import io.reactivex.schedulers.Schedulers
import javax.inject.Inject
class LocationService @Inject constructor(): DaggerService() {
class LocationService : DaggerService() {
@Inject lateinit var aapsLogger: AAPSLogger
@Inject lateinit var rxBus: RxBusWrapper
@Inject lateinit var sp: SP
@Inject lateinit var fabricPrivacy: FabricPrivacy
@Inject lateinit var mainApp: MainApp
@Inject lateinit var lastLocationDataContainer: LastLocationDataContainer
private val disposable = CompositeDisposable()
private var locationManager: LocationManager? = null
@ -40,8 +42,6 @@ class LocationService @Inject constructor(): DaggerService() {
private val LOCATION_INTERVAL_ACTIVE = T.mins(5).msecs()
private val LOCATION_INTERVAL_PASSIVE = T.mins(1).msecs() // this doesn't cost more power
var lastLocation: Location? = null
companion object {
private const val LOCATION_DISTANCE = 10f
}
@ -54,7 +54,7 @@ class LocationService @Inject constructor(): DaggerService() {
override fun onLocationChanged(location: Location) {
aapsLogger.debug(LTag.LOCATION, "onLocationChanged: $location")
lastLocation = location
lastLocationDataContainer.lastLocation = location
rxBus.send(EventLocationChange(location))
}
@ -73,17 +73,17 @@ class LocationService @Inject constructor(): DaggerService() {
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
super.onStartCommand(intent, flags, startId)
startForeground(mainApp.notificationId(), mainApp.getNotification())
startForeground(mainApp.notificationId(), mainApp.notification)
return Service.START_STICKY
}
override fun onCreate() {
super.onCreate()
startForeground(mainApp.notificationId(), mainApp.getNotification())
startForeground(mainApp.notificationId(), mainApp.notification)
// Get last location once until we get regular update
LocationServices.getFusedLocationProviderClient(this).lastLocation.addOnSuccessListener {
lastLocation = it
lastLocationDataContainer.lastLocation = it
}
initializeLocationManager()

View file

@ -37,7 +37,7 @@ public class TabPageAdapter extends FragmentPagerAdapter {
@Nullable
public Fragment getItem(int position) {
//Fragment fragment = (Fragment) visibleFragmentList.get(position);
return Fragment.instantiate(context, visibleFragmentList.get(position).pluginDescription.getFragmentClass());
return Fragment.instantiate(context, visibleFragmentList.get(position).getPluginDescription().getFragmentClass());
}
public PluginBase getPluginAt(int position) {

View file

@ -21,8 +21,8 @@ import info.nightscout.androidaps.utils.sharedPreferences.SP
import javax.inject.Inject
class TddCalculator @Inject constructor(
val aapsLogger: AAPSLogger,
val rxBus: RxBusWrapper,
aapsLogger: AAPSLogger,
rxBus: RxBusWrapper,
val resourceHelper: ResourceHelper,
val mainApp: MainApp,
val sp: SP,