From 27733a2dc5c255a882ecf6ad3657f3f394de8485 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Mon, 28 Nov 2022 09:25:19 +0100 Subject: [PATCH] :plugins:sync module --- app/build.gradle | 1 + .../info/nightscout/androidaps/MainApp.kt | 2 +- .../nightscout/androidaps/di/AppComponent.kt | 7 +- .../nightscout/androidaps/di/AppModule.kt | 7 +- .../implementations/ActivityNamesImpl.kt | 7 + .../receivers/ChargingStateReceiver.kt | 2 +- .../androidaps/receivers/KeepAliveWorker.kt | 5 +- .../androidaps/workflow/WorkerClassesImpl.kt | 14 ++ .../plugins/aps/loop/LoopPluginTest.kt | 2 +- .../info/nightscout/core/di/CoreModule.kt | 1 - .../nightscout/core/di/CoreReceiversModule.kt | 11 -- core/interfaces/build.gradle | 3 + .../info/nightscout/interfaces/aps/Loop.kt | 17 ++ .../interfaces/nsclient}/NSAlarm.kt | 2 +- .../nightscout/interfaces/nsclient}/NSSgv.kt | 2 +- .../interfaces/nsclient/StoreDataForDb.kt | 7 + .../receivers/ReceiverStatusStore.kt | 20 +++ .../interfaces/source/NSClientSource.kt | 7 + .../nightscout/interfaces/sync/NsClient.kt | 2 + .../nightscout/interfaces/ui/ActivityNames.kt | 3 + .../interfaces/workflow/WorkerClasses.kt | 9 + core/ui/src/main/res/values/strings.xml | 1 + core/utils/src/main/res/values/keys.xml | 17 ++ .../transactions/TransactionGlucoseValue.kt | 14 ++ .../impl/transactions/CgmSourceTransaction.kt | 12 +- implementation/src/main/AndroidManifest.xml | 1 + .../implementation/di/ImplementationModule.kt | 6 + .../receivers/NetworkChangeReceiver.kt | 6 +- .../receivers/ReceiverStatusStoreImpl.kt | 21 +-- .../automation/di/AutomationModule.kt | 6 +- .../automation/triggers/TriggerWifiSsid.kt | 2 +- .../automation/triggers/TriggerTestBase.kt | 2 +- .../configuration/di/ConfigurationModule.kt | 1 + .../nightscout/plugins/aps/loop/LoopPlugin.kt | 95 +++++++++- .../objectives/ObjectivesFragment.kt | 2 +- .../nightscout/plugins/di/PluginsModule.kt | 11 +- .../nightscout/plugins/di/SourceModule.kt | 16 +- .../plugins/di/VirtualPumpModule.kt | 15 +- .../dataBroadcaster/DataBroadcastPlugin.kt | 2 +- .../notifications/NotificationWithAction.kt | 8 +- .../plugins/general/wear/WearFragment.kt | 4 +- .../wear/wearintegration/DataHandlerMobile.kt | 2 +- .../DataLayerListenerServiceMobile.kt | 2 +- .../nightscout/plugins/source/AidexPlugin.kt | 5 +- .../nightscout/plugins/source/DexcomPlugin.kt | 5 +- .../plugins/source/EversensePlugin.kt | 5 +- .../nightscout/plugins/source/GlimpPlugin.kt | 5 +- .../plugins/source/GlunovoPlugin.kt | 5 +- .../plugins/source/IntelligoPlugin.kt | 5 +- .../nightscout/plugins/source/MM640gPlugin.kt | 5 +- .../plugins/source/NSClientSourcePlugin.kt | 21 +-- .../plugins/source/PoctechPlugin.kt | 5 +- .../plugins/source/RandomBgPlugin.kt | 5 +- .../nightscout/plugins/source/TomatoPlugin.kt | 5 +- .../nightscout/plugins/source/XdripPlugin.kt | 5 +- .../extensions/PumpEnactResultExtension.kt | 46 ----- .../sync/nsclient/data/NSSettingsStatus.kt | 2 - .../data/ProcessedDeviceStatusData.kt | 2 - .../plugins/ui/StatusLightHandler.kt | 12 +- plugins/main/src/main/res/values/strings.xml | 164 +----------------- .../plugins/source/NSClientPluginTest.kt | 4 +- .../nsclient/NsClientReceiverDelegateTest.kt | 2 +- .../versionChecker/VersionCheckerUtilsImpl.kt | 2 +- .../support/di/PluginsSupportModule.kt | 1 + .../VersionCheckerUtilsKtTest.kt | 2 +- plugins/sync/.gitignore | 1 + plugins/sync/build.gradle | 58 +++++++ plugins/sync/consumer-rules.pro | 0 plugins/sync/proguard-rules.pro | 21 +++ plugins/sync/src/main/AndroidManifest.xml | 4 + .../nightscout/plugins/sync}/di/SyncModule.kt | 31 +++- .../plugins/sync/nsShared/NSClientFragment.kt | 4 +- .../sync/nsShared/StoreDataForDbImpl.kt} | 28 +-- .../nsShared/events/EventNSClientResend.kt | 0 .../nsShared/events/EventNSClientStatus.kt | 0 .../nsShared/events/EventNSClientUpdateGUI.kt | 0 .../extensions/PumpEnactResultExtension.kt | 19 ++ .../DataSyncSelectorImplementation.kt | 8 +- .../plugins/sync/nsclient/NSClientPlugin.kt | 6 +- .../sync/nsclient/NsClientReceiverDelegate.kt | 4 +- .../plugins/sync/nsclient/acks/NSAddAck.kt | 0 .../plugins/sync/nsclient/acks/NSAuthAck.kt | 0 .../plugins/sync/nsclient/acks/NSUpdateAck.kt | 0 .../plugins/sync/nsclient/data/AlarmAck.java | 0 .../nsclient/data/NSDeviceStatusHandler.kt | 2 +- .../plugins/sync/nsclient/data/NSMbg.kt | 0 .../nsclient/data/NSSettingsStatusImpl.kt | 4 +- .../data/ProcessedDeviceStatusDataImpl.kt | 2 +- .../nsclient/extensions/BolusExtension.kt | 0 .../nsclient/extensions/CarbsExtension.kt | 0 .../extensions/DeviceStatusExtension.kt | 67 ------- .../EffectiveProfileSwitchExtension.kt | 0 .../extensions/ExtendedBolusExtension.kt | 0 .../extensions/OfflineEventExtension.kt | 0 .../extensions/ProfileSwitchExtension.kt | 0 .../extensions/TemporaryBasalExtension.kt | 0 .../extensions/TemporaryTargetExtension.kt | 0 .../extensions/TherapyEventExtension.kt | 14 -- .../sync/nsclient/services/NSClientService.kt | 36 ++-- .../nsclient/workers/NSClientAddAckWorker.kt | 2 +- .../workers/NSClientAddUpdateWorker.kt | 9 +- .../nsclient/workers/NSClientMbgWorker.kt | 7 +- .../workers/NSClientUpdateRemoveAckWorker.kt | 0 .../sync/nsclientV3/NSClientV3Plugin.kt | 6 +- .../BolusCalculatorResultExtension.kt | 0 .../nsclientV3/extensions/BolusExtension.kt | 0 .../nsclientV3/extensions/CarbsExtension.kt | 0 .../EffectiveProfileSwitchExtension.kt | 0 .../extensions/ExtendedBolusExtension.kt | 0 .../extensions/OfflineEventExtension.kt | 0 .../extensions/ProfileSwitchExtension.kt | 0 .../extensions/TemporaryBasalExtension.kt | 0 .../extensions/TemporaryTargetExtension.kt | 0 .../extensions/TherapyEventExtension.kt | 0 .../sync/nsclientV3/workers/LoadBgWorker.kt | 14 +- .../workers/LoadDeviceStatusWorker.kt | 0 .../workers/LoadLastModificationWorker.kt | 0 .../nsclientV3/workers/LoadStatusWorker.kt | 0 .../workers/LoadTreatmentsWorker.kt | 5 +- .../workers/ProcessTreatmentsWorker.kt | 9 +- .../plugins/sync/tidepool/TidepoolFragment.kt | 4 +- .../plugins/sync/tidepool/TidepoolPlugin.kt | 4 +- .../sync/tidepool/comm/InfoInterceptor.kt | 0 .../plugins/sync/tidepool/comm/Session.kt | 0 .../sync/tidepool/comm/TidepoolApiService.kt | 0 .../sync/tidepool/comm/TidepoolCallback.kt | 0 .../sync/tidepool/comm/TidepoolUploader.kt | 2 +- .../plugins/sync/tidepool/comm/UploadChunk.kt | 2 +- .../sync/tidepool/elements/BasalElement.kt | 0 .../sync/tidepool/elements/BaseElement.kt | 0 .../tidepool/elements/BloodGlucoseElement.kt | 0 .../sync/tidepool/elements/BolusElement.kt | 0 .../sync/tidepool/elements/ProfileElement.kt | 0 .../tidepool/elements/SensorGlucoseElement.kt | 0 .../sync/tidepool/elements/WizardElement.kt | 0 .../tidepool/events/EventTidepoolDoUpload.kt | 0 .../tidepool/events/EventTidepoolResetData.kt | 0 .../tidepool/events/EventTidepoolStatus.kt | 0 .../tidepool/events/EventTidepoolUpdateGUI.kt | 0 .../tidepool/messages/AuthReplyMessage.kt | 0 .../tidepool/messages/AuthRequestMessage.kt | 2 +- .../sync/tidepool/messages/BaseMessage.kt | 0 .../messages/CloseDatasetRequestMessage.kt | 0 .../tidepool/messages/DatasetReplyMessage.kt | 0 .../messages/OpenDatasetRequestMessage.kt | 0 .../tidepool/messages/UploadReplyMessage.kt | 0 .../sync/tidepool/utils/GsonInstance.kt | 0 .../plugins/sync/tidepool/utils/RateLimit.kt | 0 .../main/res/layout/ns_client_fragment.xml | 0 .../src/main/res/layout/tidepool_fragment.xml | 0 plugins/sync/src/main/res/values/strings.xml | 146 ++++++++++++++++ .../src/main/res/xml/pref_ns_client.xml | 0 .../src/main/res/xml/pref_tidepool.xml | 0 settings.gradle | 1 + 154 files changed, 719 insertions(+), 493 deletions(-) create mode 100644 app/src/main/java/info/nightscout/androidaps/workflow/WorkerClassesImpl.kt delete mode 100644 core/core-main/src/main/java/info/nightscout/core/di/CoreReceiversModule.kt rename {plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data => core/interfaces/src/main/java/info/nightscout/interfaces/nsclient}/NSAlarm.kt (96%) rename {plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data => core/interfaces/src/main/java/info/nightscout/interfaces/nsclient}/NSSgv.kt (95%) create mode 100644 core/interfaces/src/main/java/info/nightscout/interfaces/nsclient/StoreDataForDb.kt create mode 100644 core/interfaces/src/main/java/info/nightscout/interfaces/receivers/ReceiverStatusStore.kt create mode 100644 core/interfaces/src/main/java/info/nightscout/interfaces/source/NSClientSource.kt create mode 100644 core/interfaces/src/main/java/info/nightscout/interfaces/workflow/WorkerClasses.kt create mode 100644 database/entities/src/main/java/info/nightscout/database/transactions/TransactionGlucoseValue.kt rename {core/utils/src/main/java/info/nightscout/core/utils => implementation/src/main/java/info/nightscout/implementation}/receivers/NetworkChangeReceiver.kt (94%) rename core/utils/src/main/java/info/nightscout/core/utils/receivers/ReceiverStatusStore.kt => implementation/src/main/java/info/nightscout/implementation/receivers/ReceiverStatusStoreImpl.kt (56%) delete mode 100644 plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/extensions/PumpEnactResultExtension.kt delete mode 100644 plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSettingsStatus.kt delete mode 100644 plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusData.kt create mode 100644 plugins/sync/.gitignore create mode 100644 plugins/sync/build.gradle create mode 100644 plugins/sync/consumer-rules.pro create mode 100644 plugins/sync/proguard-rules.pro create mode 100644 plugins/sync/src/main/AndroidManifest.xml rename plugins/{main/src/main/java/info/nightscout/plugins => sync/src/main/java/info/nightscout/plugins/sync}/di/SyncModule.kt (66%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsShared/NSClientFragment.kt (98%) rename plugins/{main/src/main/java/info/nightscout/plugins/sync/nsShared/StoreDataForDb.kt => sync/src/main/java/info/nightscout/plugins/sync/nsShared/StoreDataForDbImpl.kt} (98%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientResend.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientStatus.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientUpdateGUI.kt (100%) create mode 100644 plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/extensions/PumpEnactResultExtension.kt rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/DataSyncSelectorImplementation.kt (99%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/NSClientPlugin.kt (98%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/NsClientReceiverDelegate.kt (96%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSAddAck.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSAuthAck.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSUpdateAck.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/data/AlarmAck.java (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSDeviceStatusHandler.kt (99%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSMbg.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSettingsStatusImpl.kt (99%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt (99%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/BolusExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/CarbsExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/DeviceStatusExtension.kt (81%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/EffectiveProfileSwitchExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/ExtendedBolusExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/OfflineEventExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/ProfileSwitchExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TemporaryBasalExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TemporaryTargetExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TherapyEventExtension.kt (85%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/services/NSClientService.kt (96%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddAckWorker.kt (99%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddUpdateWorker.kt (97%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientMbgWorker.kt (88%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientUpdateRemoveAckWorker.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/NSClientV3Plugin.kt (98%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/BolusCalculatorResultExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/BolusExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/CarbsExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/EffectiveProfileSwitchExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/ExtendedBolusExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/OfflineEventExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/ProfileSwitchExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryBasalExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryTargetExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TherapyEventExtension.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadBgWorker.kt (89%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadDeviceStatusWorker.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadLastModificationWorker.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadStatusWorker.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadTreatmentsWorker.kt (95%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/ProcessTreatmentsWorker.kt (97%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolFragment.kt (96%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolPlugin.kt (98%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/comm/InfoInterceptor.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/comm/Session.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolApiService.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolCallback.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolUploader.kt (99%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/comm/UploadChunk.kt (99%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BasalElement.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BaseElement.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BloodGlucoseElement.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BolusElement.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/elements/ProfileElement.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/elements/SensorGlucoseElement.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/elements/WizardElement.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolDoUpload.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolResetData.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolStatus.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolUpdateGUI.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/messages/AuthReplyMessage.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/messages/AuthRequestMessage.kt (93%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/messages/BaseMessage.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/messages/CloseDatasetRequestMessage.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/messages/DatasetReplyMessage.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/messages/OpenDatasetRequestMessage.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/messages/UploadReplyMessage.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/utils/GsonInstance.kt (100%) rename plugins/{main => sync}/src/main/java/info/nightscout/plugins/sync/tidepool/utils/RateLimit.kt (100%) rename plugins/{main => sync}/src/main/res/layout/ns_client_fragment.xml (100%) rename plugins/{main => sync}/src/main/res/layout/tidepool_fragment.xml (100%) create mode 100644 plugins/sync/src/main/res/values/strings.xml rename plugins/{main => sync}/src/main/res/xml/pref_ns_client.xml (100%) rename plugins/{main => sync}/src/main/res/xml/pref_tidepool.xml (100%) diff --git a/app/build.gradle b/app/build.gradle index 6e818131e5..596bf7407a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -202,6 +202,7 @@ dependencies { implementation project(':plugins:openhumans') implementation project(':plugins:sensitivity') implementation project(':plugins:support') + implementation project(':plugins:sync') implementation project(':implementation') implementation project(':database:entities') implementation project(':database:impl') diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.kt b/app/src/main/java/info/nightscout/androidaps/MainApp.kt index 01bfae37af..b383dc27fc 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainApp.kt +++ b/app/src/main/java/info/nightscout/androidaps/MainApp.kt @@ -23,7 +23,7 @@ import info.nightscout.androidaps.receivers.TimeDateOrTZChangeReceiver import info.nightscout.androidaps.services.AlarmSoundServiceHelper import info.nightscout.implementation.lifecycle.ProcessLifecycleListener import info.nightscout.core.ui.locale.LocaleHelper -import info.nightscout.core.utils.receivers.NetworkChangeReceiver +import info.nightscout.implementation.receivers.NetworkChangeReceiver import info.nightscout.interfaces.versionChecker.VersionCheckerUtils import info.nightscout.database.entities.TherapyEvent import info.nightscout.database.entities.UserEntry diff --git a/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt b/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt index 405b3641f7..997874e3df 100644 --- a/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt +++ b/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt @@ -23,6 +23,7 @@ import info.nightscout.implementation.di.ImplementationModule import info.nightscout.plugins.aps.di.ApsModule import info.nightscout.plugins.di.PluginsModule import info.nightscout.plugins.support.di.PluginsSupportModule +import info.nightscout.plugins.sync.di.SyncModule import info.nightscout.pump.combo.di.ComboModule import info.nightscout.pump.combov2.di.ComboV2Module import info.nightscout.pump.common.di.PumpCommonModule @@ -50,24 +51,20 @@ import javax.inject.Singleton // Gradle modules AutomationModule::class, - AutomationModule.Bindings::class, ApsModule::class, ConfigurationModule::class, - ConfigurationModule.Bindings::class, CoreModule::class, DatabaseModule::class, ImplementationModule::class, - ImplementationModule.Bindings::class, OpenHumansModule::class, PluginsModule::class, - PluginsModule.Bindings::class, RxModule::class, SharedModule::class, SharedImplModule::class, UiModule::class, ValidatorsModule::class, PluginsSupportModule::class, - PluginsSupportModule.Bindings::class, + SyncModule::class, // pumps ComboModule::class, diff --git a/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt b/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt index cea2d4d6b9..bbe362f669 100644 --- a/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt +++ b/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt @@ -10,10 +10,12 @@ import info.nightscout.androidaps.MainApp import info.nightscout.androidaps.implementations.ActivityNamesImpl import info.nightscout.androidaps.implementations.ConfigImpl import info.nightscout.androidaps.workflow.CalculationWorkflowImpl +import info.nightscout.androidaps.workflow.WorkerClassesImpl import info.nightscout.core.workflow.CalculationWorkflow import info.nightscout.interfaces.Config import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.ui.ActivityNames +import info.nightscout.interfaces.workflow.WorkerClasses @Suppress("unused") @Module( @@ -48,8 +50,9 @@ open class AppModule { @Binds fun bindInjector(mainApp: MainApp): HasAndroidInjector @Binds fun bindConfigInterface(config: ConfigImpl): Config - @Binds fun bindActivityNamesInterface(activityNames: ActivityNamesImpl): ActivityNames - @Binds fun bindCalculationWorkflowInterface(calculationWorkflow: CalculationWorkflowImpl): CalculationWorkflow + @Binds fun bindActivityNames(activityNames: ActivityNamesImpl): ActivityNames + @Binds fun bindWorkerClasses(workerClassesImpl: WorkerClassesImpl): WorkerClasses + @Binds fun bindCalculationWorkflow(calculationWorkflow: CalculationWorkflowImpl): CalculationWorkflow } } diff --git a/app/src/main/java/info/nightscout/androidaps/implementations/ActivityNamesImpl.kt b/app/src/main/java/info/nightscout/androidaps/implementations/ActivityNamesImpl.kt index 84daab1543..7e3043aa43 100644 --- a/app/src/main/java/info/nightscout/androidaps/implementations/ActivityNamesImpl.kt +++ b/app/src/main/java/info/nightscout/androidaps/implementations/ActivityNamesImpl.kt @@ -6,6 +6,7 @@ import android.os.Bundle import androidx.annotation.RawRes import androidx.annotation.StringRes import androidx.fragment.app.FragmentManager +import dagger.android.HasAndroidInjector import info.nightscout.androidaps.MainActivity import info.nightscout.androidaps.R import info.nightscout.androidaps.activities.HistoryBrowseActivity @@ -15,7 +16,9 @@ import info.nightscout.androidaps.services.AlarmSoundService import info.nightscout.configuration.activities.SingleFragmentActivity import info.nightscout.core.events.EventNewNotification import info.nightscout.interfaces.notifications.Notification +import info.nightscout.interfaces.nsclient.NSAlarm import info.nightscout.interfaces.ui.ActivityNames +import info.nightscout.plugins.general.overview.notifications.NotificationWithAction import info.nightscout.rx.bus.RxBus import info.nightscout.ui.activities.BolusProgressHelperActivity import info.nightscout.ui.activities.ErrorHelperActivity @@ -168,4 +171,8 @@ class ActivityNamesImpl @Inject constructor( override fun addNotificationValidTo(id: Int, date: Long, text: String, level: Int, validTo: Long) { rxBus.send(EventNewNotification(Notification(id, System.currentTimeMillis(), text, level,validTo))) } + + override fun addNotificationWithAction(injector: HasAndroidInjector, nsAlarm: NSAlarm) { + rxBus.send(EventNewNotification(NotificationWithAction(injector, nsAlarm))) + } } \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/ChargingStateReceiver.kt b/app/src/main/java/info/nightscout/androidaps/receivers/ChargingStateReceiver.kt index d03dc63c32..321eaf1b6c 100644 --- a/app/src/main/java/info/nightscout/androidaps/receivers/ChargingStateReceiver.kt +++ b/app/src/main/java/info/nightscout/androidaps/receivers/ChargingStateReceiver.kt @@ -5,7 +5,7 @@ import android.content.Intent import android.content.IntentFilter import android.os.BatteryManager import dagger.android.DaggerBroadcastReceiver -import info.nightscout.core.utils.receivers.ReceiverStatusStore +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventChargingState import info.nightscout.rx.logging.AAPSLogger diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveWorker.kt b/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveWorker.kt index e9d0bbf244..2c259c9de9 100644 --- a/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveWorker.kt +++ b/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveWorker.kt @@ -17,7 +17,7 @@ import info.nightscout.androidaps.R import info.nightscout.configuration.maintenance.MaintenancePlugin import info.nightscout.core.profile.ProfileSealed import info.nightscout.core.utils.fabric.FabricPrivacy -import info.nightscout.core.utils.receivers.ReceiverStatusStore +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.database.impl.AppRepository import info.nightscout.interfaces.Config import info.nightscout.interfaces.LocalAlertUtils @@ -29,7 +29,6 @@ import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.queue.Command import info.nightscout.interfaces.queue.CommandQueue -import info.nightscout.plugins.sync.nsclient.extensions.buildDeviceStatus import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventProfileSwitchChanged import info.nightscout.rx.logging.AAPSLogger @@ -168,7 +167,7 @@ class KeepAliveWorker( else if (dateUtil.isOlderThan(activePlugin.activeAPS.lastAPSRun, 5)) shouldUploadStatus = true if (dateUtil.isOlderThan(lastIobUpload, IOB_UPDATE_FREQUENCY_IN_MINUTES) && shouldUploadStatus) { lastIobUpload = dateUtil.now() - buildDeviceStatus( + loop.buildDeviceStatus( dateUtil, loop, iobCobCalculator, profileFunction, activePlugin.activePump, receiverStatusStore, runningConfiguration, BuildConfig.VERSION_NAME + "-" + BuildConfig.BUILDVERSION diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/WorkerClassesImpl.kt b/app/src/main/java/info/nightscout/androidaps/workflow/WorkerClassesImpl.kt new file mode 100644 index 0000000000..b92c6549d0 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/workflow/WorkerClassesImpl.kt @@ -0,0 +1,14 @@ +package info.nightscout.androidaps.workflow + +import info.nightscout.interfaces.workflow.WorkerClasses +import info.nightscout.plugins.general.food.FoodPlugin +import info.nightscout.plugins.profile.ProfilePlugin +import info.nightscout.plugins.source.NSClientSourcePlugin +import javax.inject.Inject + +class WorkerClassesImpl @Inject constructor(): WorkerClasses{ + + override val nsClientSourceWorker = NSClientSourcePlugin.NSClientSourceWorker::class.java + override val nsProfileWorker = ProfilePlugin.NSProfileWorker::class.java + override val foodWorker = FoodPlugin.FoodWorker::class.java +} \ No newline at end of file diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/LoopPluginTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/LoopPluginTest.kt index 9ae6a34163..9df7c71921 100644 --- a/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/LoopPluginTest.kt +++ b/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/LoopPluginTest.kt @@ -7,7 +7,7 @@ import dagger.android.HasAndroidInjector import info.nightscout.androidaps.R import info.nightscout.androidaps.TestBase import info.nightscout.interfaces.logging.UserEntryLogger -import info.nightscout.core.utils.receivers.ReceiverStatusStore +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.database.impl.AppRepository import info.nightscout.interfaces.Config diff --git a/core/core-main/src/main/java/info/nightscout/core/di/CoreModule.kt b/core/core-main/src/main/java/info/nightscout/core/di/CoreModule.kt index 1b980e7d20..5d49cc0571 100644 --- a/core/core-main/src/main/java/info/nightscout/core/di/CoreModule.kt +++ b/core/core-main/src/main/java/info/nightscout/core/di/CoreModule.kt @@ -8,7 +8,6 @@ import dagger.Provides @Module( includes = [ - CoreReceiversModule::class, CoreDataClassesModule::class, PreferencesModule::class ] diff --git a/core/core-main/src/main/java/info/nightscout/core/di/CoreReceiversModule.kt b/core/core-main/src/main/java/info/nightscout/core/di/CoreReceiversModule.kt deleted file mode 100644 index f54ef62ed4..0000000000 --- a/core/core-main/src/main/java/info/nightscout/core/di/CoreReceiversModule.kt +++ /dev/null @@ -1,11 +0,0 @@ -package info.nightscout.core.di - -import dagger.Module -import dagger.android.ContributesAndroidInjector -import info.nightscout.core.utils.receivers.NetworkChangeReceiver - -@Module -abstract class CoreReceiversModule { - - @ContributesAndroidInjector abstract fun contributesNetworkChangeReceiver(): NetworkChangeReceiver -} \ No newline at end of file diff --git a/core/interfaces/build.gradle b/core/interfaces/build.gradle index a5b27fe3f6..c5d221925c 100644 --- a/core/interfaces/build.gradle +++ b/core/interfaces/build.gradle @@ -30,6 +30,9 @@ dependencies { // Dagger api "com.google.dagger:dagger:$dagger_version" api "com.google.dagger:dagger-android:$dagger_version" + + // WorkerClasses + api "androidx.work:work-runtime-ktx:$work_version" } allOpen { diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/aps/Loop.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/aps/Loop.kt index 25e4339f3c..c0eac9f4eb 100644 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/aps/Loop.kt +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/aps/Loop.kt @@ -1,9 +1,16 @@ package info.nightscout.interfaces.aps +import info.nightscout.database.entities.DeviceStatus import info.nightscout.database.entities.OfflineEvent +import info.nightscout.interfaces.configBuilder.RunningConfiguration import info.nightscout.interfaces.constraints.Constraint +import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.profile.Profile +import info.nightscout.interfaces.profile.ProfileFunction +import info.nightscout.interfaces.pump.Pump import info.nightscout.interfaces.pump.PumpEnactResult +import info.nightscout.interfaces.receivers.ReceiverStatusStore +import info.nightscout.shared.utils.DateUtil interface Loop { @@ -40,4 +47,14 @@ interface Loop { fun goToZeroTemp(durationInMinutes: Int, profile: Profile, reason: OfflineEvent.Reason) fun suspendLoop(durationInMinutes: Int) fun disableCarbSuggestions(durationMinutes: Int) + fun buildDeviceStatus( + dateUtil: DateUtil, + loop: Loop, + iobCobCalculatorPlugin: IobCobCalculator, + profileFunction: ProfileFunction, + pump: Pump, + receiverStatusStore: ReceiverStatusStore, + runningConfiguration: RunningConfiguration, + version: String + ): DeviceStatus? } \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSAlarm.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/nsclient/NSAlarm.kt similarity index 96% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSAlarm.kt rename to core/interfaces/src/main/java/info/nightscout/interfaces/nsclient/NSAlarm.kt index 3179751712..18357c877f 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSAlarm.kt +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/nsclient/NSAlarm.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.sync.nsclient.data +package info.nightscout.interfaces.nsclient import info.nightscout.interfaces.utils.JsonHelper import org.json.JSONObject diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSgv.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/nsclient/NSSgv.kt similarity index 95% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSgv.kt rename to core/interfaces/src/main/java/info/nightscout/interfaces/nsclient/NSSgv.kt index db934f5fe3..3bdddfa462 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSgv.kt +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/nsclient/NSSgv.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.sync.nsclient.data +package info.nightscout.interfaces.nsclient import info.nightscout.interfaces.utils.JsonHelper import org.json.JSONObject diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/nsclient/StoreDataForDb.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/nsclient/StoreDataForDb.kt new file mode 100644 index 0000000000..d01b23f829 --- /dev/null +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/nsclient/StoreDataForDb.kt @@ -0,0 +1,7 @@ +package info.nightscout.interfaces.nsclient + +import info.nightscout.database.transactions.TransactionGlucoseValue + +interface StoreDataForDb { + val glucoseValues: MutableList +} \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/receivers/ReceiverStatusStore.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/receivers/ReceiverStatusStore.kt new file mode 100644 index 0000000000..d2918031fc --- /dev/null +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/receivers/ReceiverStatusStore.kt @@ -0,0 +1,20 @@ +package info.nightscout.interfaces.receivers + +import info.nightscout.rx.events.EventChargingState +import info.nightscout.rx.events.EventNetworkChange + +interface ReceiverStatusStore { + + var lastNetworkEvent: EventNetworkChange? + + val isWifiConnected: Boolean + + val isConnected: Boolean + fun updateNetworkStatus() + var lastChargingEvent: EventChargingState? + + val isCharging: Boolean + + val batteryLevel: Int + fun broadcastChargingState() +} \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/source/NSClientSource.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/source/NSClientSource.kt new file mode 100644 index 0000000000..25428d4671 --- /dev/null +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/source/NSClientSource.kt @@ -0,0 +1,7 @@ +package info.nightscout.interfaces.source + +import info.nightscout.database.entities.GlucoseValue + +interface NSClientSource { + fun detectSource(glucoseValue: GlucoseValue) +} \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/sync/NsClient.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/sync/NsClient.kt index 763d6a610f..9b53c5f59b 100644 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/sync/NsClient.kt +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/sync/NsClient.kt @@ -1,6 +1,7 @@ package info.nightscout.interfaces.sync import android.text.Spanned +import info.nightscout.interfaces.nsclient.NSAlarm import org.json.JSONObject interface NsClient : Sync { @@ -19,6 +20,7 @@ interface NsClient : Sync { fun updateLatestBgReceivedIfNewer(latestReceived: Long) fun updateLatestTreatmentReceivedIfNewer(latestReceived: Long) + fun handleClearAlarm(originalAlarm: NSAlarm, silenceTimeInMilliseconds: Long) fun resetToFullSync() diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/ui/ActivityNames.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/ui/ActivityNames.kt index 8dcd6c92df..d07957ab9c 100644 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/ui/ActivityNames.kt +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/ui/ActivityNames.kt @@ -4,6 +4,8 @@ import android.content.Context import androidx.annotation.RawRes import androidx.annotation.StringRes import androidx.fragment.app.FragmentManager +import dagger.android.HasAndroidInjector +import info.nightscout.interfaces.nsclient.NSAlarm /** * Interface to use activities located in different modules @@ -64,4 +66,5 @@ interface ActivityNames { fun addNotificationValidFor(id: Int, text: String, level: Int, validMinutes: Int) fun addNotificationWithSound(id: Int, text: String, level: Int, @RawRes soundId: Int) fun addNotificationValidTo(id: Int, date: Long, text: String, level: Int, validTo: Long) + fun addNotificationWithAction(injector: HasAndroidInjector, nsAlarm: NSAlarm) } \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/workflow/WorkerClasses.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/workflow/WorkerClasses.kt new file mode 100644 index 0000000000..6d139e2fdf --- /dev/null +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/workflow/WorkerClasses.kt @@ -0,0 +1,9 @@ +package info.nightscout.interfaces.workflow + +import androidx.work.ListenableWorker + +interface WorkerClasses { + val nsClientSourceWorker: Class + val nsProfileWorker: Class + val foodWorker: Class +} \ No newline at end of file diff --git a/core/ui/src/main/res/values/strings.xml b/core/ui/src/main/res/values/strings.xml index f3adc1711c..382a18cade 100644 --- a/core/ui/src/main/res/values/strings.xml +++ b/core/ui/src/main/res/values/strings.xml @@ -32,6 +32,7 @@ User Result Settings + Status lights Battery diff --git a/core/utils/src/main/res/values/keys.xml b/core/utils/src/main/res/values/keys.xml index 89dc70989e..051a932926 100644 --- a/core/utils/src/main/res/values/keys.xml +++ b/core/utils/src/main/res/values/keys.xml @@ -114,5 +114,22 @@ wearwizard_trend wearwizard_cob wearwizard_iob + ObjectivesbgIsAvailableInNS + ObjectivespumpStatusIsAvailableInNS + statuslights_cage_warning + statuslights_cage_critical + statuslights_iage_warning + statuslights_iage_critical + statuslights_sage_warning + statuslights_sage_critical + statuslights_bage_warning + statuslights_bage_critical + ns_announcements + ns_alarms + ns_alarm_stale_data_value + ns_alarm_urgent_stale_data_value + snoozedTo + ns_receive_cgm + ns_create_announcements_from_carbs_req \ No newline at end of file diff --git a/database/entities/src/main/java/info/nightscout/database/transactions/TransactionGlucoseValue.kt b/database/entities/src/main/java/info/nightscout/database/transactions/TransactionGlucoseValue.kt new file mode 100644 index 0000000000..c7ba22779e --- /dev/null +++ b/database/entities/src/main/java/info/nightscout/database/transactions/TransactionGlucoseValue.kt @@ -0,0 +1,14 @@ +package info.nightscout.database.transactions + +import info.nightscout.database.entities.GlucoseValue + +data class TransactionGlucoseValue( + val timestamp: Long, + val value: Double, + val raw: Double?, + val noise: Double?, + val trendArrow: GlucoseValue.TrendArrow, + val nightscoutId: String? = null, + val sourceSensor: GlucoseValue.SourceSensor, + val isValid: Boolean = true +) \ No newline at end of file diff --git a/database/impl/src/main/java/info/nightscout/database/impl/transactions/CgmSourceTransaction.kt b/database/impl/src/main/java/info/nightscout/database/impl/transactions/CgmSourceTransaction.kt index 1f3070a319..ed261cd42f 100644 --- a/database/impl/src/main/java/info/nightscout/database/impl/transactions/CgmSourceTransaction.kt +++ b/database/impl/src/main/java/info/nightscout/database/impl/transactions/CgmSourceTransaction.kt @@ -2,6 +2,7 @@ package info.nightscout.database.impl.transactions import info.nightscout.database.entities.GlucoseValue import info.nightscout.database.entities.TherapyEvent +import info.nightscout.database.transactions.TransactionGlucoseValue /** * Inserts data from a CGM source into the database @@ -78,17 +79,6 @@ class CgmSourceTransaction constructor( return result } - data class TransactionGlucoseValue( - val timestamp: Long, - val value: Double, - val raw: Double?, - val noise: Double?, - val trendArrow: GlucoseValue.TrendArrow, - val nightscoutId: String? = null, - val sourceSensor: GlucoseValue.SourceSensor, - val isValid: Boolean = true - ) - data class Calibration( val timestamp: Long, val value: Double, diff --git a/implementation/src/main/AndroidManifest.xml b/implementation/src/main/AndroidManifest.xml index a5918e68ab..8c4c98268a 100644 --- a/implementation/src/main/AndroidManifest.xml +++ b/implementation/src/main/AndroidManifest.xml @@ -1,4 +1,5 @@ + \ No newline at end of file diff --git a/implementation/src/main/java/info/nightscout/implementation/di/ImplementationModule.kt b/implementation/src/main/java/info/nightscout/implementation/di/ImplementationModule.kt index 4730f67994..3bae5556e3 100644 --- a/implementation/src/main/java/info/nightscout/implementation/di/ImplementationModule.kt +++ b/implementation/src/main/java/info/nightscout/implementation/di/ImplementationModule.kt @@ -31,6 +31,8 @@ import info.nightscout.implementation.pump.PumpSyncImplementation import info.nightscout.implementation.pump.TemporaryBasalStorageImpl import info.nightscout.implementation.pump.WarnColorsImpl import info.nightscout.implementation.queue.CommandQueueImplementation +import info.nightscout.implementation.receivers.NetworkChangeReceiver +import info.nightscout.implementation.receivers.ReceiverStatusStoreImpl import info.nightscout.implementation.resources.IconsProviderImplementation import info.nightscout.implementation.resources.ResourceHelperImpl import info.nightscout.implementation.stats.DexcomTirCalculatorImpl @@ -60,6 +62,7 @@ import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.pump.TemporaryBasalStorage import info.nightscout.interfaces.pump.WarnColors import info.nightscout.interfaces.queue.CommandQueue +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.interfaces.stats.DexcomTirCalculator import info.nightscout.interfaces.stats.TddCalculator import info.nightscout.interfaces.stats.TirCalculator @@ -71,6 +74,7 @@ import info.nightscout.shared.interfaces.ResourceHelper @Module( includes = [ + ImplementationModule.Bindings::class, CommandQueueModule::class ] ) @@ -79,6 +83,7 @@ import info.nightscout.shared.interfaces.ResourceHelper abstract class ImplementationModule { @ContributesAndroidInjector abstract fun profileStoreInjector(): ProfileStoreObject + @ContributesAndroidInjector abstract fun contributesNetworkChangeReceiver(): NetworkChangeReceiver @Module interface Bindings { @@ -115,5 +120,6 @@ abstract class ImplementationModule { @Binds fun bindsConstraints(constraintsImpl: ConstraintsImpl): Constraints @Binds fun bindsProfileFunction(profileFunctionImpl: ProfileFunctionImpl): ProfileFunction @Binds fun bindsStorage(fileStorage: FileStorage): Storage + @Binds fun bindsReceiverStatusStore(receiverStatusStoreImpl: ReceiverStatusStoreImpl): ReceiverStatusStore } } \ No newline at end of file diff --git a/core/utils/src/main/java/info/nightscout/core/utils/receivers/NetworkChangeReceiver.kt b/implementation/src/main/java/info/nightscout/implementation/receivers/NetworkChangeReceiver.kt similarity index 94% rename from core/utils/src/main/java/info/nightscout/core/utils/receivers/NetworkChangeReceiver.kt rename to implementation/src/main/java/info/nightscout/implementation/receivers/NetworkChangeReceiver.kt index f204c42097..fe305d3615 100644 --- a/core/utils/src/main/java/info/nightscout/core/utils/receivers/NetworkChangeReceiver.kt +++ b/implementation/src/main/java/info/nightscout/implementation/receivers/NetworkChangeReceiver.kt @@ -1,4 +1,4 @@ -package info.nightscout.core.utils.receivers +package info.nightscout.implementation.receivers import android.content.Context import android.content.Intent @@ -10,6 +10,8 @@ import android.net.wifi.WifiManager import android.os.Handler import android.os.HandlerThread import dagger.android.DaggerBroadcastReceiver +import info.nightscout.core.utils.receivers.StringUtils +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventNetworkChange import info.nightscout.rx.logging.AAPSLogger @@ -60,4 +62,4 @@ class NetworkChangeReceiver : DaggerBroadcastReceiver() { receiverStatusStore.lastNetworkEvent = event return event } -} +} \ No newline at end of file diff --git a/core/utils/src/main/java/info/nightscout/core/utils/receivers/ReceiverStatusStore.kt b/implementation/src/main/java/info/nightscout/implementation/receivers/ReceiverStatusStoreImpl.kt similarity index 56% rename from core/utils/src/main/java/info/nightscout/core/utils/receivers/ReceiverStatusStore.kt rename to implementation/src/main/java/info/nightscout/implementation/receivers/ReceiverStatusStoreImpl.kt index 90ec180096..08bb16cbf0 100644 --- a/core/utils/src/main/java/info/nightscout/core/utils/receivers/ReceiverStatusStore.kt +++ b/implementation/src/main/java/info/nightscout/implementation/receivers/ReceiverStatusStoreImpl.kt @@ -1,8 +1,9 @@ -package info.nightscout.core.utils.receivers +package info.nightscout.implementation.receivers import android.content.Context import android.content.Intent import info.nightscout.androidaps.annotations.OpenForTesting +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventChargingState import info.nightscout.rx.events.EventNetworkChange @@ -11,29 +12,29 @@ import javax.inject.Singleton @OpenForTesting @Singleton -class ReceiverStatusStore @Inject constructor(val context: Context, val rxBus: RxBus) { +class ReceiverStatusStoreImpl @Inject constructor(val context: Context, val rxBus: RxBus) : ReceiverStatusStore { - var lastNetworkEvent: EventNetworkChange? = null + override var lastNetworkEvent: EventNetworkChange? = null - val isWifiConnected: Boolean + override val isWifiConnected: Boolean get() = lastNetworkEvent?.wifiConnected ?: false - val isConnected: Boolean + override val isConnected: Boolean get() = lastNetworkEvent?.wifiConnected ?: false || lastNetworkEvent?.mobileConnected ?: false - fun updateNetworkStatus() { + override fun updateNetworkStatus() { context.sendBroadcast(Intent(context, NetworkChangeReceiver::class.java)) } - var lastChargingEvent: EventChargingState? = null + override var lastChargingEvent: EventChargingState? = null - val isCharging: Boolean + override val isCharging: Boolean get() = lastChargingEvent?.isCharging ?: false - val batteryLevel: Int + override val batteryLevel: Int get() = lastChargingEvent?.batterLevel ?: 0 - fun broadcastChargingState() { + override fun broadcastChargingState() { lastChargingEvent?.let { rxBus.send(it) } } } \ No newline at end of file diff --git a/plugins/automation/src/main/java/info/nightscout/automation/di/AutomationModule.kt b/plugins/automation/src/main/java/info/nightscout/automation/di/AutomationModule.kt index c6e8207c31..0ce7e62d8e 100644 --- a/plugins/automation/src/main/java/info/nightscout/automation/di/AutomationModule.kt +++ b/plugins/automation/src/main/java/info/nightscout/automation/di/AutomationModule.kt @@ -49,7 +49,11 @@ import info.nightscout.automation.triggers.TriggerTimeRange import info.nightscout.automation.triggers.TriggerWifiSsid import info.nightscout.interfaces.automation.Automation -@Module +@Module( + includes = [ + AutomationModule.Bindings::class + ] +) @Suppress("unused") abstract class AutomationModule { diff --git a/plugins/automation/src/main/java/info/nightscout/automation/triggers/TriggerWifiSsid.kt b/plugins/automation/src/main/java/info/nightscout/automation/triggers/TriggerWifiSsid.kt index ea85b34413..0a5bedc6ca 100644 --- a/plugins/automation/src/main/java/info/nightscout/automation/triggers/TriggerWifiSsid.kt +++ b/plugins/automation/src/main/java/info/nightscout/automation/triggers/TriggerWifiSsid.kt @@ -3,7 +3,7 @@ package info.nightscout.automation.triggers import android.widget.LinearLayout import com.google.common.base.Optional import dagger.android.HasAndroidInjector -import info.nightscout.core.utils.receivers.ReceiverStatusStore +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.interfaces.utils.JsonHelper import info.nightscout.automation.R import info.nightscout.automation.elements.Comparator diff --git a/plugins/automation/src/test/java/info/nightscout/automation/triggers/TriggerTestBase.kt b/plugins/automation/src/test/java/info/nightscout/automation/triggers/TriggerTestBase.kt index 8580f2ed77..9f99359547 100644 --- a/plugins/automation/src/test/java/info/nightscout/automation/triggers/TriggerTestBase.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/triggers/TriggerTestBase.kt @@ -8,7 +8,7 @@ import info.nightscout.androidaps.TestPumpPlugin import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatusProvider import info.nightscout.automation.AutomationPlugin import info.nightscout.automation.services.LastLocationDataContainer -import info.nightscout.core.utils.receivers.ReceiverStatusStore +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.interfaces.aps.AutosensDataStore import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.plugin.ActivePlugin diff --git a/plugins/configuration/src/main/java/info/nightscout/configuration/di/ConfigurationModule.kt b/plugins/configuration/src/main/java/info/nightscout/configuration/di/ConfigurationModule.kt index ef09bc8da5..234db440fc 100644 --- a/plugins/configuration/src/main/java/info/nightscout/configuration/di/ConfigurationModule.kt +++ b/plugins/configuration/src/main/java/info/nightscout/configuration/di/ConfigurationModule.kt @@ -19,6 +19,7 @@ import info.nightscout.interfaces.maintenance.PrefFileListProvider @Module( includes = [ + ConfigurationModule.Bindings::class, SetupWizardModule::class ] ) diff --git a/plugins/main/src/main/java/info/nightscout/plugins/aps/loop/LoopPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/aps/loop/LoopPlugin.kt index d038f6d1e8..11f18d6b8a 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/aps/loop/LoopPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/aps/loop/LoopPlugin.kt @@ -7,6 +7,7 @@ import android.app.PendingIntent import android.app.TaskStackBuilder import android.content.Context import android.content.Intent +import android.os.Build import android.os.Handler import android.os.HandlerThread import android.os.SystemClock @@ -17,9 +18,10 @@ import info.nightscout.androidaps.extensions.convertedToAbsolute import info.nightscout.androidaps.extensions.convertedToPercent import info.nightscout.androidaps.extensions.plannedRemainingMinutes import info.nightscout.core.events.EventNewNotification +import info.nightscout.core.iob.json import info.nightscout.core.utils.fabric.FabricPrivacy -import info.nightscout.core.utils.receivers.ReceiverStatusStore import info.nightscout.database.ValueWrapper +import info.nightscout.database.entities.DeviceStatus import info.nightscout.database.entities.OfflineEvent import info.nightscout.database.entities.UserEntry.Action import info.nightscout.database.entities.UserEntry.Sources @@ -32,6 +34,7 @@ import info.nightscout.interfaces.Constants import info.nightscout.interfaces.aps.APSResult import info.nightscout.interfaces.aps.Loop import info.nightscout.interfaces.aps.Loop.LastRun +import info.nightscout.interfaces.configBuilder.RunningConfiguration import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.iob.IobCobCalculator @@ -44,20 +47,21 @@ import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.pump.DetailedBolusInfo +import info.nightscout.interfaces.pump.Pump import info.nightscout.interfaces.pump.PumpEnactResult import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.pump.defs.PumpDescription import info.nightscout.interfaces.queue.Callback import info.nightscout.interfaces.queue.CommandQueue +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.interfaces.ui.ActivityNames import info.nightscout.interfaces.utils.HardLimits +import info.nightscout.interfaces.utils.Round import info.nightscout.plugins.R import info.nightscout.plugins.aps.loop.events.EventLoopSetLastRunGui import info.nightscout.plugins.aps.loop.events.EventLoopUpdateGui import info.nightscout.plugins.aps.loop.events.EventNewOpenLoopNotification -import info.nightscout.interfaces.configBuilder.RunningConfiguration import info.nightscout.plugins.pump.virtual.VirtualPumpPlugin -import info.nightscout.plugins.sync.nsclient.extensions.buildDeviceStatus import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventAcceptOpenLoopChange @@ -73,6 +77,7 @@ import info.nightscout.shared.utils.DateUtil import info.nightscout.shared.utils.T import io.reactivex.rxjava3.disposables.CompositeDisposable import io.reactivex.rxjava3.kotlin.plusAssign +import org.json.JSONObject import javax.inject.Inject import javax.inject.Singleton import kotlin.math.abs @@ -720,6 +725,90 @@ class LoopPlugin @Inject constructor( }) } + override fun buildDeviceStatus( + dateUtil: DateUtil, + loop: Loop, + iobCobCalculatorPlugin: IobCobCalculator, + profileFunction: ProfileFunction, + pump: Pump, + receiverStatusStore: ReceiverStatusStore, + runningConfiguration: RunningConfiguration, + version: String + ): DeviceStatus? { + val profile = profileFunction.getProfile() ?: return null + val profileName = profileFunction.getProfileName() + + val lastRun = loop.lastRun + var apsResult: JSONObject? = null + var iob: JSONObject? = null + var enacted: JSONObject? = null + if (lastRun != null && lastRun.lastAPSRun > dateUtil.now() - 300 * 1000L) { + // do not send if result is older than 1 min + apsResult = lastRun.request?.json()?.also { + it.put("timestamp", dateUtil.toISOString(lastRun.lastAPSRun)) + } + iob = lastRun.request?.iob?.json(dateUtil)?.also { + it.put("time", dateUtil.toISOString(lastRun.lastAPSRun)) + } + val requested = JSONObject() + if (lastRun.tbrSetByPump?.enacted == true) { // enacted + enacted = lastRun.request?.json()?.also { + it.put("rate", lastRun.tbrSetByPump!!.json(profile.getBasal())["rate"]) + it.put("duration", lastRun.tbrSetByPump!!.json(profile.getBasal())["duration"]) + it.put("received", true) + } + requested.put("duration", lastRun.request?.duration) + requested.put("rate", lastRun.request?.rate) + requested.put("temp", "absolute") + requested.put("smb", lastRun.request?.smb) + enacted?.put("requested", requested) + enacted?.put("smb", lastRun.tbrSetByPump?.bolusDelivered) + } + } else { + val calcIob = iobCobCalculatorPlugin.calculateIobArrayInDia(profile) + if (calcIob.isNotEmpty()) { + iob = calcIob[0].json(dateUtil) + iob.put("time", dateUtil.toISOString(dateUtil.now())) + } + } + return DeviceStatus( + timestamp = dateUtil.now(), + suggested = apsResult?.toString(), + iob = iob?.toString(), + enacted = enacted?.toString(), + device = "openaps://" + Build.MANUFACTURER + " " + Build.MODEL, + pump = pump.getJSONStatus(profile, profileName, version).toString(), + uploaderBattery = receiverStatusStore.batteryLevel, + configuration = runningConfiguration.configuration().toString() + ) + } + + fun PumpEnactResult.json(baseBasal: Double): JSONObject { + val result = JSONObject() + when { + bolusDelivered > 0 -> { + result.put("smb", bolusDelivered) + } + + isTempCancel -> { + result.put("rate", 0) + result.put("duration", 0) + } + + isPercent -> { + // Nightscout is expecting absolute value + val abs = Round.roundTo(baseBasal * percent / 100, 0.01) + result.put("rate", abs) + result.put("duration", duration) + } + + else -> { + result.put("rate", absolute) + result.put("duration", duration) + } + } + return result + } companion object { private const val CHANNEL_ID = "AAPS-OpenLoop" diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesFragment.kt b/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesFragment.kt index ffe4597bdb..2b53458f51 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesFragment.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesFragment.kt @@ -17,7 +17,7 @@ import androidx.recyclerview.widget.LinearSmoothScroller import androidx.recyclerview.widget.RecyclerView import dagger.android.support.DaggerFragment import info.nightscout.interfaces.logging.UserEntryLogger -import info.nightscout.core.utils.receivers.ReceiverStatusStore +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.core.ui.dialogs.OKDialog import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.database.entities.UserEntry.Action diff --git a/plugins/main/src/main/java/info/nightscout/plugins/di/PluginsModule.kt b/plugins/main/src/main/java/info/nightscout/plugins/di/PluginsModule.kt index 8a6fc62e8d..3f604dbce8 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/di/PluginsModule.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/di/PluginsModule.kt @@ -5,25 +5,19 @@ import dagger.Module import dagger.android.ContributesAndroidInjector import info.nightscout.interfaces.aps.Loop import info.nightscout.interfaces.iob.IobCobCalculator -import info.nightscout.interfaces.nsclient.NSSettingsStatus -import info.nightscout.interfaces.nsclient.ProcessedDeviceStatusData import info.nightscout.interfaces.smsCommunicator.SmsCommunicator -import info.nightscout.interfaces.sync.DataSyncSelector import info.nightscout.plugins.aps.loop.LoopPlugin import info.nightscout.plugins.general.smsCommunicator.SmsCommunicatorPlugin import info.nightscout.plugins.general.wear.WearFragment import info.nightscout.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin -import info.nightscout.plugins.sync.nsclient.DataSyncSelectorImplementation -import info.nightscout.plugins.sync.nsclient.data.NSSettingsStatusImpl -import info.nightscout.plugins.sync.nsclient.data.ProcessedDeviceStatusDataImpl @Module( includes = [ + PluginsModule.Bindings::class, InsulinModule::class, FoodModule::class, SMSCommunicatorModule::class, ProfileModule::class, - SyncModule::class, SourceModule::class, VirtualPumpModule::class, ObjectivesModule::class, @@ -44,11 +38,8 @@ abstract class PluginsModule { @Module interface Bindings { - @Binds fun bindProcessedDeviceStatusData(processedDeviceStatusDataImpl: ProcessedDeviceStatusDataImpl): ProcessedDeviceStatusData - @Binds fun bindNSSettingsStatus(nsSettingsStatusImpl: NSSettingsStatusImpl): NSSettingsStatus @Binds fun bindSmsCommunicator(smsCommunicatorPlugin: SmsCommunicatorPlugin): SmsCommunicator @Binds fun bindIobCobCalculator(iobCobCalculatorPlugin: IobCobCalculatorPlugin): IobCobCalculator @Binds fun bindLoop(loopPlugin: LoopPlugin): Loop - @Binds fun bindDataSyncSelectorInterface(dataSyncSelectorImplementation: DataSyncSelectorImplementation): DataSyncSelector } } \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/di/SourceModule.kt b/plugins/main/src/main/java/info/nightscout/plugins/di/SourceModule.kt index e2920922a9..8e3559aa15 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/di/SourceModule.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/di/SourceModule.kt @@ -1,7 +1,9 @@ package info.nightscout.plugins.di +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector +import info.nightscout.interfaces.source.NSClientSource import info.nightscout.plugins.profile.ProfilePlugin import info.nightscout.plugins.source.AidexPlugin import info.nightscout.plugins.source.BGSourceFragment @@ -15,14 +17,19 @@ import info.nightscout.plugins.source.TomatoPlugin import info.nightscout.plugins.source.XdripPlugin import info.nightscout.plugins.source.activities.RequestDexcomPermissionActivity -@Module +@Module( + includes = [ + SourceModule.Bindings::class + ] +) + @Suppress("unused") abstract class SourceModule { @ContributesAndroidInjector abstract fun contributesBGSourceFragment(): BGSourceFragment @ContributesAndroidInjector abstract fun contributesNSProfileWorker(): ProfilePlugin.NSProfileWorker - @ContributesAndroidInjector abstract fun contributesNSClientSourceWorker(): NSClientSourcePlugin.NSClientSourceWorker + @ContributesAndroidInjector abstract fun contributesNSClientSourceWorker(): info.nightscout.plugins.source.NSClientSourcePlugin.NSClientSourceWorker @ContributesAndroidInjector abstract fun contributesXdripWorker(): XdripPlugin.XdripWorker @ContributesAndroidInjector abstract fun contributesDexcomWorker(): DexcomPlugin.DexcomWorker @ContributesAndroidInjector abstract fun contributesMM640gWorker(): MM640gPlugin.MM640gWorker @@ -33,4 +40,9 @@ abstract class SourceModule { @ContributesAndroidInjector abstract fun contributesAidexWorker(): AidexPlugin.AidexWorker @ContributesAndroidInjector abstract fun contributesRequestDexcomPermissionActivity(): RequestDexcomPermissionActivity + + @Module + interface Bindings { + @Binds fun bindNSClientSource(nsClientSourcePlugin: info.nightscout.plugins.source.NSClientSourcePlugin): NSClientSource + } } \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/di/VirtualPumpModule.kt b/plugins/main/src/main/java/info/nightscout/plugins/di/VirtualPumpModule.kt index 6bff121485..f931269ecf 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/di/VirtualPumpModule.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/di/VirtualPumpModule.kt @@ -1,12 +1,25 @@ package info.nightscout.plugins.di +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector +import info.nightscout.interfaces.pump.VirtualPump import info.nightscout.plugins.pump.virtual.VirtualPumpFragment +import info.nightscout.plugins.pump.virtual.VirtualPumpPlugin -@Module +@Module( + includes = [ + VirtualPumpModule.Bindings::class + ] +) @Suppress("unused") abstract class VirtualPumpModule { @ContributesAndroidInjector abstract fun contributesVirtualPumpFragment(): VirtualPumpFragment + + @Module + interface Bindings { + + @Binds fun bindVirtualPump(virtualPumpPlugin: VirtualPumpPlugin): VirtualPump + } } \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/general/dataBroadcaster/DataBroadcastPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/general/dataBroadcaster/DataBroadcastPlugin.kt index 8aad916a89..b4f1a1dac3 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/general/dataBroadcaster/DataBroadcastPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/general/dataBroadcaster/DataBroadcastPlugin.kt @@ -10,7 +10,7 @@ import info.nightscout.androidaps.extensions.toStringFull import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatusProvider import info.nightscout.core.iob.round import info.nightscout.core.utils.fabric.FabricPrivacy -import info.nightscout.core.utils.receivers.ReceiverStatusStore +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.interfaces.Config import info.nightscout.interfaces.aps.Loop import info.nightscout.interfaces.iob.IobCobCalculator diff --git a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/notifications/NotificationWithAction.kt b/plugins/main/src/main/java/info/nightscout/plugins/general/overview/notifications/NotificationWithAction.kt index 302096f39c..3b584a0443 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/notifications/NotificationWithAction.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/general/overview/notifications/NotificationWithAction.kt @@ -2,10 +2,10 @@ package info.nightscout.plugins.general.overview.notifications import dagger.android.HasAndroidInjector import info.nightscout.interfaces.notifications.Notification +import info.nightscout.interfaces.nsclient.NSAlarm +import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.DefaultValueHelper import info.nightscout.plugins.R -import info.nightscout.plugins.sync.nsclient.NSClientPlugin -import info.nightscout.plugins.sync.nsclient.data.NSAlarm import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper @@ -22,7 +22,7 @@ class NotificationWithAction constructor( @Inject lateinit var rh: ResourceHelper @Inject lateinit var sp: SP @Inject lateinit var defaultValueHelper: DefaultValueHelper - @Inject lateinit var nsClientPlugin: NSClientPlugin + @Inject lateinit var activePlugin: ActivePlugin init { injector.androidInjector().inject(this) @@ -61,7 +61,7 @@ class NotificationWithAction constructor( } buttonText = R.string.snooze action = Runnable { - nsClientPlugin.handleClearAlarm(nsAlarm, 60 * 60 * 1000L) + activePlugin.activeNsClient?.handleClearAlarm(nsAlarm, 60 * 60 * 1000L) // Adding current time to snooze if we got staleData aapsLogger.debug(LTag.NOTIFICATION, "Notification text is: $text") val msToSnooze = sp.getInt(R.string.key_ns_alarm_stale_data_value, 15) * 60 * 1000L diff --git a/plugins/main/src/main/java/info/nightscout/plugins/general/wear/WearFragment.kt b/plugins/main/src/main/java/info/nightscout/plugins/general/wear/WearFragment.kt index a335885aee..12d516917d 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/general/wear/WearFragment.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/general/wear/WearFragment.kt @@ -5,9 +5,9 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import dagger.android.support.DaggerFragment +import info.nightscout.androidaps.plugins.general.wear.events.EventWearUpdateGui import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.plugins.databinding.WearFragmentBinding -import info.nightscout.plugins.sync.nsShared.events.EventNSClientUpdateGUI import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventMobileToWear @@ -48,7 +48,7 @@ class WearFragment : DaggerFragment() { override fun onResume() { super.onResume() disposable += rxBus - .toObservable(EventNSClientUpdateGUI::class.java) + .toObservable(EventWearUpdateGui::class.java) .observeOn(aapsSchedulers.main) .subscribe({ updateGui() }, fabricPrivacy::logException) updateGui() diff --git a/plugins/main/src/main/java/info/nightscout/plugins/general/wear/wearintegration/DataHandlerMobile.kt b/plugins/main/src/main/java/info/nightscout/plugins/general/wear/wearintegration/DataHandlerMobile.kt index 8a0ea47961..bb10cd10b4 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/general/wear/wearintegration/DataHandlerMobile.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/general/wear/wearintegration/DataHandlerMobile.kt @@ -14,7 +14,7 @@ import info.nightscout.core.iob.generateCOBString import info.nightscout.core.iob.round import info.nightscout.core.ui.toast.ToastUtils import info.nightscout.core.utils.fabric.FabricPrivacy -import info.nightscout.core.utils.receivers.ReceiverStatusStore +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.core.wizard.BolusWizard import info.nightscout.core.wizard.QuickWizard import info.nightscout.core.wizard.QuickWizardEntry diff --git a/plugins/main/src/main/java/info/nightscout/plugins/general/wear/wearintegration/DataLayerListenerServiceMobile.kt b/plugins/main/src/main/java/info/nightscout/plugins/general/wear/wearintegration/DataLayerListenerServiceMobile.kt index fdda2ea728..a5cea7f0ac 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/general/wear/wearintegration/DataLayerListenerServiceMobile.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/general/wear/wearintegration/DataLayerListenerServiceMobile.kt @@ -17,7 +17,7 @@ import com.google.android.gms.wearable.WearableListenerService import dagger.android.AndroidInjection import info.nightscout.androidaps.plugins.general.wear.events.EventWearUpdateGui import info.nightscout.core.utils.fabric.FabricPrivacy -import info.nightscout.core.utils.receivers.ReceiverStatusStore +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.database.impl.AppRepository import info.nightscout.interfaces.Config import info.nightscout.interfaces.aps.Loop diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/AidexPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/source/AidexPlugin.kt index 6991a3f87c..2a03764765 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/AidexPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/source/AidexPlugin.kt @@ -9,6 +9,7 @@ import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.database.entities.GlucoseValue import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.CgmSourceTransaction +import info.nightscout.database.transactions.TransactionGlucoseValue import info.nightscout.interfaces.Config import info.nightscout.interfaces.Constants import info.nightscout.interfaces.plugin.PluginBase @@ -83,7 +84,7 @@ class AidexPlugin @Inject constructor( if (bundle.containsKey(Intents.AIDEX_TRANSMITTER_SN)) aapsLogger.debug(LTag.BGSOURCE, "transmitterSerialNumber: " + bundle.getString(Intents.AIDEX_TRANSMITTER_SN)) if (bundle.containsKey(Intents.AIDEX_SENSOR_ID)) aapsLogger.debug(LTag.BGSOURCE, "sensorId: " + bundle.getString(Intents.AIDEX_SENSOR_ID)) - val glucoseValues = mutableListOf() + val glucoseValues = mutableListOf() val timestamp = bundle.getLong(Intents.AIDEX_TIMESTAMP, 0) val bgType = bundle.getString(Intents.AIDEX_BG_TYPE, "mg/dl") @@ -93,7 +94,7 @@ class AidexPlugin @Inject constructor( aapsLogger.debug(LTag.BGSOURCE, "Received Aidex broadcast [time=$timestamp, bgType=$bgType, value=$bgValue, targetValue=$bgValueTarget") - glucoseValues += CgmSourceTransaction.TransactionGlucoseValue( + glucoseValues += TransactionGlucoseValue( timestamp = timestamp, value = bgValueTarget, raw = null, diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/DexcomPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/source/DexcomPlugin.kt index 055cc6d914..a75e2d9953 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/DexcomPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/source/DexcomPlugin.kt @@ -19,6 +19,7 @@ import info.nightscout.database.entities.ValueWithUnit import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.CgmSourceTransaction import info.nightscout.database.impl.transactions.InvalidateGlucoseValueTransaction +import info.nightscout.database.transactions.TransactionGlucoseValue import info.nightscout.interfaces.Config import info.nightscout.interfaces.XDripBroadcast import info.nightscout.interfaces.plugin.PluginBase @@ -134,7 +135,7 @@ class DexcomPlugin @Inject constructor( val now = dateUtil.now() val glucoseValuesBundle = bundle.getBundle("glucoseValues") ?: return Result.failure(workDataOf("Error" to "missing glucoseValues")) - val glucoseValues = mutableListOf() + val glucoseValues = mutableListOf() for (i in 0 until glucoseValuesBundle.size()) { val glucoseValueBundle = glucoseValuesBundle.getBundle(i.toString())!! val timestamp = glucoseValueBundle.getLong("timestamp") * 1000 @@ -146,7 +147,7 @@ class DexcomPlugin @Inject constructor( if (sourceSensor == GlucoseValue.SourceSensor.DEXCOM_G6_NATIVE) if ((now - timestamp) > T.hours(20).msecs()) valid = false if (valid) - glucoseValues += CgmSourceTransaction.TransactionGlucoseValue( + glucoseValues += TransactionGlucoseValue( timestamp = timestamp, value = glucoseValueBundle.getInt("glucoseValue").toDouble(), noise = null, diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/EversensePlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/source/EversensePlugin.kt index 4d90f9acf0..de328f943e 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/EversensePlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/source/EversensePlugin.kt @@ -11,6 +11,7 @@ import info.nightscout.database.entities.TherapyEvent import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.CgmSourceTransaction import info.nightscout.database.impl.transactions.InsertIfNewByTimestampTherapyEventTransaction +import info.nightscout.database.transactions.TransactionGlucoseValue import info.nightscout.interfaces.XDripBroadcast import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription @@ -93,7 +94,7 @@ class EversensePlugin @Inject constructor( if (bundle.containsKey("transmitterVersionNumber")) aapsLogger.debug(LTag.BGSOURCE, "transmitterVersionNumber: " + bundle.getString("transmitterVersionNumber")) if (bundle.containsKey("transmitterConnectionState")) aapsLogger.debug(LTag.BGSOURCE, "transmitterConnectionState: " + bundle.getString("transmitterConnectionState")) if (bundle.containsKey("glucoseLevels")) { - val glucoseValues = mutableListOf() + val glucoseValues = mutableListOf() val glucoseLevels = bundle.getIntArray("glucoseLevels") val glucoseRecordNumbers = bundle.getIntArray("glucoseRecordNumbers") val glucoseTimestamps = bundle.getLongArray("glucoseTimestamps") @@ -102,7 +103,7 @@ class EversensePlugin @Inject constructor( aapsLogger.debug(LTag.BGSOURCE, "glucoseRecordNumbers" + Arrays.toString(glucoseRecordNumbers)) aapsLogger.debug(LTag.BGSOURCE, "glucoseTimestamps" + Arrays.toString(glucoseTimestamps)) for (i in glucoseLevels.indices) - glucoseValues += CgmSourceTransaction.TransactionGlucoseValue( + glucoseValues += TransactionGlucoseValue( timestamp = glucoseTimestamps[i], value = glucoseLevels[i].toDouble(), raw = glucoseLevels[i].toDouble(), diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/GlimpPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/source/GlimpPlugin.kt index a230131a75..55a8cef835 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/GlimpPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/source/GlimpPlugin.kt @@ -9,6 +9,7 @@ import info.nightscout.androidaps.annotations.OpenForTesting import info.nightscout.database.entities.GlucoseValue import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.CgmSourceTransaction +import info.nightscout.database.transactions.TransactionGlucoseValue import info.nightscout.interfaces.XDripBroadcast import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription @@ -61,8 +62,8 @@ class GlimpPlugin @Inject constructor( if (!glimpPlugin.isEnabled()) return Result.success(workDataOf("Result" to "Plugin not enabled")) aapsLogger.debug(LTag.BGSOURCE, "Received Glimp Data: $inputData}") - val glucoseValues = mutableListOf() - glucoseValues += CgmSourceTransaction.TransactionGlucoseValue( + val glucoseValues = mutableListOf() + glucoseValues += TransactionGlucoseValue( timestamp = inputData.getLong("myTimestamp", 0), value = inputData.getDouble("mySGV", 0.0), raw = inputData.getDouble("mySGV", 0.0), diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/GlunovoPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/source/GlunovoPlugin.kt index c955c992b9..c052182c65 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/GlunovoPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/source/GlunovoPlugin.kt @@ -13,6 +13,7 @@ import info.nightscout.database.entities.UserEntry import info.nightscout.database.entities.ValueWithUnit import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.CgmSourceTransaction +import info.nightscout.database.transactions.TransactionGlucoseValue import info.nightscout.interfaces.Constants import info.nightscout.interfaces.XDripBroadcast import info.nightscout.interfaces.plugin.PluginBase @@ -91,7 +92,7 @@ class GlunovoPlugin @Inject constructor( try { context.contentResolver.query(contentUri, null, null, null, null)?.let { cr -> - val glucoseValues = mutableListOf() + val glucoseValues = mutableListOf() val calibrations = mutableListOf() cr.moveToFirst() @@ -119,7 +120,7 @@ class GlunovoPlugin @Inject constructor( } if (curr != 0.0) - glucoseValues += CgmSourceTransaction.TransactionGlucoseValue( + glucoseValues += TransactionGlucoseValue( timestamp = timestamp, value = value * Constants.MMOLL_TO_MGDL, raw = 0.0, diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/IntelligoPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/source/IntelligoPlugin.kt index 5b87bf14ae..8ff7bfbaca 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/IntelligoPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/source/IntelligoPlugin.kt @@ -15,6 +15,7 @@ import info.nightscout.database.entities.UserEntry import info.nightscout.database.entities.ValueWithUnit import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.CgmSourceTransaction +import info.nightscout.database.transactions.TransactionGlucoseValue import info.nightscout.interfaces.Constants import info.nightscout.interfaces.XDripBroadcast import info.nightscout.interfaces.plugin.PluginBase @@ -102,7 +103,7 @@ class IntelligoPlugin @Inject constructor( } context.contentResolver.query(contentUri, null, null, null, null)?.let { cr -> - val glucoseValues = mutableListOf() + val glucoseValues = mutableListOf() val calibrations = mutableListOf() cr.moveToFirst() @@ -130,7 +131,7 @@ class IntelligoPlugin @Inject constructor( } if (curr != 0.0) - glucoseValues += CgmSourceTransaction.TransactionGlucoseValue( + glucoseValues += TransactionGlucoseValue( timestamp = timestamp, value = value * Constants.MMOLL_TO_MGDL, raw = 0.0, diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/MM640gPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/source/MM640gPlugin.kt index 05c27e6cc5..1dceb5025e 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/MM640gPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/source/MM640gPlugin.kt @@ -9,6 +9,7 @@ import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.database.entities.GlucoseValue import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.CgmSourceTransaction +import info.nightscout.database.transactions.TransactionGlucoseValue import info.nightscout.interfaces.XDripBroadcast import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription @@ -69,13 +70,13 @@ class MM640gPlugin @Inject constructor( aapsLogger.debug(LTag.BGSOURCE, "Received MM640g Data: $data") if (!data.isNullOrEmpty()) { try { - val glucoseValues = mutableListOf() + val glucoseValues = mutableListOf() val jsonArray = JSONArray(data) for (i in 0 until jsonArray.length()) { val jsonObject = jsonArray.getJSONObject(i) when (val type = jsonObject.getString("type")) { "sgv" -> - glucoseValues += CgmSourceTransaction.TransactionGlucoseValue( + glucoseValues += TransactionGlucoseValue( timestamp = jsonObject.getLong("date"), value = jsonObject.getDouble("sgv"), raw = jsonObject.getDouble("sgv"), diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/NSClientSourcePlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/source/NSClientSourcePlugin.kt index 5aa35f6093..9919f97515 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/NSClientSourcePlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/source/NSClientSourcePlugin.kt @@ -8,18 +8,19 @@ import dagger.android.HasAndroidInjector import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.database.entities.GlucoseValue import info.nightscout.database.impl.AppRepository -import info.nightscout.database.impl.transactions.CgmSourceTransaction +import info.nightscout.database.transactions.TransactionGlucoseValue import info.nightscout.interfaces.Config import info.nightscout.interfaces.XDripBroadcast import info.nightscout.interfaces.notifications.Notification +import info.nightscout.interfaces.nsclient.NSSgv +import info.nightscout.interfaces.nsclient.StoreDataForDb import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.source.BgSource +import info.nightscout.interfaces.source.NSClientSource import info.nightscout.plugins.R -import info.nightscout.plugins.sync.nsShared.StoreDataForDb -import info.nightscout.plugins.sync.nsclient.data.NSSgv import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventDismissNotification import info.nightscout.rx.logging.AAPSLogger @@ -49,7 +50,7 @@ class NSClientSourcePlugin @Inject constructor( .shortName(R.string.ns_client_bg_short) .description(R.string.description_source_ns_client), aapsLogger, rh, injector -), BgSource { +), BgSource, NSClientSource { private var lastBGTimeStamp: Long = 0 private var isAdvancedFilteringEnabled = false @@ -68,7 +69,7 @@ class NSClientSourcePlugin @Inject constructor( override fun shouldUploadToNs(glucoseValue: GlucoseValue): Boolean = false - internal fun detectSource(glucoseValue: GlucoseValue) { + override fun detectSource(glucoseValue: GlucoseValue) { if (glucoseValue.timestamp > lastBGTimeStamp) { isAdvancedFilteringEnabled = arrayOf( GlucoseValue.SourceSensor.DEXCOM_NATIVE_UNKNOWN, @@ -103,9 +104,9 @@ class NSClientSourcePlugin @Inject constructor( (context.applicationContext as HasAndroidInjector).androidInjector().inject(this) } - private fun toGv(jsonObject: JSONObject): CgmSourceTransaction.TransactionGlucoseValue? { + private fun toGv(jsonObject: JSONObject): TransactionGlucoseValue? { val sgv = NSSgv(jsonObject) - return CgmSourceTransaction.TransactionGlucoseValue( + return TransactionGlucoseValue( timestamp = sgv.mills ?: return null, value = sgv.mgdl?.toDouble() ?: return null, noise = null, @@ -116,8 +117,8 @@ class NSClientSourcePlugin @Inject constructor( ) } - private fun toGv(sgv: NSSgvV3): CgmSourceTransaction.TransactionGlucoseValue { - return CgmSourceTransaction.TransactionGlucoseValue( + private fun toGv(sgv: NSSgvV3): TransactionGlucoseValue { + return TransactionGlucoseValue( timestamp = sgv.date, value = sgv.sgv, noise = sgv.noise?.toDouble(), @@ -140,7 +141,7 @@ class NSClientSourcePlugin @Inject constructor( var latestDateInReceivedData: Long = 0 aapsLogger.debug(LTag.BGSOURCE, "Received NS Data: $sgvs") - val glucoseValues = mutableListOf() + val glucoseValues = mutableListOf() try { if (sgvs is JSONArray) { // V1 client diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/PoctechPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/source/PoctechPlugin.kt index e10c0573fd..213739492a 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/PoctechPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/source/PoctechPlugin.kt @@ -8,6 +8,7 @@ import dagger.android.HasAndroidInjector import info.nightscout.database.entities.GlucoseValue import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.CgmSourceTransaction +import info.nightscout.database.transactions.TransactionGlucoseValue import info.nightscout.interfaces.Constants import info.nightscout.interfaces.XDripBroadcast import info.nightscout.interfaces.plugin.PluginBase @@ -64,12 +65,12 @@ class PoctechPlugin @Inject constructor( if (!poctechPlugin.isEnabled()) return Result.success(workDataOf("Result" to "Plugin not enabled")) aapsLogger.debug(LTag.BGSOURCE, "Received Poctech Data $inputData") try { - val glucoseValues = mutableListOf() + val glucoseValues = mutableListOf() val jsonArray = JSONArray(inputData.getString("data")) aapsLogger.debug(LTag.BGSOURCE, "Received Poctech Data size:" + jsonArray.length()) for (i in 0 until jsonArray.length()) { val json = jsonArray.getJSONObject(i) - glucoseValues += CgmSourceTransaction.TransactionGlucoseValue( + glucoseValues += TransactionGlucoseValue( timestamp = json.getLong("date"), value = if (safeGetString(json, "units", Constants.MGDL) == "mmol/L") json.getDouble("current") * Constants.MMOLL_TO_MGDL else json.getDouble("current"), diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/RandomBgPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/source/RandomBgPlugin.kt index 8ef41d1f31..aa9f4589ce 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/RandomBgPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/source/RandomBgPlugin.kt @@ -8,6 +8,7 @@ import info.nightscout.core.utils.isRunningTest import info.nightscout.database.entities.GlucoseValue import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.CgmSourceTransaction +import info.nightscout.database.transactions.TransactionGlucoseValue import info.nightscout.interfaces.Config import info.nightscout.interfaces.XDripBroadcast import info.nightscout.interfaces.plugin.PluginBase @@ -108,8 +109,8 @@ class RandomBgPlugin @Inject constructor( cal[Calendar.MILLISECOND] = 0 cal[Calendar.SECOND] = 0 cal[Calendar.MINUTE] -= cal[Calendar.MINUTE] % 5 - val glucoseValues = mutableListOf() - glucoseValues += CgmSourceTransaction.TransactionGlucoseValue( + val glucoseValues = mutableListOf() + glucoseValues += TransactionGlucoseValue( timestamp = cal.timeInMillis, value = bgMgdl, raw = 0.0, diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/TomatoPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/source/TomatoPlugin.kt index 3d68075887..5ff4b1acb0 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/TomatoPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/source/TomatoPlugin.kt @@ -8,6 +8,7 @@ import dagger.android.HasAndroidInjector import info.nightscout.database.entities.GlucoseValue import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.CgmSourceTransaction +import info.nightscout.database.transactions.TransactionGlucoseValue import info.nightscout.interfaces.XDripBroadcast import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription @@ -61,8 +62,8 @@ class TomatoPlugin @Inject constructor( var ret = Result.success() if (!tomatoPlugin.isEnabled()) return Result.success(workDataOf("Result" to "Plugin not enabled")) - val glucoseValues = mutableListOf() - glucoseValues += CgmSourceTransaction.TransactionGlucoseValue( + val glucoseValues = mutableListOf() + glucoseValues += TransactionGlucoseValue( timestamp = inputData.getLong("com.fanqies.tomatofn.Extras.Time", 0), value = inputData.getDouble("com.fanqies.tomatofn.Extras.BgEstimate", 0.0), raw = 0.0, diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/XdripPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/source/XdripPlugin.kt index 338756e91f..ba5f49917f 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/XdripPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/source/XdripPlugin.kt @@ -10,6 +10,7 @@ import info.nightscout.interfaces.receivers.Intents import info.nightscout.database.entities.GlucoseValue import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.CgmSourceTransaction +import info.nightscout.database.transactions.TransactionGlucoseValue import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType @@ -79,8 +80,8 @@ class XdripPlugin @Inject constructor( ?: return Result.failure(workDataOf("Error" to "missing input data")) aapsLogger.debug(LTag.BGSOURCE, "Received xDrip data: $bundle") - val glucoseValues = mutableListOf() - glucoseValues += CgmSourceTransaction.TransactionGlucoseValue( + val glucoseValues = mutableListOf() + glucoseValues += TransactionGlucoseValue( timestamp = bundle.getLong(Intents.EXTRA_TIMESTAMP, 0), value = bundle.getDouble(Intents.EXTRA_BG_ESTIMATE, 0.0), raw = bundle.getDouble(Intents.EXTRA_RAW, 0.0), diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/extensions/PumpEnactResultExtension.kt b/plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/extensions/PumpEnactResultExtension.kt deleted file mode 100644 index 1b974524c5..0000000000 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/extensions/PumpEnactResultExtension.kt +++ /dev/null @@ -1,46 +0,0 @@ -package info.nightscout.plugins.sync.nsShared.extensions - -import info.nightscout.interfaces.pump.PumpEnactResult -import info.nightscout.interfaces.utils.Round -import org.json.JSONObject - -fun PumpEnactResult.log(): String { - return "Success: " + success + - " Enacted: " + enacted + - " Comment: " + comment + - " Duration: " + duration + - " Absolute: " + absolute + - " Percent: " + percent + - " IsPercent: " + isPercent + - " IsTempCancel: " + isTempCancel + - " bolusDelivered: " + bolusDelivered + - " carbsDelivered: " + carbsDelivered + - " Queued: " + queued -} - -fun PumpEnactResult.json(baseBasal: Double): JSONObject { - val result = JSONObject() - when { - bolusDelivered > 0 -> { - result.put("smb", bolusDelivered) - } - - isTempCancel -> { - result.put("rate", 0) - result.put("duration", 0) - } - - isPercent -> { - // Nightscout is expecting absolute value - val abs = Round.roundTo(baseBasal * percent / 100, 0.01) - result.put("rate", abs) - result.put("duration", duration) - } - - else -> { - result.put("rate", absolute) - result.put("duration", duration) - } - } - return result - } diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSettingsStatus.kt b/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSettingsStatus.kt deleted file mode 100644 index f018d68c4a..0000000000 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSettingsStatus.kt +++ /dev/null @@ -1,2 +0,0 @@ -package info.nightscout.plugins.sync.nsclient.data - diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusData.kt b/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusData.kt deleted file mode 100644 index f018d68c4a..0000000000 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusData.kt +++ /dev/null @@ -1,2 +0,0 @@ -package info.nightscout.plugins.sync.nsclient.data - diff --git a/plugins/main/src/main/java/info/nightscout/plugins/ui/StatusLightHandler.kt b/plugins/main/src/main/java/info/nightscout/plugins/ui/StatusLightHandler.kt index e2b6c825cd..4cb2513328 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/ui/StatusLightHandler.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/ui/StatusLightHandler.kt @@ -15,11 +15,11 @@ import info.nightscout.interfaces.pump.defs.PumpType import info.nightscout.interfaces.stats.TddCalculator import info.nightscout.interfaces.utils.DecimalFormatter import info.nightscout.plugins.R -import info.nightscout.plugins.sync.nsclient.extensions.age import info.nightscout.shared.extensions.runOnUiThread import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil +import java.util.concurrent.TimeUnit import javax.inject.Inject import javax.inject.Singleton @@ -143,4 +143,14 @@ class StatusLightHandler @Inject constructor( } } } + private fun TherapyEvent.age(useShortText: Boolean, rh: ResourceHelper, dateUtil: DateUtil): String { + val diff = dateUtil.computeDiff(timestamp, System.currentTimeMillis()) + var days = " " + rh.gs(info.nightscout.core.main.R.string.days) + " " + var hours = " " + rh.gs(info.nightscout.core.main.R.string.hours) + " " + if (useShortText) { + days = rh.gs(info.nightscout.core.main.R.string.shortday) + hours = rh.gs(info.nightscout.core.main.R.string.shorthour) + } + return diff[TimeUnit.DAYS].toString() + days + diff[TimeUnit.HOURS] + hours + } } diff --git a/plugins/main/src/main/res/values/strings.xml b/plugins/main/src/main/res/values/strings.xml index 8b61fbccac..0db241998a 100644 --- a/plugins/main/src/main/res/values/strings.xml +++ b/plugins/main/src/main/res/values/strings.xml @@ -196,9 +196,6 @@ BAS - ObjectivesbgIsAvailableInNS - ObjectivespumpStatusIsAvailableInNS - Completed, well done! Not completed yet Time elapsed @@ -264,28 +261,19 @@ keep_screen_on short_tabtitles - Copy NS settings (if exists)? show_statuslights Show status lights on home screen - statuslights_cage_warning Threshold warning cannula age [h] - statuslights_cage_critical Threshold critical cannula age [h] - statuslights_iage_warning Threshold warning insulin age [h] - statuslights_iage_critical Threshold critical insulin age [h] - statuslights_sage_warning Threshold warning sensor age [h] - statuslights_sage_critical Threshold critical sensor age [h] statuslights_sbat_warning Threshold warning sensor battery level [%] statuslights_sbat_critical Threshold critical sensor battery level [%] - statuslights_bage_warning Threshold warning pump battery age [h] - statuslights_bage_critical Threshold critical pump battery age [h] statuslights_res_warning Threshold warning reservoir level [U] @@ -295,7 +283,6 @@ Threshold warning pump battery level [%] statuslights_bat_critical Threshold critical pump battery level [%] - Status lights Copy settings from NS graph insulin @@ -383,6 +370,7 @@ Enable superbolus functionality in wizard. Do not enable until you learn what it really does. IT MAY CAUSE INSULIN OVERDOSE IF USED BLINDLY! Enable bolus reminder Use reminder to bolus later with wizard ("post-bolus") + Run %s? graphconfig @@ -410,108 +398,6 @@ Graph scale Graph - - ns_client_autoscroll - ns_client_paused - ns_log_app_started_event - - NSCLIENT has no write permission. Wrong API secret? - NSClientV3 - NSV3 - NSClient - NSCI - URL: - Autoscroll - Restart - NSClient - Nightscout URL - Enter Your Nightscout URL - NS API secret - NS API secret - Enter NS API secret (min 12 chars) - NS access token - NS access token - Access token generated on NS admin page (min 17 chars) - Deliver now - Clear queue - Show queue - Queue: - Status: - Clear log - Full synchronization - Full synchronization? It may take many hours and until finish you\'ll not see new data in NS. - Synchronization - ns_upload - Profiles, boluses, carbs, temporary basals are uploaded to NS - Upload data to NS - Receive profile store - Synchronize profiles from NS profile editor - Receive temporary targets - Accept temporary targets entered through NS or NSClient - Receive profile switches - Accept profile switches entered through NS or NSClient - Receive APS offline events - Accept APS Offline events entered through NS or NSClient - Receive TBR and EB - Accept TBR and EB entered through another instance - Receive insulin - Accept insulin entered through NS or NSClient (it\'s not delivered, only calculated towards IOB) - Receive carbs - Accept carbs entered through NS or NSClient - ns_receive_tbr_eb - Receive therapy events - Accept therapy events (cannula, insulin, battery change etc) entered through NS or NSClient - ns_receive_cgm - Receive/backfill CGM data - Accept CGM data from NS - Run %s? - Slow down uploads - Alarm options - ns_announcements - ns_alarms - ns_alarm_stale_data_value - ns_alarm_urgent_stale_data_value - Create notifications from NS alarms - Create notifications from NS announcements - Stale data threshold [min] - Urgent stale data threshold [min] - Log app start to NS - Enable broadcasts to other apps (like xDrip+). Do not enable if you have more than one instance of AAPS or AAPSClient installed! - Enable local Broadcasts. - - - tidepool_username - tidepool_password - tidepool_dev_servers - tidepool_test_login - tidepool_only_while_charging - tidepool_only_while_unmetered - tidepool_last_end - tidepool_upload_profile - tidepool_upload_tbr - tidepool_upload_cgm - tidepool_upload_bolus - tidepool_upload_bg - - Your Tidepool login user name, normally your email address - Login User Name - Your Tidepool login password - Login Password - Test Tidepool Login - If enabled, uploads will go to https://int-app.tidepool.org instead of the regular https://app.tidepool.org/ - Use Integration (test) servers - Tidepool - TDP - Uploads data to Tidepool - Upload CGM data - Upload treatments (insulin, carbs) - Upload temporary basals - Upload profile switches, temp targets - Upload BG tests - Remove all - Reset start - Upload now - virtualpump_uploadstatus Virtual Pump Type @@ -568,54 +454,6 @@ Log sensor change to NS Create event \"Sensor Change\" in NS automatically on sensor start - - ns_temporary_target_last_sync - ns_glucose_value_last_sync - ns_food_last_sync - ns_therapy_event_last_sync - ns_bolus_calculator_result_last_synced_id - ns_carbs_last_synced_id - ns_bolus_last_synced_id - ns_device_status_last_synced_id - ns_temporary_basal_last_synced_id - ns_extended_bolus_last_synced_id - profile_switch_last_synced_id - ns_effective_profile_switch_last_synced_id - ns_offline_event_last_synced_id - ns_profile_store_last_synced_timestamp - ns_sync_slow - nsclient_token - key_ns_client_v3_last_modified - ns_create_announcements_from_carbs_req - ns_cellular - ns_wifi - ns_wifi_ssids - ns_allow_roaming - ns_battery - ns_charging - snoozedTo - - Use Cellular connection - Use WiFi connection - WiFi SSID - During charging - On battery - Connection settings - Allowed SSIDs (semicolon separated) - Allow connection in roaming - Create announcements from errors - Create announcements from carbs required alerts - Create Nightscout announcement for error dialogs and local alerts (also viewable in Careportal under Treatments) - Create Nightscout announcements for carbs required alerts - Synchronizes your data with Nightscout - Synchronizes your data with Nightscout using v3 API - Blocked by charging options - Blocked by connectivity options - Unsupported version of Nightscout - OAPS - UPLD - NSClient malfunction. Consider NS and NSClient restart. - skin diff --git a/plugins/main/src/test/java/info/nightscout/plugins/source/NSClientPluginTest.kt b/plugins/main/src/test/java/info/nightscout/plugins/source/NSClientPluginTest.kt index 28f853bb34..09d03f7482 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/source/NSClientPluginTest.kt +++ b/plugins/main/src/test/java/info/nightscout/plugins/source/NSClientPluginTest.kt @@ -13,7 +13,7 @@ import org.mockito.Mock class NSClientPluginTest : TestBase() { - private lateinit var nsClientSourcePlugin: NSClientSourcePlugin + private lateinit var nsClientSourcePlugin: info.nightscout.plugins.source.NSClientSourcePlugin @Mock lateinit var rh: ResourceHelper @Mock lateinit var sp: SP @@ -21,7 +21,7 @@ class NSClientPluginTest : TestBase() { @Before fun setup() { - nsClientSourcePlugin = NSClientSourcePlugin({ AndroidInjector { } }, rh, aapsLogger, config) + nsClientSourcePlugin = info.nightscout.plugins.source.NSClientSourcePlugin({ AndroidInjector { } }, rh, aapsLogger, config) } @Test fun advancedFilteringSupported() { diff --git a/plugins/main/src/test/java/info/nightscout/plugins/sync/nsclient/NsClientReceiverDelegateTest.kt b/plugins/main/src/test/java/info/nightscout/plugins/sync/nsclient/NsClientReceiverDelegateTest.kt index 287757f3e7..3d087f1192 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/sync/nsclient/NsClientReceiverDelegateTest.kt +++ b/plugins/main/src/test/java/info/nightscout/plugins/sync/nsclient/NsClientReceiverDelegateTest.kt @@ -2,7 +2,7 @@ package info.nightscout.plugins.sync.nsclient import android.content.Context import info.nightscout.androidaps.TestBase -import info.nightscout.core.utils.receivers.ReceiverStatusStore +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.plugins.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventChargingState diff --git a/plugins/support/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerUtilsImpl.kt b/plugins/support/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerUtilsImpl.kt index a3b97cf40c..d281eba607 100644 --- a/plugins/support/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerUtilsImpl.kt +++ b/plugins/support/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerUtilsImpl.kt @@ -2,7 +2,7 @@ package info.nightscout.plugins.constraints.versionChecker import android.os.Build import dagger.Lazy -import info.nightscout.core.utils.receivers.ReceiverStatusStore +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.interfaces.Config import info.nightscout.interfaces.constraints.versionChecker.AllowedVersions import info.nightscout.interfaces.notifications.Notification diff --git a/plugins/support/src/main/java/info/nightscout/plugins/support/di/PluginsSupportModule.kt b/plugins/support/src/main/java/info/nightscout/plugins/support/di/PluginsSupportModule.kt index 0708f172b3..17ed884fd1 100644 --- a/plugins/support/src/main/java/info/nightscout/plugins/support/di/PluginsSupportModule.kt +++ b/plugins/support/src/main/java/info/nightscout/plugins/support/di/PluginsSupportModule.kt @@ -9,6 +9,7 @@ import info.nightscout.plugins.constraints.versionChecker.VersionCheckerUtilsImp @Module( includes = [ + PluginsSupportModule.Bindings::class ] ) diff --git a/plugins/support/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/VersionCheckerUtilsKtTest.kt b/plugins/support/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/VersionCheckerUtilsKtTest.kt index 952003ac06..b51d650d8d 100644 --- a/plugins/support/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/VersionCheckerUtilsKtTest.kt +++ b/plugins/support/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/VersionCheckerUtilsKtTest.kt @@ -2,7 +2,7 @@ package info.nightscout.plugins.constraints.signatureVerifier import dagger.Lazy import info.nightscout.androidaps.TestBase -import info.nightscout.core.utils.receivers.ReceiverStatusStore +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.interfaces.Config import info.nightscout.interfaces.ui.ActivityNames import info.nightscout.interfaces.versionChecker.VersionCheckerUtils diff --git a/plugins/sync/.gitignore b/plugins/sync/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/plugins/sync/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/plugins/sync/build.gradle b/plugins/sync/build.gradle new file mode 100644 index 0000000000..e10393fd41 --- /dev/null +++ b/plugins/sync/build.gradle @@ -0,0 +1,58 @@ +plugins { + id 'com.android.library' + id 'kotlin-android' + id 'kotlin-kapt' + id 'kotlin-allopen' + id 'com.hiya.jacoco-android' +} + +apply from: "${project.rootDir}/core/core-main/android_dependencies.gradle" +apply from: "${project.rootDir}/core/core-main/android_module_dependencies.gradle" +apply from: "${project.rootDir}/core/core-main/test_dependencies.gradle" +apply from: "${project.rootDir}/core/core-main/allopen_dependencies.gradle" +apply from: "${project.rootDir}/core/core-main/jacoco_global.gradle" +android { + namespace 'info.nightscout.plugins.sync' +} + +dependencies { + implementation project(':app-wear-shared:shared') + implementation project(':database:entities') + implementation project(':database:impl') + implementation project(':core:core-main') + implementation project(':core:graph') + implementation project(':core:graphview') + implementation project(':core:interfaces') + implementation project(':core:ns-sdk') + implementation project(':core:ui') + implementation project(':core:utils') + implementation project(':core:validators') + + api "androidx.appcompat:appcompat:$appcompat_version" + api "com.google.android.material:material:$material_version" + + // NSClient, Tidepool + api("io.socket:socket.io-client:1.0.0") { + // excluding org.json which is provided by Android + exclude group: "org.json", module: "json" + } + api "com.squareup.okhttp3:okhttp:$okhttp3_version" + api "com.squareup.okhttp3:logging-interceptor:$okhttp3_version" + //api "com.squareup.retrofit2:retrofit:$retrofit2_version" + api "com.squareup.retrofit2:adapter-rxjava3:$retrofit2_version" + api "com.squareup.retrofit2:converter-gson:$retrofit2_version" + + + //SmsCommunicator + api 'com.eatthepath:java-otp:0.4.0' + api 'com.github.kenglxn.QRGen:android:2.6.0' + + // Overview + api 'com.google.android.flexbox:flexbox:3.0.0' + + // Food + api "androidx.work:work-runtime-ktx:$work_version" + + // DataLayerListenerService + api "com.google.android.gms:play-services-wearable:$play_services_wearable_version" +} \ No newline at end of file diff --git a/plugins/sync/consumer-rules.pro b/plugins/sync/consumer-rules.pro new file mode 100644 index 0000000000..e69de29bb2 diff --git a/plugins/sync/proguard-rules.pro b/plugins/sync/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/plugins/sync/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/plugins/sync/src/main/AndroidManifest.xml b/plugins/sync/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..a5918e68ab --- /dev/null +++ b/plugins/sync/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/di/SyncModule.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/di/SyncModule.kt similarity index 66% rename from plugins/main/src/main/java/info/nightscout/plugins/di/SyncModule.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/di/SyncModule.kt index 59b6d8d0e3..f1d0bac4e8 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/di/SyncModule.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/di/SyncModule.kt @@ -1,9 +1,17 @@ -package info.nightscout.plugins.di +package info.nightscout.plugins.sync.di +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector +import info.nightscout.interfaces.nsclient.NSSettingsStatus +import info.nightscout.interfaces.nsclient.ProcessedDeviceStatusData +import info.nightscout.interfaces.nsclient.StoreDataForDb +import info.nightscout.interfaces.sync.DataSyncSelector import info.nightscout.plugins.sync.nsShared.NSClientFragment -import info.nightscout.plugins.sync.nsShared.StoreDataForDb +import info.nightscout.plugins.sync.nsShared.StoreDataForDbImpl +import info.nightscout.plugins.sync.nsclient.DataSyncSelectorImplementation +import info.nightscout.plugins.sync.nsclient.data.NSSettingsStatusImpl +import info.nightscout.plugins.sync.nsclient.data.ProcessedDeviceStatusDataImpl import info.nightscout.plugins.sync.nsclient.services.NSClientService import info.nightscout.plugins.sync.nsclient.workers.NSClientAddAckWorker import info.nightscout.plugins.sync.nsclient.workers.NSClientAddUpdateWorker @@ -17,7 +25,12 @@ import info.nightscout.plugins.sync.nsclientV3.workers.LoadTreatmentsWorker import info.nightscout.plugins.sync.nsclientV3.workers.ProcessTreatmentsWorker import info.nightscout.plugins.sync.tidepool.TidepoolFragment -@Module +@Module( + includes = [ + SyncModule.Binding::class + ] +) + @Suppress("unused") abstract class SyncModule { @@ -32,10 +45,20 @@ abstract class SyncModule { @ContributesAndroidInjector abstract fun contributesLoadStatusWorker(): LoadStatusWorker @ContributesAndroidInjector abstract fun contributesLoadLastModificationWorker(): LoadLastModificationWorker @ContributesAndroidInjector abstract fun contributesLoadBgWorker(): LoadBgWorker - @ContributesAndroidInjector abstract fun contributesStoreBgWorker(): StoreDataForDb.StoreBgWorker + @ContributesAndroidInjector abstract fun contributesStoreBgWorker(): StoreDataForDbImpl.StoreBgWorker @ContributesAndroidInjector abstract fun contributesTreatmentWorker(): LoadTreatmentsWorker @ContributesAndroidInjector abstract fun contributesProcessTreatmentsWorker(): ProcessTreatmentsWorker @ContributesAndroidInjector abstract fun contributesLoadDeviceStatusWorker(): LoadDeviceStatusWorker @ContributesAndroidInjector abstract fun contributesTidepoolFragment(): TidepoolFragment + + @Module + interface Binding { + + @Binds fun bindProcessedDeviceStatusData(processedDeviceStatusDataImpl: ProcessedDeviceStatusDataImpl): ProcessedDeviceStatusData + @Binds fun bindNSSettingsStatus(nsSettingsStatusImpl: NSSettingsStatusImpl): NSSettingsStatus + @Binds fun bindDataSyncSelectorInterface(dataSyncSelectorImplementation: DataSyncSelectorImplementation): DataSyncSelector + @Binds fun bindStoreDataForDb(storeDataForDbImpl: StoreDataForDbImpl): StoreDataForDb + } + } \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/NSClientFragment.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/NSClientFragment.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/NSClientFragment.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/NSClientFragment.kt index c4aaaf9ebf..839b1d44bb 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/NSClientFragment.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/NSClientFragment.kt @@ -23,8 +23,8 @@ import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginFragment import info.nightscout.interfaces.sync.DataSyncSelector import info.nightscout.interfaces.sync.NsClient -import info.nightscout.plugins.R -import info.nightscout.plugins.databinding.NsClientFragmentBinding +import info.nightscout.plugins.sync.R +import info.nightscout.plugins.sync.databinding.NsClientFragmentBinding import info.nightscout.plugins.sync.nsShared.events.EventNSClientUpdateGUI import info.nightscout.plugins.sync.nsclientV3.NSClientV3Plugin import info.nightscout.rx.AapsSchedulers diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/StoreDataForDb.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/StoreDataForDbImpl.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/StoreDataForDb.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/StoreDataForDbImpl.kt index 196da55760..a84b079e19 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/StoreDataForDb.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/StoreDataForDbImpl.kt @@ -31,14 +31,16 @@ import info.nightscout.database.impl.transactions.SyncNsProfileSwitchTransaction import info.nightscout.database.impl.transactions.SyncNsTemporaryBasalTransaction import info.nightscout.database.impl.transactions.SyncNsTemporaryTargetTransaction import info.nightscout.database.impl.transactions.SyncNsTherapyEventTransaction +import info.nightscout.database.transactions.TransactionGlucoseValue import info.nightscout.interfaces.Config import info.nightscout.interfaces.Constants import info.nightscout.interfaces.XDripBroadcast import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.interfaces.notifications.Notification -import info.nightscout.plugins.R -import info.nightscout.plugins.pump.virtual.VirtualPumpPlugin -import info.nightscout.plugins.source.NSClientSourcePlugin +import info.nightscout.interfaces.nsclient.StoreDataForDb +import info.nightscout.interfaces.pump.VirtualPump +import info.nightscout.interfaces.source.NSClientSource +import info.nightscout.plugins.sync.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventNSClientNewLog import info.nightscout.rx.logging.AAPSLogger @@ -60,7 +62,7 @@ import javax.inject.Inject import javax.inject.Singleton @Singleton -class StoreDataForDb @Inject constructor( +class StoreDataForDbImpl @Inject constructor( private val aapsLogger: AAPSLogger, private val rxBus: RxBus, private val repository: AppRepository, @@ -68,12 +70,12 @@ class StoreDataForDb @Inject constructor( private val uel: UserEntryLogger, private val dateUtil: DateUtil, private val config: Config, - private val nsClientSourcePlugin: NSClientSourcePlugin, + private val nsClientSource: NSClientSource, private val xDripBroadcast: XDripBroadcast, - private val virtualPumpPlugin: VirtualPumpPlugin -) { + private val virtualPump: VirtualPump +) : StoreDataForDb { - val glucoseValues: MutableList = mutableListOf() + override val glucoseValues: MutableList = mutableListOf() val boluses: MutableList = mutableListOf() val carbs: MutableList = mutableListOf() @@ -102,7 +104,7 @@ class StoreDataForDb @Inject constructor( params: WorkerParameters ) : Worker(context, params) { - @Inject lateinit var storeDataForDb: StoreDataForDb + @Inject lateinit var storeDataForDb: StoreDataForDbImpl override fun doWork(): Result { storeDataForDb.storeGlucoseValuesToDb() @@ -131,19 +133,19 @@ class StoreDataForDb @Inject constructor( glucoseValues.clear() result.updated.forEach { xDripBroadcast.send(it) - nsClientSourcePlugin.detectSource(it) + nsClientSource.detectSource(it) aapsLogger.debug(LTag.DATABASE, "Updated bg $it") updated.inc(GlucoseValue::class.java.simpleName) } result.inserted.forEach { xDripBroadcast.send(it) - nsClientSourcePlugin.detectSource(it) + nsClientSource.detectSource(it) aapsLogger.debug(LTag.DATABASE, "Inserted bg $it") inserted.inc(GlucoseValue::class.java.simpleName) } result.updatedNsId.forEach { xDripBroadcast.send(it) - nsClientSourcePlugin.detectSource(it) + nsClientSource.detectSource(it) aapsLogger.debug(LTag.DATABASE, "Updated nsId bg $it") nsIdUpdated.inc(GlucoseValue::class.java.simpleName) } @@ -677,7 +679,7 @@ class StoreDataForDb @Inject constructor( ) ) ) - if (it.isEmulatingTempBasal) virtualPumpPlugin.fakeDataDetected = true + if (it.isEmulatingTempBasal) virtualPump.fakeDataDetected = true aapsLogger.debug(LTag.DATABASE, "Inserted ExtendedBolus $it") inserted.inc(NSExtendedBolus::class.java.simpleName) } diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientResend.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientResend.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientResend.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientResend.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientStatus.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientStatus.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientStatus.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientStatus.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientUpdateGUI.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientUpdateGUI.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientUpdateGUI.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/events/EventNSClientUpdateGUI.kt diff --git a/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/extensions/PumpEnactResultExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/extensions/PumpEnactResultExtension.kt new file mode 100644 index 0000000000..066de537aa --- /dev/null +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsShared/extensions/PumpEnactResultExtension.kt @@ -0,0 +1,19 @@ +package info.nightscout.plugins.sync.nsShared.extensions + +import info.nightscout.interfaces.pump.PumpEnactResult +import info.nightscout.interfaces.utils.Round +import org.json.JSONObject + +fun PumpEnactResult.log(): String { + return "Success: " + success + + " Enacted: " + enacted + + " Comment: " + comment + + " Duration: " + duration + + " Absolute: " + absolute + + " Percent: " + percent + + " IsPercent: " + isPercent + + " IsTempCancel: " + isTempCancel + + " bolusDelivered: " + bolusDelivered + + " carbsDelivered: " + carbsDelivered + + " Queued: " + queued +} \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/DataSyncSelectorImplementation.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/DataSyncSelectorImplementation.kt similarity index 99% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/DataSyncSelectorImplementation.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/DataSyncSelectorImplementation.kt index d48dca3dcf..d74a9402d3 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/DataSyncSelectorImplementation.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/DataSyncSelectorImplementation.kt @@ -19,8 +19,7 @@ import info.nightscout.database.impl.AppRepository import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.sync.DataSyncSelector -import info.nightscout.plugins.R -import info.nightscout.plugins.profile.ProfilePlugin +import info.nightscout.plugins.sync.R import info.nightscout.plugins.sync.nsclient.extensions.toJson import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag @@ -37,7 +36,6 @@ class DataSyncSelectorImplementation @Inject constructor( private val profileFunction: ProfileFunction, private val activePlugin: ActivePlugin, private val appRepository: AppRepository, - private val profilePlugin: ProfilePlugin ) : DataSyncSelector { class QueueCounter( @@ -905,8 +903,8 @@ class DataSyncSelectorImplementation @Inject constructor( val lastChange = sp.getLong(R.string.key_local_profile_last_change, 0) if (lastChange == 0L) return if (lastChange > lastSync) { - if (profilePlugin.profile?.allProfilesValid != true) return - val profileJson = profilePlugin.profile?.data ?: return + if (activePlugin.activeProfileSource.profile?.allProfilesValid != true) return + val profileJson = activePlugin.activeProfileSource.profile?.data ?: return activePlugin.activeNsClient?.nsClientService?.dbAdd("profile", profileJson, DataSyncSelector.PairProfileStore(profileJson, dateUtil.now()), "") } } diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/NSClientPlugin.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/NSClientPlugin.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/NSClientPlugin.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/NSClientPlugin.kt index 59e9f70eff..9330d8ed62 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/NSClientPlugin.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/NSClientPlugin.kt @@ -24,13 +24,13 @@ import info.nightscout.interfaces.sync.DataSyncSelector import info.nightscout.interfaces.sync.NsClient import info.nightscout.interfaces.sync.Sync import info.nightscout.interfaces.utils.HtmlHelper.fromHtml -import info.nightscout.plugins.R +import info.nightscout.plugins.sync.R import info.nightscout.plugins.sync.nsShared.NSClientFragment import info.nightscout.plugins.sync.nsShared.events.EventNSClientResend import info.nightscout.plugins.sync.nsShared.events.EventNSClientStatus import info.nightscout.plugins.sync.nsShared.events.EventNSClientUpdateGUI import info.nightscout.plugins.sync.nsclient.data.AlarmAck -import info.nightscout.plugins.sync.nsclient.data.NSAlarm +import info.nightscout.interfaces.nsclient.NSAlarm import info.nightscout.plugins.sync.nsclient.services.NSClientService import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus @@ -204,7 +204,7 @@ class NSClientPlugin @Inject constructor( override val address: String get() = nsClientService?.nsURL ?: "" - fun handleClearAlarm(originalAlarm: NSAlarm, silenceTimeInMilliseconds: Long) { + override fun handleClearAlarm(originalAlarm: NSAlarm, silenceTimeInMilliseconds: Long) { if (!isEnabled()) return if (!sp.getBoolean(R.string.key_ns_upload, true)) { aapsLogger.debug(LTag.NSCLIENT, "Upload disabled. Message dropped") diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/NsClientReceiverDelegate.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/NsClientReceiverDelegate.kt similarity index 96% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/NsClientReceiverDelegate.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/NsClientReceiverDelegate.kt index ab65c897ca..aecbbf12d0 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/NsClientReceiverDelegate.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/NsClientReceiverDelegate.kt @@ -1,7 +1,7 @@ package info.nightscout.plugins.sync.nsclient -import info.nightscout.core.utils.receivers.ReceiverStatusStore -import info.nightscout.plugins.R +import info.nightscout.interfaces.receivers.ReceiverStatusStore +import info.nightscout.plugins.sync.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventChargingState import info.nightscout.rx.events.EventNetworkChange diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSAddAck.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSAddAck.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSAddAck.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSAddAck.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSAuthAck.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSAuthAck.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSAuthAck.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSAuthAck.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSUpdateAck.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSUpdateAck.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSUpdateAck.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/acks/NSUpdateAck.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/AlarmAck.java b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/AlarmAck.java similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/AlarmAck.java rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/AlarmAck.java diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSDeviceStatusHandler.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSDeviceStatusHandler.kt similarity index 99% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSDeviceStatusHandler.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSDeviceStatusHandler.kt index 90a4e9d096..68379f28b4 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSDeviceStatusHandler.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSDeviceStatusHandler.kt @@ -5,7 +5,7 @@ import info.nightscout.interfaces.configBuilder.RunningConfiguration import info.nightscout.interfaces.nsclient.ProcessedDeviceStatusData import info.nightscout.interfaces.utils.HtmlHelper import info.nightscout.interfaces.utils.JsonHelper -import info.nightscout.plugins.R +import info.nightscout.plugins.sync.R import info.nightscout.sdk.remotemodel.RemoteDeviceStatus import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSMbg.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSMbg.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSMbg.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSMbg.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSettingsStatusImpl.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSettingsStatusImpl.kt similarity index 99% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSettingsStatusImpl.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSettingsStatusImpl.kt index 644eb6d0e3..199dbc3592 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSettingsStatusImpl.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/NSSettingsStatusImpl.kt @@ -2,17 +2,17 @@ package info.nightscout.plugins.sync.nsclient.data import android.content.Context import info.nightscout.androidaps.annotations.OpenForTesting -import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.core.events.EventNewNotification import info.nightscout.core.ui.dialogs.OKDialog import info.nightscout.database.entities.UserEntry import info.nightscout.database.entities.UserEntry.Action import info.nightscout.interfaces.Config +import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.interfaces.notifications.Notification import info.nightscout.interfaces.nsclient.NSSettingsStatus import info.nightscout.interfaces.profile.DefaultValueHelper import info.nightscout.interfaces.utils.JsonHelper -import info.nightscout.plugins.R +import info.nightscout.plugins.sync.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventDismissNotification import info.nightscout.rx.logging.AAPSLogger diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt similarity index 99% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt index 9d0729ac58..1b08fb647f 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt @@ -8,7 +8,7 @@ import info.nightscout.interfaces.nsclient.ProcessedDeviceStatusData import info.nightscout.interfaces.utils.HtmlHelper import info.nightscout.interfaces.utils.JsonHelper import info.nightscout.interfaces.utils.Round -import info.nightscout.plugins.R +import info.nightscout.plugins.sync.R import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/BolusExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/BolusExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/BolusExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/BolusExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/CarbsExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/CarbsExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/CarbsExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/CarbsExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/DeviceStatusExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/DeviceStatusExtension.kt similarity index 81% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/DeviceStatusExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/DeviceStatusExtension.kt index 8e2ef28855..3e75998b9e 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/DeviceStatusExtension.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/DeviceStatusExtension.kt @@ -1,15 +1,6 @@ package info.nightscout.plugins.sync.nsclient.extensions -import android.os.Build -import info.nightscout.core.utils.receivers.ReceiverStatusStore -import info.nightscout.core.iob.json import info.nightscout.database.entities.DeviceStatus -import info.nightscout.interfaces.aps.Loop -import info.nightscout.interfaces.iob.IobCobCalculator -import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.interfaces.pump.Pump -import info.nightscout.interfaces.configBuilder.RunningConfiguration -import info.nightscout.plugins.sync.nsShared.extensions.json import info.nightscout.shared.utils.DateUtil import org.json.JSONObject @@ -28,64 +19,6 @@ fun DeviceStatus.toJson(dateUtil: DateUtil): JSONObject = configuration?.let { configuration -> it.put("configuration", JSONObject(configuration)) } } -fun buildDeviceStatus( - dateUtil: DateUtil, - loop: Loop, - iobCobCalculatorPlugin: IobCobCalculator, - profileFunction: ProfileFunction, - pump: Pump, - receiverStatusStore: ReceiverStatusStore, - runningConfiguration: RunningConfiguration, - version: String -): DeviceStatus? { - val profile = profileFunction.getProfile() ?: return null - val profileName = profileFunction.getProfileName() - - val lastRun = loop.lastRun - var apsResult: JSONObject? = null - var iob: JSONObject? = null - var enacted: JSONObject? = null - if (lastRun != null && lastRun.lastAPSRun > dateUtil.now() - 300 * 1000L) { - // do not send if result is older than 1 min - apsResult = lastRun.request?.json()?.also { - it.put("timestamp", dateUtil.toISOString(lastRun.lastAPSRun)) - } - iob = lastRun.request?.iob?.json(dateUtil)?.also { - it.put("time", dateUtil.toISOString(lastRun.lastAPSRun)) - } - val requested = JSONObject() - if (lastRun.tbrSetByPump?.enacted == true) { // enacted - enacted = lastRun.request?.json()?.also { - it.put("rate", lastRun.tbrSetByPump!!.json(profile.getBasal())["rate"]) - it.put("duration", lastRun.tbrSetByPump!!.json(profile.getBasal())["duration"]) - it.put("received", true) - } - requested.put("duration", lastRun.request?.duration) - requested.put("rate", lastRun.request?.rate) - requested.put("temp", "absolute") - requested.put("smb", lastRun.request?.smb) - enacted?.put("requested", requested) - enacted?.put("smb", lastRun.tbrSetByPump?.bolusDelivered) - } - } else { - val calcIob = iobCobCalculatorPlugin.calculateIobArrayInDia(profile) - if (calcIob.isNotEmpty()) { - iob = calcIob[0].json(dateUtil) - iob.put("time", dateUtil.toISOString(dateUtil.now())) - } - } - return DeviceStatus( - timestamp = dateUtil.now(), - suggested = apsResult?.toString(), - iob = iob?.toString(), - enacted = enacted?.toString(), - device = "openaps://" + Build.MANUFACTURER + " " + Build.MODEL, - pump = pump.getJSONStatus(profile, profileName, version).toString(), - uploaderBattery = receiverStatusStore.batteryLevel, - configuration = runningConfiguration.configuration().toString() - ) -} - /* { "_id": "576cfd15217b0bed77d63641", diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/EffectiveProfileSwitchExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/EffectiveProfileSwitchExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/EffectiveProfileSwitchExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/EffectiveProfileSwitchExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/ExtendedBolusExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/ExtendedBolusExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/ExtendedBolusExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/ExtendedBolusExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/OfflineEventExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/OfflineEventExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/OfflineEventExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/OfflineEventExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/ProfileSwitchExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/ProfileSwitchExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/ProfileSwitchExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/ProfileSwitchExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TemporaryBasalExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TemporaryBasalExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TemporaryBasalExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TemporaryBasalExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TemporaryTargetExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TemporaryTargetExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TemporaryTargetExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TemporaryTargetExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TherapyEventExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TherapyEventExtension.kt similarity index 85% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TherapyEventExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TherapyEventExtension.kt index 1c815ba8d9..24277b758b 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TherapyEventExtension.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/extensions/TherapyEventExtension.kt @@ -1,27 +1,13 @@ package info.nightscout.plugins.sync.nsclient.extensions -import info.nightscout.core.main.R import info.nightscout.database.entities.TherapyEvent import info.nightscout.interfaces.Constants import info.nightscout.interfaces.GlucoseUnit import info.nightscout.interfaces.utils.JsonHelper import info.nightscout.plugins.sync.nsclient.data.NSMbg -import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.utils.DateUtil import info.nightscout.shared.utils.T import org.json.JSONObject -import java.util.concurrent.TimeUnit - -fun TherapyEvent.age(useShortText: Boolean, rh: ResourceHelper, dateUtil: DateUtil): String { - val diff = dateUtil.computeDiff(timestamp, System.currentTimeMillis()) - var days = " " + rh.gs(R.string.days) + " " - var hours = " " + rh.gs(R.string.hours) + " " - if (useShortText) { - days = rh.gs(R.string.shortday) - hours = rh.gs(R.string.shorthour) - } - return diff[TimeUnit.DAYS].toString() + days + diff[TimeUnit.HOURS] + hours -} fun TherapyEvent.GlucoseUnit.toMainUnit(): GlucoseUnit = if (this == TherapyEvent.GlucoseUnit.MGDL) GlucoseUnit.MGDL diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/services/NSClientService.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/services/NSClientService.kt similarity index 96% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/services/NSClientService.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/services/NSClientService.kt index 556546cc7a..6a88662054 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/services/NSClientService.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/services/NSClientService.kt @@ -22,17 +22,17 @@ import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.database.impl.AppRepository import info.nightscout.interfaces.Config import info.nightscout.interfaces.notifications.Notification +import info.nightscout.interfaces.nsclient.NSAlarm +import info.nightscout.interfaces.nsclient.NSSettingsStatus import info.nightscout.interfaces.sync.DataSyncSelector import info.nightscout.interfaces.sync.NsClient +import info.nightscout.interfaces.ui.ActivityNames import info.nightscout.interfaces.utils.JsonHelper.safeGetString import info.nightscout.interfaces.utils.JsonHelper.safeGetStringAllowNull -import info.nightscout.plugins.R -import info.nightscout.plugins.general.food.FoodPlugin -import info.nightscout.plugins.general.overview.notifications.NotificationWithAction -import info.nightscout.plugins.profile.ProfilePlugin -import info.nightscout.plugins.source.NSClientSourcePlugin -import info.nightscout.plugins.sync.nsShared.StoreDataForDb -import info.nightscout.rx.events.EventNSClientNewLog +import info.nightscout.interfaces.workflow.WorkerClasses +import info.nightscout.plugins.sync.R +import info.nightscout.interfaces.nsclient.StoreDataForDb +import info.nightscout.plugins.sync.nsShared.StoreDataForDbImpl import info.nightscout.plugins.sync.nsShared.events.EventNSClientStatus import info.nightscout.plugins.sync.nsShared.events.EventNSClientUpdateGUI import info.nightscout.plugins.sync.nsclient.NSClientPlugin @@ -40,9 +40,7 @@ import info.nightscout.plugins.sync.nsclient.acks.NSAddAck import info.nightscout.plugins.sync.nsclient.acks.NSAuthAck import info.nightscout.plugins.sync.nsclient.acks.NSUpdateAck import info.nightscout.plugins.sync.nsclient.data.AlarmAck -import info.nightscout.plugins.sync.nsclient.data.NSAlarm import info.nightscout.plugins.sync.nsclient.data.NSDeviceStatusHandler -import info.nightscout.interfaces.nsclient.NSSettingsStatus import info.nightscout.plugins.sync.nsclient.workers.NSClientAddAckWorker import info.nightscout.plugins.sync.nsclient.workers.NSClientAddUpdateWorker import info.nightscout.plugins.sync.nsclient.workers.NSClientMbgWorker @@ -53,6 +51,7 @@ import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventAppExit import info.nightscout.rx.events.EventConfigBuilderChange import info.nightscout.rx.events.EventDismissNotification +import info.nightscout.rx.events.EventNSClientNewLog import info.nightscout.rx.events.EventNSClientRestart import info.nightscout.rx.events.EventPreferenceChange import info.nightscout.rx.logging.AAPSLogger @@ -91,6 +90,8 @@ class NSClientService : DaggerService(), NsClient.NSClientService { @Inject lateinit var dataWorkerStorage: DataWorkerStorage @Inject lateinit var dataSyncSelector: DataSyncSelector @Inject lateinit var repository: AppRepository + @Inject lateinit var activityNames: ActivityNames + @Inject lateinit var workerClasses: WorkerClasses companion object { @@ -476,7 +477,7 @@ class NSClientService : DaggerService(), NsClient.NSClientService { val profileStoreJson = profiles[profiles.length() - 1] as JSONObject rxBus.send(EventNSClientNewLog("PROFILE", "profile received")) dataWorkerStorage.enqueue( - OneTimeWorkRequest.Builder(ProfilePlugin.NSProfileWorker::class.java) + OneTimeWorkRequest.Builder(workerClasses.nsProfileWorker) .setInputData(dataWorkerStorage.storeInputData(profileStoreJson)) .build() ) @@ -518,7 +519,7 @@ class NSClientService : DaggerService(), NsClient.NSClientService { val foods = data.getJSONArray("food") if (foods.length() > 0) rxBus.send(EventNSClientNewLog("DATA", "received " + foods.length() + " foods")) dataWorkerStorage.enqueue( - OneTimeWorkRequest.Builder(FoodPlugin.FoodWorker::class.java) + OneTimeWorkRequest.Builder(workerClasses.foodWorker) .setInputData(dataWorkerStorage.storeInputData(foods)) .build() ) @@ -546,10 +547,10 @@ class NSClientService : DaggerService(), NsClient.NSClientService { dataWorkerStorage .beginUniqueWork( NSClientV3Plugin.JOB_NAME, - OneTimeWorkRequest.Builder(NSClientSourcePlugin.NSClientSourceWorker::class.java) + OneTimeWorkRequest.Builder(workerClasses.nsClientSourceWorker) .setInputData(dataWorkerStorage.storeInputData(sgvs)) .build() - ).then(OneTimeWorkRequest.Builder(StoreDataForDb.StoreBgWorker::class.java).build()) + ).then(OneTimeWorkRequest.Builder(StoreDataForDbImpl.StoreBgWorker::class.java).build()) .enqueue() } } @@ -634,8 +635,7 @@ class NSClientService : DaggerService(), NsClient.NSClientService { val defaultVal = config.NSCLIENT if (sp.getBoolean(R.string.key_ns_announcements, defaultVal)) { val nsAlarm = NSAlarm(announcement) - val notification: Notification = NotificationWithAction(injector, nsAlarm) - rxBus.send(EventNewNotification(notification)) + activityNames.addNotificationWithAction(injector, nsAlarm) rxBus.send(EventNSClientNewLog("ANNOUNCEMENT", safeGetString(announcement, "message", "received"))) aapsLogger.debug(LTag.NSCLIENT, announcement.toString()) } @@ -647,8 +647,7 @@ class NSClientService : DaggerService(), NsClient.NSClientService { val snoozedTo = sp.getLong(R.string.key_snoozed_to, 0L) if (snoozedTo == 0L || System.currentTimeMillis() > snoozedTo) { val nsAlarm = NSAlarm(alarm) - val notification: Notification = NotificationWithAction(injector, nsAlarm) - rxBus.send(EventNewNotification(notification)) + activityNames.addNotificationWithAction(injector, nsAlarm) } rxBus.send(EventNSClientNewLog("ALARM", safeGetString(alarm, "message", "received"))) aapsLogger.debug(LTag.NSCLIENT, alarm.toString()) @@ -661,8 +660,7 @@ class NSClientService : DaggerService(), NsClient.NSClientService { val snoozedTo = sp.getLong(R.string.key_snoozed_to, 0L) if (snoozedTo == 0L || System.currentTimeMillis() > snoozedTo) { val nsAlarm = NSAlarm(alarm) - val notification: Notification = NotificationWithAction(injector, nsAlarm) - rxBus.send(EventNewNotification(notification)) + activityNames.addNotificationWithAction(injector, nsAlarm) } rxBus.send(EventNSClientNewLog("URGENTALARM", safeGetString(alarm, "message", "received"))) aapsLogger.debug(LTag.NSCLIENT, alarm.toString()) diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddAckWorker.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddAckWorker.kt similarity index 99% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddAckWorker.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddAckWorker.kt index 9045e93e88..e2f3102e17 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddAckWorker.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddAckWorker.kt @@ -36,7 +36,7 @@ import info.nightscout.interfaces.sync.DataSyncSelector.PairProfileSwitch import info.nightscout.interfaces.sync.DataSyncSelector.PairTemporaryBasal import info.nightscout.interfaces.sync.DataSyncSelector.PairTemporaryTarget import info.nightscout.interfaces.sync.DataSyncSelector.PairTherapyEvent -import info.nightscout.plugins.R +import info.nightscout.plugins.sync.R import info.nightscout.plugins.sync.nsclient.acks.NSAddAck import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddUpdateWorker.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddUpdateWorker.kt similarity index 97% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddUpdateWorker.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddUpdateWorker.kt index 0c10f2642f..718918492b 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddUpdateWorker.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientAddUpdateWorker.kt @@ -6,17 +6,18 @@ import androidx.work.WorkerParameters import androidx.work.workDataOf import dagger.android.HasAndroidInjector import info.nightscout.androidaps.extensions.bolusCalculatorResultFromJson -import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.database.entities.TherapyEvent import info.nightscout.database.impl.AppRepository import info.nightscout.interfaces.Config import info.nightscout.interfaces.XDripBroadcast +import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.pump.VirtualPump import info.nightscout.interfaces.utils.JsonHelper -import info.nightscout.plugins.R -import info.nightscout.plugins.sync.nsShared.StoreDataForDb +import info.nightscout.plugins.sync.R +import info.nightscout.interfaces.nsclient.StoreDataForDb +import info.nightscout.plugins.sync.nsShared.StoreDataForDbImpl import info.nightscout.plugins.sync.nsclient.extensions.bolusFromJson import info.nightscout.plugins.sync.nsclient.extensions.carbsFromJson import info.nightscout.plugins.sync.nsclient.extensions.effectiveProfileSwitchFromJson @@ -49,7 +50,7 @@ class NSClientAddUpdateWorker( @Inject lateinit var rxBus: RxBus @Inject lateinit var uel: UserEntryLogger @Inject lateinit var xDripBroadcast: XDripBroadcast - @Inject lateinit var storeDataForDb: StoreDataForDb + @Inject lateinit var storeDataForDb: StoreDataForDbImpl override fun doWork(): Result { val treatments = dataWorkerStorage.pickupJSONArray(inputData.getLong(DataWorkerStorage.STORE_KEY, -1)) diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientMbgWorker.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientMbgWorker.kt similarity index 88% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientMbgWorker.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientMbgWorker.kt index a32c26d006..bbc77eec2c 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientMbgWorker.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientMbgWorker.kt @@ -7,8 +7,9 @@ import androidx.work.workDataOf import dagger.android.HasAndroidInjector import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.interfaces.Config -import info.nightscout.plugins.R -import info.nightscout.plugins.sync.nsShared.StoreDataForDb +import info.nightscout.plugins.sync.R +import info.nightscout.interfaces.nsclient.StoreDataForDb +import info.nightscout.plugins.sync.nsShared.StoreDataForDbImpl import info.nightscout.plugins.sync.nsclient.data.NSMbg import info.nightscout.plugins.sync.nsclient.extensions.therapyEventFromNsMbg import info.nightscout.shared.sharedPreferences.SP @@ -22,7 +23,7 @@ class NSClientMbgWorker( @Inject lateinit var dataWorkerStorage: DataWorkerStorage @Inject lateinit var sp: SP @Inject lateinit var config: Config - @Inject lateinit var storeDataForDb: StoreDataForDb + @Inject lateinit var storeDataForDb: StoreDataForDbImpl override fun doWork(): Result { val ret = Result.success() diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientUpdateRemoveAckWorker.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientUpdateRemoveAckWorker.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientUpdateRemoveAckWorker.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/workers/NSClientUpdateRemoveAckWorker.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/NSClientV3Plugin.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/NSClientV3Plugin.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/NSClientV3Plugin.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/NSClientV3Plugin.kt index 1db450f092..1cbf6b1e70 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/NSClientV3Plugin.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/NSClientV3Plugin.kt @@ -23,14 +23,14 @@ import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.sync.NsClient import info.nightscout.interfaces.sync.Sync import info.nightscout.interfaces.utils.HtmlHelper -import info.nightscout.plugins.R +import info.nightscout.plugins.sync.R import info.nightscout.plugins.sync.nsShared.NSClientFragment import info.nightscout.plugins.sync.nsShared.events.EventNSClientResend import info.nightscout.plugins.sync.nsShared.events.EventNSClientStatus import info.nightscout.plugins.sync.nsShared.events.EventNSClientUpdateGUI import info.nightscout.plugins.sync.nsclient.NsClientReceiverDelegate +import info.nightscout.interfaces.nsclient.NSAlarm import info.nightscout.plugins.sync.nsclient.data.AlarmAck -import info.nightscout.plugins.sync.nsclient.data.NSAlarm import info.nightscout.plugins.sync.nsclient.services.NSClientService import info.nightscout.plugins.sync.nsclientV3.workers.LoadBgWorker import info.nightscout.plugins.sync.nsclientV3.workers.LoadLastModificationWorker @@ -244,7 +244,7 @@ class NSClientV3Plugin @Inject constructor( override val address: String get() = sp.getString(R.string.key_nsclientinternal_url, "") - fun handleClearAlarm(originalAlarm: NSAlarm, silenceTimeInMilliseconds: Long) { + override fun handleClearAlarm(originalAlarm: NSAlarm, silenceTimeInMilliseconds: Long) { if (!isEnabled()) return if (!sp.getBoolean(R.string.key_ns_upload, true)) { aapsLogger.debug(LTag.NSCLIENT, "Upload disabled. Message dropped") diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/BolusCalculatorResultExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/BolusCalculatorResultExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/BolusCalculatorResultExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/BolusCalculatorResultExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/BolusExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/BolusExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/BolusExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/BolusExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/CarbsExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/CarbsExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/CarbsExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/CarbsExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/EffectiveProfileSwitchExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/EffectiveProfileSwitchExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/EffectiveProfileSwitchExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/EffectiveProfileSwitchExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/ExtendedBolusExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/ExtendedBolusExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/ExtendedBolusExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/ExtendedBolusExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/OfflineEventExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/OfflineEventExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/OfflineEventExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/OfflineEventExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/ProfileSwitchExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/ProfileSwitchExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/ProfileSwitchExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/ProfileSwitchExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryBasalExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryBasalExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryBasalExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryBasalExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryTargetExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryTargetExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryTargetExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryTargetExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TherapyEventExtension.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TherapyEventExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TherapyEventExtension.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/extensions/TherapyEventExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadBgWorker.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadBgWorker.kt similarity index 89% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadBgWorker.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadBgWorker.kt index 38185cd1c3..0dd63c2783 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadBgWorker.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadBgWorker.kt @@ -9,9 +9,10 @@ import androidx.work.WorkerParameters import androidx.work.workDataOf import dagger.android.HasAndroidInjector import info.nightscout.core.utils.receivers.DataWorkerStorage -import info.nightscout.plugins.R -import info.nightscout.plugins.source.NSClientSourcePlugin -import info.nightscout.plugins.sync.nsShared.StoreDataForDb +import info.nightscout.interfaces.workflow.WorkerClasses +import info.nightscout.plugins.sync.R +import info.nightscout.interfaces.nsclient.StoreDataForDb +import info.nightscout.plugins.sync.nsShared.StoreDataForDbImpl import info.nightscout.plugins.sync.nsclientV3.NSClientV3Plugin import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventNSClientNewLog @@ -32,6 +33,7 @@ class LoadBgWorker( @Inject lateinit var context: Context @Inject lateinit var dateUtil: DateUtil @Inject lateinit var nsClientV3Plugin: NSClientV3Plugin + @Inject lateinit var workerClasses: WorkerClasses companion object { @@ -60,7 +62,7 @@ class LoadBgWorker( WorkManager.getInstance(context).beginUniqueWork( JOB_NAME, ExistingWorkPolicy.APPEND_OR_REPLACE, - OneTimeWorkRequest.Builder(NSClientSourcePlugin.NSClientSourceWorker::class.java).setInputData(dataWorkerStorage.storeInputData(sgvs)).build() + OneTimeWorkRequest.Builder(workerClasses.nsClientSourceWorker).setInputData(dataWorkerStorage.storeInputData(sgvs)).build() ).then(OneTimeWorkRequest.Builder(LoadBgWorker::class.java).build()).enqueue() } else { rxBus.send(EventNSClientNewLog("END", "No SGVs from ${dateUtil.dateAndTimeAndSecondsString(nsClientV3Plugin.lastFetched.collections.entries)}")) @@ -68,7 +70,7 @@ class LoadBgWorker( .beginUniqueWork( NSClientV3Plugin.JOB_NAME, ExistingWorkPolicy.APPEND_OR_REPLACE, - OneTimeWorkRequest.Builder(StoreDataForDb.StoreBgWorker::class.java).build() + OneTimeWorkRequest.Builder(StoreDataForDbImpl.StoreBgWorker::class.java).build() ) .then(OneTimeWorkRequest.Builder(LoadTreatmentsWorker::class.java).build()) .enqueue() @@ -83,7 +85,7 @@ class LoadBgWorker( .beginUniqueWork( NSClientV3Plugin.JOB_NAME, ExistingWorkPolicy.APPEND_OR_REPLACE, - OneTimeWorkRequest.Builder(StoreDataForDb.StoreBgWorker::class.java).build() + OneTimeWorkRequest.Builder(StoreDataForDbImpl.StoreBgWorker::class.java).build() ) .then(OneTimeWorkRequest.Builder(LoadTreatmentsWorker::class.java).build()) .enqueue() diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadDeviceStatusWorker.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadDeviceStatusWorker.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadDeviceStatusWorker.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadDeviceStatusWorker.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadLastModificationWorker.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadLastModificationWorker.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadLastModificationWorker.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadLastModificationWorker.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadStatusWorker.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadStatusWorker.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadStatusWorker.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadStatusWorker.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadTreatmentsWorker.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadTreatmentsWorker.kt similarity index 95% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadTreatmentsWorker.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadTreatmentsWorker.kt index f9df107d31..0e127c2374 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadTreatmentsWorker.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadTreatmentsWorker.kt @@ -9,7 +9,8 @@ import androidx.work.WorkerParameters import androidx.work.workDataOf import dagger.android.HasAndroidInjector import info.nightscout.core.utils.receivers.DataWorkerStorage -import info.nightscout.plugins.sync.nsShared.StoreDataForDb +import info.nightscout.interfaces.nsclient.StoreDataForDb +import info.nightscout.plugins.sync.nsShared.StoreDataForDbImpl import info.nightscout.plugins.sync.nsclientV3.NSClientV3Plugin import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventNSClientNewLog @@ -29,7 +30,7 @@ class LoadTreatmentsWorker( @Inject lateinit var context: Context @Inject lateinit var nsClientV3Plugin: NSClientV3Plugin @Inject lateinit var dateUtil: DateUtil - @Inject lateinit var storeDataForDb: StoreDataForDb + @Inject lateinit var storeDataForDb: StoreDataForDbImpl override fun doWork(): Result { var ret = Result.success() diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/ProcessTreatmentsWorker.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/ProcessTreatmentsWorker.kt similarity index 97% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/ProcessTreatmentsWorker.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/ProcessTreatmentsWorker.kt index 21b895c1ac..66ab09931f 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/ProcessTreatmentsWorker.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclientV3/workers/ProcessTreatmentsWorker.kt @@ -5,15 +5,16 @@ import androidx.work.Worker import androidx.work.WorkerParameters import androidx.work.workDataOf import dagger.android.HasAndroidInjector -import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.database.impl.AppRepository import info.nightscout.interfaces.Config import info.nightscout.interfaces.Constants import info.nightscout.interfaces.XDripBroadcast +import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.interfaces.plugin.ActivePlugin -import info.nightscout.plugins.R -import info.nightscout.plugins.sync.nsShared.StoreDataForDb +import info.nightscout.plugins.sync.R +import info.nightscout.interfaces.nsclient.StoreDataForDb +import info.nightscout.plugins.sync.nsShared.StoreDataForDbImpl import info.nightscout.plugins.sync.nsclientV3.extensions.toBolus import info.nightscout.plugins.sync.nsclientV3.extensions.toBolusCalculatorResult import info.nightscout.plugins.sync.nsclientV3.extensions.toCarbs @@ -57,7 +58,7 @@ class ProcessTreatmentsWorker( @Inject lateinit var rxBus: RxBus @Inject lateinit var uel: UserEntryLogger @Inject lateinit var xDripBroadcast: XDripBroadcast - @Inject lateinit var storeDataForDb: StoreDataForDb + @Inject lateinit var storeDataForDb: StoreDataForDbImpl override fun doWork(): Result { @Suppress("UNCHECKED_CAST") diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolFragment.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolFragment.kt similarity index 96% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolFragment.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolFragment.kt index 7f69a8170a..eb4eeef486 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolFragment.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolFragment.kt @@ -7,8 +7,8 @@ import android.view.ViewGroup import android.widget.ScrollView import dagger.android.support.DaggerFragment import info.nightscout.core.utils.fabric.FabricPrivacy -import info.nightscout.plugins.R -import info.nightscout.plugins.databinding.TidepoolFragmentBinding +import info.nightscout.plugins.sync.R +import info.nightscout.plugins.sync.databinding.TidepoolFragmentBinding import info.nightscout.plugins.sync.tidepool.comm.TidepoolUploader import info.nightscout.plugins.sync.tidepool.events.EventTidepoolDoUpload import info.nightscout.plugins.sync.tidepool.events.EventTidepoolResetData diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolPlugin.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolPlugin.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolPlugin.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolPlugin.kt index b39dca2a78..8f2fb46e86 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolPlugin.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/TidepoolPlugin.kt @@ -8,14 +8,14 @@ import dagger.android.HasAndroidInjector import info.nightscout.core.toast.showToastAdNotification import info.nightscout.core.ui.toast.ToastUtils import info.nightscout.core.utils.fabric.FabricPrivacy -import info.nightscout.core.utils.receivers.ReceiverStatusStore +import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.interfaces.Constants import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.sync.Sync import info.nightscout.interfaces.utils.HtmlHelper -import info.nightscout.plugins.R +import info.nightscout.plugins.sync.R import info.nightscout.plugins.sync.tidepool.comm.TidepoolUploader import info.nightscout.plugins.sync.tidepool.comm.UploadChunk import info.nightscout.plugins.sync.tidepool.events.EventTidepoolDoUpload diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/InfoInterceptor.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/InfoInterceptor.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/InfoInterceptor.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/InfoInterceptor.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/Session.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/Session.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/Session.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/Session.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolApiService.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolApiService.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolApiService.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolApiService.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolCallback.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolCallback.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolCallback.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolCallback.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolUploader.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolUploader.kt similarity index 99% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolUploader.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolUploader.kt index 9d92f10406..e63775a9d7 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolUploader.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/TidepoolUploader.kt @@ -5,7 +5,7 @@ import android.os.PowerManager import android.os.SystemClock import info.nightscout.core.ui.dialogs.OKDialog import info.nightscout.interfaces.plugin.ActivePlugin -import info.nightscout.plugins.R +import info.nightscout.plugins.sync.R import info.nightscout.plugins.sync.tidepool.events.EventTidepoolStatus import info.nightscout.plugins.sync.tidepool.messages.AuthReplyMessage import info.nightscout.plugins.sync.tidepool.messages.AuthRequestMessage diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/UploadChunk.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/UploadChunk.kt similarity index 99% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/UploadChunk.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/UploadChunk.kt index 54caaae213..c363cd98fc 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/comm/UploadChunk.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/comm/UploadChunk.kt @@ -5,7 +5,7 @@ import info.nightscout.database.entities.TemporaryBasal import info.nightscout.database.impl.AppRepository import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.plugins.R +import info.nightscout.plugins.sync.R import info.nightscout.plugins.sync.tidepool.elements.BasalElement import info.nightscout.plugins.sync.tidepool.elements.BaseElement import info.nightscout.plugins.sync.tidepool.elements.BloodGlucoseElement diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BasalElement.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BasalElement.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BasalElement.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BasalElement.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BaseElement.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BaseElement.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BaseElement.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BaseElement.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BloodGlucoseElement.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BloodGlucoseElement.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BloodGlucoseElement.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BloodGlucoseElement.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BolusElement.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BolusElement.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BolusElement.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/BolusElement.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/ProfileElement.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/ProfileElement.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/ProfileElement.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/ProfileElement.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/SensorGlucoseElement.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/SensorGlucoseElement.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/SensorGlucoseElement.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/SensorGlucoseElement.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/WizardElement.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/WizardElement.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/elements/WizardElement.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/elements/WizardElement.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolDoUpload.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolDoUpload.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolDoUpload.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolDoUpload.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolResetData.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolResetData.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolResetData.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolResetData.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolStatus.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolStatus.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolStatus.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolStatus.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolUpdateGUI.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolUpdateGUI.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolUpdateGUI.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/events/EventTidepoolUpdateGUI.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/AuthReplyMessage.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/AuthReplyMessage.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/AuthReplyMessage.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/AuthReplyMessage.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/AuthRequestMessage.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/AuthRequestMessage.kt similarity index 93% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/AuthRequestMessage.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/AuthRequestMessage.kt index 33428422de..f195d7bf71 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/AuthRequestMessage.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/AuthRequestMessage.kt @@ -1,6 +1,6 @@ package info.nightscout.plugins.sync.tidepool.messages -import info.nightscout.plugins.R +import info.nightscout.plugins.sync.R import info.nightscout.shared.sharedPreferences.SP import okhttp3.Credentials diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/BaseMessage.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/BaseMessage.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/BaseMessage.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/BaseMessage.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/CloseDatasetRequestMessage.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/CloseDatasetRequestMessage.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/CloseDatasetRequestMessage.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/CloseDatasetRequestMessage.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/DatasetReplyMessage.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/DatasetReplyMessage.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/DatasetReplyMessage.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/DatasetReplyMessage.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/OpenDatasetRequestMessage.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/OpenDatasetRequestMessage.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/OpenDatasetRequestMessage.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/OpenDatasetRequestMessage.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/UploadReplyMessage.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/UploadReplyMessage.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/messages/UploadReplyMessage.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/messages/UploadReplyMessage.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/utils/GsonInstance.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/utils/GsonInstance.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/utils/GsonInstance.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/utils/GsonInstance.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/utils/RateLimit.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/utils/RateLimit.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/sync/tidepool/utils/RateLimit.kt rename to plugins/sync/src/main/java/info/nightscout/plugins/sync/tidepool/utils/RateLimit.kt diff --git a/plugins/main/src/main/res/layout/ns_client_fragment.xml b/plugins/sync/src/main/res/layout/ns_client_fragment.xml similarity index 100% rename from plugins/main/src/main/res/layout/ns_client_fragment.xml rename to plugins/sync/src/main/res/layout/ns_client_fragment.xml diff --git a/plugins/main/src/main/res/layout/tidepool_fragment.xml b/plugins/sync/src/main/res/layout/tidepool_fragment.xml similarity index 100% rename from plugins/main/src/main/res/layout/tidepool_fragment.xml rename to plugins/sync/src/main/res/layout/tidepool_fragment.xml diff --git a/plugins/sync/src/main/res/values/strings.xml b/plugins/sync/src/main/res/values/strings.xml new file mode 100644 index 0000000000..666d569463 --- /dev/null +++ b/plugins/sync/src/main/res/values/strings.xml @@ -0,0 +1,146 @@ + + + + ns_temporary_target_last_sync + ns_glucose_value_last_sync + ns_food_last_sync + ns_therapy_event_last_sync + ns_bolus_calculator_result_last_synced_id + ns_carbs_last_synced_id + ns_bolus_last_synced_id + ns_device_status_last_synced_id + ns_temporary_basal_last_synced_id + ns_extended_bolus_last_synced_id + profile_switch_last_synced_id + ns_effective_profile_switch_last_synced_id + ns_offline_event_last_synced_id + ns_profile_store_last_synced_timestamp + ns_sync_slow + nsclient_token + key_ns_client_v3_last_modified + ns_cellular + ns_wifi + ns_wifi_ssids + ns_allow_roaming + ns_battery + ns_charging + + Use Cellular connection + Use WiFi connection + WiFi SSID + During charging + On battery + Connection settings + Allowed SSIDs (semicolon separated) + Allow connection in roaming + Create announcements from errors + Create announcements from carbs required alerts + Create Nightscout announcement for error dialogs and local alerts (also viewable in Careportal under Treatments) + Create Nightscout announcements for carbs required alerts + Synchronizes your data with Nightscout + Synchronizes your data with Nightscout using v3 API + Blocked by charging options + Blocked by connectivity options + Unsupported version of Nightscout + OAPS + UPLD + NSClient malfunction. Consider NS and NSClient restart. + + + ns_client_autoscroll + ns_client_paused + ns_log_app_started_event + + NSCLIENT has no write permission. Wrong API secret? + NSClientV3 + NSV3 + NSClient + NSCI + URL: + Autoscroll + Restart + NSClient + Nightscout URL + Enter Your Nightscout URL + NS API secret + NS API secret + Enter NS API secret (min 12 chars) + NS access token + NS access token + Access token generated on NS admin page (min 17 chars) + Deliver now + Clear queue + Show queue + Queue: + Status: + Clear log + Full synchronization + Full synchronization? It may take many hours and until finish you\'ll not see new data in NS. + Synchronization + ns_upload + Profiles, boluses, carbs, temporary basals are uploaded to NS + Upload data to NS + Receive profile store + Synchronize profiles from NS profile editor + Receive temporary targets + Accept temporary targets entered through NS or NSClient + Receive profile switches + Accept profile switches entered through NS or NSClient + Receive APS offline events + Accept APS Offline events entered through NS or NSClient + Receive TBR and EB + Accept TBR and EB entered through another instance + Receive insulin + Accept insulin entered through NS or NSClient (it\'s not delivered, only calculated towards IOB) + Receive carbs + Accept carbs entered through NS or NSClient + ns_receive_tbr_eb + Receive therapy events + Accept therapy events (cannula, insulin, battery change etc) entered through NS or NSClient + Receive/backfill CGM data + Accept CGM data from NS + Slow down uploads + Alarm options + Create notifications from NS alarms + Create notifications from NS announcements + Stale data threshold [min] + Urgent stale data threshold [min] + Log app start to NS + Enable broadcasts to other apps (like xDrip+). Do not enable if you have more than one instance of AAPS or AAPSClient installed! + Enable local Broadcasts. + Copy NS settings (if exists)? + + + tidepool_username + tidepool_password + tidepool_dev_servers + tidepool_test_login + tidepool_only_while_charging + tidepool_only_while_unmetered + tidepool_last_end + tidepool_upload_profile + tidepool_upload_tbr + tidepool_upload_cgm + tidepool_upload_bolus + tidepool_upload_bg + + Your Tidepool login user name, normally your email address + Login User Name + Your Tidepool login password + Login Password + Test Tidepool Login + If enabled, uploads will go to https://int-app.tidepool.org instead of the regular https://app.tidepool.org/ + Use Integration (test) servers + Tidepool + TDP + Uploads data to Tidepool + Upload CGM data + Upload treatments (insulin, carbs) + Upload temporary basals + Upload profile switches, temp targets + Upload BG tests + Remove all + Reset start + Upload now + + \ No newline at end of file diff --git a/plugins/main/src/main/res/xml/pref_ns_client.xml b/plugins/sync/src/main/res/xml/pref_ns_client.xml similarity index 100% rename from plugins/main/src/main/res/xml/pref_ns_client.xml rename to plugins/sync/src/main/res/xml/pref_ns_client.xml diff --git a/plugins/main/src/main/res/xml/pref_tidepool.xml b/plugins/sync/src/main/res/xml/pref_tidepool.xml similarity index 100% rename from plugins/main/src/main/res/xml/pref_tidepool.xml rename to plugins/sync/src/main/res/xml/pref_tidepool.xml diff --git a/settings.gradle b/settings.gradle index 2b2c70a1fc..e1966cd127 100644 --- a/settings.gradle +++ b/settings.gradle @@ -39,3 +39,4 @@ include ':pump:omnipod-dash' include ':pump:pump-common' include ':pump:pump-core' include ':pump:rileylink' +include ':plugins:sync'