LoopPlugin -> kt
This commit is contained in:
parent
c07e81ab77
commit
ed9c8a1d05
10 changed files with 554 additions and 725 deletions
BIN
app/jacoco.exec
BIN
app/jacoco.exec
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
@ -43,7 +43,7 @@ import info.nightscout.androidaps.plugins.general.nsclient.data.NSDeviceStatus
|
|||
import info.nightscout.androidaps.plugins.general.overview.activities.QuickWizardListActivity
|
||||
import info.nightscout.androidaps.plugins.general.overview.graphData.GraphData
|
||||
import info.nightscout.androidaps.plugins.general.overview.notifications.NotificationStore
|
||||
import info.nightscout.androidaps.plugins.general.wear.ActionStringHandler
|
||||
import info.nightscout.androidaps.plugins.general.wear.events.EventWearDoAction
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventAutosensCalculationFinished
|
||||
|
@ -99,7 +99,6 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
|
|||
@Inject lateinit var dexcomMediator: DexcomPlugin.DexcomMediator
|
||||
@Inject lateinit var xdripPlugin: XdripPlugin
|
||||
@Inject lateinit var notificationStore: NotificationStore
|
||||
@Inject lateinit var actionStringHandler: ActionStringHandler
|
||||
@Inject lateinit var quickWizard: QuickWizard
|
||||
@Inject lateinit var buildHelper: BuildHelper
|
||||
@Inject lateinit var commandQueue: CommandQueue
|
||||
|
@ -346,7 +345,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
|
|||
uel.log("ACCEPT TEMP BASAL")
|
||||
binding.buttonsLayout.acceptTempButton.visibility = View.GONE
|
||||
(context?.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager).cancel(Constants.notificationID)
|
||||
actionStringHandler.handleInitiate("cancelChangeRequest")
|
||||
rxBus.send(EventWearDoAction("cancelChangeRequest"))
|
||||
loopPlugin.acceptChangeRequest()
|
||||
})
|
||||
})
|
||||
|
|
|
@ -8,6 +8,10 @@ import info.nightscout.androidaps.Constants
|
|||
import info.nightscout.androidaps.MainApp
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.dana.DanaPump
|
||||
import info.nightscout.androidaps.danaRKorean.DanaRKoreanPlugin
|
||||
import info.nightscout.androidaps.danaRv2.DanaRv2Plugin
|
||||
import info.nightscout.androidaps.danar.DanaRPlugin
|
||||
import info.nightscout.androidaps.danars.DanaRSPlugin
|
||||
import info.nightscout.androidaps.data.DetailedBolusInfo
|
||||
import info.nightscout.androidaps.data.Profile
|
||||
import info.nightscout.androidaps.db.CareportalEvent
|
||||
|
@ -18,23 +22,23 @@ import info.nightscout.androidaps.interfaces.ActivePluginProvider
|
|||
import info.nightscout.androidaps.interfaces.CommandQueueProvider
|
||||
import info.nightscout.androidaps.interfaces.Constraint
|
||||
import info.nightscout.androidaps.interfaces.PluginBase
|
||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin
|
||||
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
|
||||
import info.nightscout.androidaps.plugins.configBuilder.ConstraintChecker
|
||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||
import info.nightscout.androidaps.plugins.general.overview.events.EventDismissNotification
|
||||
import info.nightscout.androidaps.plugins.general.wear.events.EventWearDoAction
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin
|
||||
import info.nightscout.androidaps.danar.DanaRPlugin
|
||||
import info.nightscout.androidaps.danaRKorean.DanaRKoreanPlugin
|
||||
import info.nightscout.androidaps.danars.DanaRSPlugin
|
||||
import info.nightscout.androidaps.danaRv2.DanaRv2Plugin
|
||||
import info.nightscout.androidaps.plugins.pump.insight.LocalInsightPlugin
|
||||
import info.nightscout.androidaps.plugins.treatments.CarbsGenerator
|
||||
import info.nightscout.androidaps.queue.Callback
|
||||
import info.nightscout.androidaps.utils.*
|
||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||
import info.nightscout.androidaps.utils.rx.AapsSchedulers
|
||||
import info.nightscout.androidaps.utils.sharedPreferences.SP
|
||||
import info.nightscout.androidaps.utils.wizard.BolusWizard
|
||||
import io.reactivex.disposables.CompositeDisposable
|
||||
import io.reactivex.rxkotlin.plusAssign
|
||||
import java.text.DateFormat
|
||||
import java.text.DecimalFormat
|
||||
import java.text.SimpleDateFormat
|
||||
|
@ -46,6 +50,7 @@ import javax.inject.Singleton
|
|||
class ActionStringHandler @Inject constructor(
|
||||
private val sp: SP,
|
||||
private val rxBus: RxBusWrapper,
|
||||
private val aapsSchedulers: AapsSchedulers,
|
||||
private val resourceHelper: ResourceHelper,
|
||||
private val injector: HasAndroidInjector,
|
||||
private val context: Context,
|
||||
|
@ -53,6 +58,7 @@ class ActionStringHandler @Inject constructor(
|
|||
private val profileFunction: ProfileFunction,
|
||||
private val loopPlugin: LoopPlugin,
|
||||
private val wearPlugin: WearPlugin,
|
||||
private val fabricPrivacy: FabricPrivacy,
|
||||
private val commandQueue: CommandQueueProvider,
|
||||
private val activePlugin: ActivePluginProvider,
|
||||
private val iobCobCalculatorPlugin: IobCobCalculatorPlugin,
|
||||
|
@ -73,9 +79,17 @@ class ActionStringHandler @Inject constructor(
|
|||
private var lastConfirmActionString: String? = null
|
||||
private var lastBolusWizard: BolusWizard? = null
|
||||
|
||||
// TODO Adrian use RxBus instead of Lazy + cross dependency
|
||||
private val disposable = CompositeDisposable()
|
||||
|
||||
init {
|
||||
disposable += rxBus
|
||||
.toObservable(EventWearDoAction::class.java)
|
||||
.observeOn(aapsSchedulers.main)
|
||||
.subscribe({ handleInitiate(it.action) }, fabricPrivacy::logException)
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
fun handleInitiate(actionString: String) {
|
||||
private fun handleInitiate(actionString: String) {
|
||||
if (!sp.getBoolean(R.string.key_wear_control, false)) return
|
||||
lastBolusWizard = null
|
||||
var rTitle = "CONFIRM" //TODO: i18n
|
||||
|
@ -614,13 +628,5 @@ class ActionStringHandler @Inject constructor(
|
|||
lastSentTimestamp = System.currentTimeMillis()
|
||||
lastConfirmActionString = null
|
||||
lastBolusWizard = null
|
||||
} /*
|
||||
public synchronized static void expectNotificationAction(String message, int id) {
|
||||
String actionstring = "dismissoverviewnotification " + id;
|
||||
WearPlugin.getPlugin().requestActionConfirmation("DISMISS", message, actionstring);
|
||||
lastSentTimestamp = System.currentTimeMillis();
|
||||
lastConfirmActionString = actionstring;
|
||||
lastBolusWizard = null;
|
||||
}
|
||||
*/
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
package info.nightscout.androidaps.plugins.general.wear.events
|
||||
|
||||
import info.nightscout.androidaps.events.Event
|
||||
|
||||
class EventWearDoAction (val action: String) : Event()
|
|
@ -45,9 +45,10 @@ import info.nightscout.androidaps.interfaces.ProfileFunction;
|
|||
import info.nightscout.androidaps.logging.AAPSLogger;
|
||||
import info.nightscout.androidaps.logging.LTag;
|
||||
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin;
|
||||
import info.nightscout.androidaps.plugins.bus.RxBusWrapper;
|
||||
import info.nightscout.androidaps.plugins.general.nsclient.data.NSDeviceStatus;
|
||||
import info.nightscout.androidaps.plugins.general.wear.ActionStringHandler;
|
||||
import info.nightscout.androidaps.plugins.general.wear.WearPlugin;
|
||||
import info.nightscout.androidaps.plugins.general.wear.events.EventWearDoAction;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
|
||||
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
|
||||
|
@ -65,6 +66,7 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
|
|||
@Inject public WearPlugin wearPlugin;
|
||||
@Inject public ResourceHelper resourceHelper;
|
||||
@Inject public SP sp;
|
||||
@Inject public RxBusWrapper rxBus;
|
||||
@Inject public ProfileFunction profileFunction;
|
||||
@Inject public DefaultValueHelper defaultValueHelper;
|
||||
@Inject public NSDeviceStatus nsDeviceStatus;
|
||||
|
@ -72,7 +74,6 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
|
|||
@Inject public LoopPlugin loopPlugin;
|
||||
@Inject public IobCobCalculatorPlugin iobCobCalculatorPlugin;
|
||||
@Inject public TreatmentsPlugin treatmentsPlugin;
|
||||
@Inject public ActionStringHandler actionStringHandler;
|
||||
@Inject public AppRepository repository;
|
||||
@Inject ReceiverStatusStore receiverStatusStore;
|
||||
@Inject Config config;
|
||||
|
@ -260,13 +261,13 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
|
|||
if (event != null && event.getPath().equals(WEARABLE_INITIATE_ACTIONSTRING_PATH)) {
|
||||
String actionstring = new String(event.getData());
|
||||
aapsLogger.debug(LTag.WEAR, "Wear: " + actionstring);
|
||||
actionStringHandler.handleInitiate(actionstring);
|
||||
rxBus.send(new EventWearDoAction(actionstring));
|
||||
}
|
||||
|
||||
if (event != null && event.getPath().equals(WEARABLE_CONFIRM_ACTIONSTRING_PATH)) {
|
||||
String actionstring = new String(event.getData());
|
||||
aapsLogger.debug(LTag.WEAR, "Wear Confirm: " + actionstring);
|
||||
actionStringHandler.handleConfirmation(actionstring);
|
||||
rxBus.send(new EventWearDoAction(actionstring));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -288,10 +289,6 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
|
|||
if (wearIntegration()) {
|
||||
|
||||
final DataMap dataMap = dataMapSingleBG(lastBG, glucoseStatus);
|
||||
if (dataMap == null) {
|
||||
ToastUtils.showToastInUiThread(this, resourceHelper.gs(R.string.noprofile));
|
||||
return;
|
||||
}
|
||||
|
||||
(new SendToDataLayerThread(WEARABLE_DATA_PATH, googleApiClient)).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, dataMap);
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ package info.nightscout.androidaps.plugins.aps.loop
|
|||
|
||||
import android.app.NotificationManager
|
||||
import android.content.Context
|
||||
import dagger.Lazy
|
||||
import dagger.android.AndroidInjector
|
||||
import dagger.android.HasAndroidInjector
|
||||
import info.nightscout.androidaps.Config
|
||||
|
@ -16,7 +15,6 @@ import info.nightscout.androidaps.interfaces.PumpDescription
|
|||
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
|
||||
import info.nightscout.androidaps.plugins.configBuilder.ConstraintChecker
|
||||
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload
|
||||
import info.nightscout.androidaps.plugins.general.wear.ActionStringHandler
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin
|
||||
import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpPlugin
|
||||
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin
|
||||
|
@ -48,7 +46,6 @@ class LoopPluginTest : TestBase() {
|
|||
@Mock lateinit var activePlugin: ActivePluginProvider
|
||||
@Mock lateinit var treatmentsPlugin: TreatmentsPlugin
|
||||
@Mock lateinit var virtualPumpPlugin: VirtualPumpPlugin
|
||||
@Mock lateinit var actionStringHandler: Lazy<ActionStringHandler>
|
||||
@Mock lateinit var iobCobCalculatorPlugin: IobCobCalculatorPlugin
|
||||
@Mock lateinit var fabricPrivacy: FabricPrivacy
|
||||
@Mock lateinit var receiverStatusStore: ReceiverStatusStore
|
||||
|
@ -62,7 +59,7 @@ class LoopPluginTest : TestBase() {
|
|||
@Before fun prepareMock() {
|
||||
hardLimits = HardLimits(aapsLogger, rxBus, sp, resourceHelper, context, nsUpload)
|
||||
|
||||
loopPlugin = LoopPlugin(injector, aapsLogger, aapsSchedulers, rxBus, sp, Config(), constraintChecker, resourceHelper, profileFunction, context, commandQueue, activePlugin, treatmentsPlugin, virtualPumpPlugin, actionStringHandler, iobCobCalculatorPlugin, receiverStatusStore, fabricPrivacy, nsUpload, hardLimits)
|
||||
loopPlugin = LoopPlugin(injector, aapsLogger, aapsSchedulers, rxBus, sp, Config(), constraintChecker, resourceHelper, profileFunction, context, commandQueue, activePlugin, treatmentsPlugin, virtualPumpPlugin, iobCobCalculatorPlugin, receiverStatusStore, fabricPrivacy, nsUpload, hardLimits)
|
||||
`when`(activePlugin.activePump).thenReturn(virtualPumpPlugin)
|
||||
`when`(context.getSystemService(Context.NOTIFICATION_SERVICE)).thenReturn(notificationManager)
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ import org.mockito.Mock
|
|||
import org.mockito.Mockito.`when`
|
||||
import org.powermock.core.classloader.annotations.PrepareForTest
|
||||
|
||||
@PrepareForTest(VirtualPumpPlugin::class, RxBusWrapper::class, LocalProfilePlugin::class, SmsCommunicatorPlugin::class, ConfigBuilderPlugin::class)
|
||||
@PrepareForTest(VirtualPumpPlugin::class, RxBusWrapper::class, LocalProfilePlugin::class, SmsCommunicatorPlugin::class, ConfigBuilderPlugin::class, LoopPlugin::class)
|
||||
open class ActionsTestBase : TestBaseWithProfile() {
|
||||
|
||||
@Mock lateinit var sp: SP
|
||||
|
|
|
@ -51,7 +51,7 @@ import org.powermock.modules.junit4.PowerMockRunner
|
|||
import java.util.*
|
||||
|
||||
@RunWith(PowerMockRunner::class)
|
||||
@PrepareForTest(ConstraintChecker::class, FabricPrivacy::class, VirtualPumpPlugin::class, XdripCalibrations::class, SmsManager::class, CommandQueue::class, LocalProfilePlugin::class, DateUtil::class, IobCobCalculatorPlugin::class, OneTimePassword::class, UserEntryLogger::class)
|
||||
@PrepareForTest(ConstraintChecker::class, FabricPrivacy::class, VirtualPumpPlugin::class, XdripCalibrations::class, SmsManager::class, CommandQueue::class, LocalProfilePlugin::class, DateUtil::class, IobCobCalculatorPlugin::class, OneTimePassword::class, UserEntryLogger::class, LoopPlugin::class)
|
||||
class SmsCommunicatorPluginTest : TestBaseWithProfile() {
|
||||
|
||||
@Mock lateinit var context: Context
|
||||
|
|
|
@ -81,7 +81,7 @@ public class ListenerService extends WearableListenerService implements GoogleAp
|
|||
|
||||
|
||||
private static final String ACTION_RESEND_BULK = "com.dexdrip.stephenblack.nightwatch.RESEND_BULK_DATA";
|
||||
private static final String AAPS_NOTIFY_CHANNEL_ID_OPENLOOP = "AndroidAPS-Openloop";
|
||||
private static final String AAPS_NOTIFY_CHANNEL_ID_OPENLOOP = "AndroidAPS-OpenLoop";
|
||||
private static final String AAPS_NOTIFY_CHANNEL_ID_BOLUSPROGRESS = "bolus progress vibration";
|
||||
private static final String AAPS_NOTIFY_CHANNEL_ID_BOLUSPROGRESS_SILENT = "bolus progress silent";
|
||||
|
||||
|
|
Loading…
Reference in a new issue