diff --git a/app-wear-shared/shared/src/main/java/info/nightscout/rx/events/EventUpdateOverviewCalcProgress.kt b/app-wear-shared/shared/src/main/java/info/nightscout/rx/events/EventUpdateOverviewCalcProgress.kt new file mode 100644 index 0000000000..d1a2767701 --- /dev/null +++ b/app-wear-shared/shared/src/main/java/info/nightscout/rx/events/EventUpdateOverviewCalcProgress.kt @@ -0,0 +1,3 @@ +package info.nightscout.rx.events + +class EventUpdateOverviewCalcProgress(val from: String) : Event() \ No newline at end of file diff --git a/app-wear-shared/shared/src/main/java/info/nightscout/rx/events/EventUpdateOverviewGraph.kt b/app-wear-shared/shared/src/main/java/info/nightscout/rx/events/EventUpdateOverviewGraph.kt new file mode 100644 index 0000000000..93b77e2a93 --- /dev/null +++ b/app-wear-shared/shared/src/main/java/info/nightscout/rx/events/EventUpdateOverviewGraph.kt @@ -0,0 +1,3 @@ +package info.nightscout.rx.events + +class EventUpdateOverviewGraph(val from: String) : Event() \ No newline at end of file diff --git a/app-wear-shared/shared/src/main/java/info/nightscout/rx/events/EventUpdateOverviewIobCob.kt b/app-wear-shared/shared/src/main/java/info/nightscout/rx/events/EventUpdateOverviewIobCob.kt new file mode 100644 index 0000000000..d5ec8b197f --- /dev/null +++ b/app-wear-shared/shared/src/main/java/info/nightscout/rx/events/EventUpdateOverviewIobCob.kt @@ -0,0 +1,3 @@ +package info.nightscout.rx.events + +class EventUpdateOverviewIobCob(val from: String) : Event() \ No newline at end of file diff --git a/app-wear-shared/shared/src/main/java/info/nightscout/rx/events/EventUpdateOverviewSensitivity.kt b/app-wear-shared/shared/src/main/java/info/nightscout/rx/events/EventUpdateOverviewSensitivity.kt new file mode 100644 index 0000000000..16da11f566 --- /dev/null +++ b/app-wear-shared/shared/src/main/java/info/nightscout/rx/events/EventUpdateOverviewSensitivity.kt @@ -0,0 +1,3 @@ +package info.nightscout.rx.events + +class EventUpdateOverviewSensitivity(val from: String) : Event() \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 8871f0f1f6..805bcc4293 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -221,6 +221,7 @@ dependencies { implementation project(':pump:omnipod-common') implementation project(':pump:omnipod-eros') implementation project(':pump:omnipod-dash') + implementation project(':workflow') implementation fileTree(include: ['*.jar'], dir: 'libs') diff --git a/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt b/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt index ee073320fe..e956dbe90d 100644 --- a/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt +++ b/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt @@ -14,21 +14,21 @@ import dagger.android.HasAndroidInjector import dagger.android.support.DaggerAppCompatActivity import info.nightscout.androidaps.R import info.nightscout.androidaps.databinding.ActivityHistorybrowseBinding +import info.nightscout.core.events.EventIobCalculationProgress import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.core.workflow.CalculationWorkflow import info.nightscout.interfaces.Config +import info.nightscout.interfaces.overview.OverviewMenus import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.DefaultValueHelper -import info.nightscout.plugins.general.overview.OverviewMenus -import info.nightscout.plugins.general.overview.events.EventUpdateOverviewGraph import info.nightscout.plugins.general.overview.graphData.GraphData -import info.nightscout.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventAutosensCalculationFinished import info.nightscout.rx.events.EventCustomCalculationFinished import info.nightscout.rx.events.EventRefreshOverview import info.nightscout.rx.events.EventScale +import info.nightscout.rx.events.EventUpdateOverviewGraph import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.extensions.toVisibility 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 997874e3df..53ae37b9a7 100644 --- a/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt +++ b/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt @@ -35,6 +35,7 @@ import info.nightscout.rx.di.RxModule import info.nightscout.shared.di.SharedModule import info.nightscout.shared.impl.di.SharedImplModule import info.nightscout.ui.di.UiModule +import info.nightscout.workflow.di.WorkflowModule import javax.inject.Singleton @Singleton diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/CalculationWorkflowImpl.kt b/app/src/main/java/info/nightscout/androidaps/workflow/CalculationWorkflowImpl.kt index 834cabc6db..57253c8794 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/CalculationWorkflowImpl.kt +++ b/app/src/main/java/info/nightscout/androidaps/workflow/CalculationWorkflowImpl.kt @@ -19,8 +19,6 @@ import info.nightscout.core.workflow.CalculationWorkflow.Companion.MAIN_CALCULAT import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin -import info.nightscout.plugins.iob.iobCobCalculator.IobCobOref1Worker -import info.nightscout.plugins.iob.iobCobCalculator.IobCobOrefWorker import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.Event @@ -33,6 +31,20 @@ import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.utils.DateUtil +import info.nightscout.workflow.DummyWorker +import info.nightscout.workflow.InvokeLoopWorker +import info.nightscout.workflow.LoadBgDataWorker +import info.nightscout.workflow.PrepareBasalDataWorker +import info.nightscout.workflow.PrepareBgDataWorker +import info.nightscout.workflow.PrepareBucketedDataWorker +import info.nightscout.workflow.PrepareIobAutosensGraphDataWorker +import info.nightscout.workflow.PreparePredictionsWorker +import info.nightscout.workflow.PrepareTemporaryTargetDataWorker +import info.nightscout.workflow.PrepareTreatmentsDataWorker +import info.nightscout.workflow.UpdateGraphWorker +import info.nightscout.workflow.UpdateIobCobSensWorker +import info.nightscout.workflow.iob.IobCobOref1Worker +import info.nightscout.workflow.iob.IobCobOrefWorker import io.reactivex.rxjava3.disposables.CompositeDisposable import io.reactivex.rxjava3.kotlin.plusAssign import javax.inject.Inject diff --git a/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/events/EventIobCalculationProgress.kt b/core/core-main/src/main/java/info/nightscout/core/events/EventIobCalculationProgress.kt similarity index 79% rename from plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/events/EventIobCalculationProgress.kt rename to core/core-main/src/main/java/info/nightscout/core/events/EventIobCalculationProgress.kt index a21791fbea..c532aeaa21 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/events/EventIobCalculationProgress.kt +++ b/core/core-main/src/main/java/info/nightscout/core/events/EventIobCalculationProgress.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.iob.iobCobCalculator.events +package info.nightscout.core.events import info.nightscout.core.workflow.CalculationWorkflow import info.nightscout.rx.events.Event diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/overview/OverviewMenus.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/overview/OverviewMenus.kt new file mode 100644 index 0000000000..0129bcbe19 --- /dev/null +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/overview/OverviewMenus.kt @@ -0,0 +1,26 @@ +package info.nightscout.interfaces.overview + +import android.content.Context +import android.widget.ImageButton + +interface OverviewMenus { + enum class CharType { + PRE, + TREAT, + BAS, + ABS, + IOB, + COB, + DEV, + BGI, + SEN, + ACT, + DEVSLOPE + } + + val setting: List> + fun loadGraphConfig() + fun setupChartMenu(context: Context, chartButton: ImageButton) + fun enabledTypes(graph: Int): String + fun isEnabledIn(type: CharType): Int +} \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/di/OverviewModule.kt b/plugins/main/src/main/java/info/nightscout/plugins/di/OverviewModule.kt index b7f7337cca..a969da26bc 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/di/OverviewModule.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/di/OverviewModule.kt @@ -1,15 +1,22 @@ package info.nightscout.plugins.di +import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector +import info.nightscout.interfaces.overview.OverviewMenus import info.nightscout.plugins.general.overview.OverviewFragment +import info.nightscout.plugins.general.overview.OverviewMenusImpl import info.nightscout.plugins.general.overview.activities.QuickWizardListActivity import info.nightscout.plugins.general.overview.dialogs.EditQuickWizardDialog import info.nightscout.plugins.general.overview.graphData.GraphData import info.nightscout.plugins.general.overview.notifications.DismissNotificationService import info.nightscout.plugins.general.overview.notifications.NotificationWithAction -@Module +@Module( + includes = [ + OverviewModule.Bindings::class + ] +) @Suppress("unused") abstract class OverviewModule { @@ -19,4 +26,10 @@ abstract class OverviewModule { @ContributesAndroidInjector abstract fun contributesOverviewFragment(): OverviewFragment @ContributesAndroidInjector abstract fun notificationWithActionInjector(): NotificationWithAction @ContributesAndroidInjector abstract fun graphDataInjector(): GraphData + + @Module + interface Bindings { + + @Binds fun bindOverviewMenus(overviewMenusImpl: OverviewMenusImpl): OverviewMenus + } } \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewFragment.kt b/plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewFragment.kt index 04a99bde0e..f9718c624d 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewFragment.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewFragment.kt @@ -29,9 +29,9 @@ import dagger.android.HasAndroidInjector import dagger.android.support.DaggerFragment import info.nightscout.core.extensions.directionToIcon import info.nightscout.core.extensions.valueToUnitsString -import info.nightscout.core.iob.iobCobCalculator.GlucoseStatusProvider import info.nightscout.core.graph.OverviewData import info.nightscout.core.iob.displayText +import info.nightscout.core.iob.iobCobCalculator.GlucoseStatusProvider import info.nightscout.core.profile.ProfileSealed import info.nightscout.core.ui.UIRunnable import info.nightscout.core.ui.dialogs.OKDialog @@ -56,6 +56,7 @@ import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.interfaces.nsclient.NSSettingsStatus import info.nightscout.interfaces.nsclient.ProcessedDeviceStatusData +import info.nightscout.interfaces.overview.OverviewMenus import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.profile.DefaultValueHelper @@ -70,10 +71,6 @@ import info.nightscout.plugins.R import info.nightscout.plugins.aps.loop.events.EventNewOpenLoopNotification import info.nightscout.plugins.databinding.OverviewFragmentBinding import info.nightscout.plugins.general.overview.activities.QuickWizardListActivity -import info.nightscout.plugins.general.overview.events.EventUpdateOverviewCalcProgress -import info.nightscout.plugins.general.overview.events.EventUpdateOverviewGraph -import info.nightscout.plugins.general.overview.events.EventUpdateOverviewIobCob -import info.nightscout.plugins.general.overview.events.EventUpdateOverviewSensitivity import info.nightscout.plugins.general.overview.graphData.GraphData import info.nightscout.plugins.general.overview.notifications.NotificationStore import info.nightscout.plugins.general.overview.notifications.events.EventUpdateOverviewNotification @@ -94,6 +91,10 @@ import info.nightscout.rx.events.EventRefreshOverview import info.nightscout.rx.events.EventScale import info.nightscout.rx.events.EventTempBasalChange import info.nightscout.rx.events.EventTempTargetChange +import info.nightscout.rx.events.EventUpdateOverviewCalcProgress +import info.nightscout.rx.events.EventUpdateOverviewGraph +import info.nightscout.rx.events.EventUpdateOverviewIobCob +import info.nightscout.rx.events.EventUpdateOverviewSensitivity import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.weardata.EventData import info.nightscout.shared.extensions.runOnUiThread diff --git a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewMenus.kt b/plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewMenusImpl.kt similarity index 88% rename from plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewMenus.kt rename to plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewMenusImpl.kt index 1f0ef27102..c517c6c570 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewMenus.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewMenusImpl.kt @@ -14,6 +14,7 @@ import com.google.gson.Gson import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.interfaces.Config import info.nightscout.interfaces.aps.Loop +import info.nightscout.interfaces.overview.OverviewMenus import info.nightscout.plugins.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventRefreshOverview @@ -25,7 +26,7 @@ import javax.inject.Inject import javax.inject.Singleton @Singleton -class OverviewMenus @Inject constructor( +class OverviewMenusImpl @Inject constructor( private val aapsLogger: AAPSLogger, private val rh: ResourceHelper, private val sp: SP, @@ -33,9 +34,9 @@ class OverviewMenus @Inject constructor( private val config: Config, private val loop: Loop, private val fabricPrivacy: FabricPrivacy -) { +) : OverviewMenus { - enum class CharType(@StringRes val nameId: Int, @AttrRes val attrId: Int, @AttrRes val attrTextId: Int, val primary: Boolean, val secondary: Boolean, @StringRes val shortnameId: Int) { + enum class CharTypeData(@StringRes val nameId: Int, @AttrRes val attrId: Int, @AttrRes val attrTextId: Int, val primary: Boolean, val secondary: Boolean, @StringRes val shortnameId: Int) { PRE(R.string.overview_show_predictions, R.attr.predictionColor, R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.prediction_shortname), TREAT(R.string.overview_show_treatments, R.attr.cobColor, R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.treatments_shortname), BAS(R.string.overview_show_basals, R.attr.basal, R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.basal_shortname), @@ -55,9 +56,9 @@ class OverviewMenus @Inject constructor( const val SCALE_ID = 1001 } - fun enabledTypes(graph: Int): String { + override fun enabledTypes(graph: Int): String { val r = StringBuilder() - for (type in CharType.values()) if (_setting[graph][type.ordinal]) { + for (type in CharTypeData.values()) if (_setting[graph][type.ordinal]) { r.append(rh.gs(type.shortnameId)) r.append(" ") } @@ -66,7 +67,7 @@ class OverviewMenus @Inject constructor( private var _setting: MutableList> = ArrayList() - val setting: List> + override val setting: List> @Synchronized get() = _setting.toMutableList() // implicitly does a list copy @Synchronized @@ -77,23 +78,23 @@ class OverviewMenus @Inject constructor( } @Synchronized - fun loadGraphConfig() { + override fun loadGraphConfig() { val sts = sp.getString(R.string.key_graph_config, "") if (sts.isNotEmpty()) { _setting = Gson().fromJson(sts, Array>::class.java).toMutableList() // reset when new CharType added for (s in _setting) - if (s.size != CharType.values().size) { + if (s.size != OverviewMenus.CharType.values().size) { _setting = ArrayList() - _setting.add(Array(CharType.values().size) { true }) + _setting.add(Array(OverviewMenus.CharType.values().size) { true }) } } else { _setting = ArrayList() - _setting.add(Array(CharType.values().size) { true }) + _setting.add(Array(OverviewMenus.CharType.values().size) { true }) } } - fun setupChartMenu(context: Context, chartButton: ImageButton) { + override fun setupChartMenu(context: Context, chartButton: ImageButton) { val settingsCopy = setting val numOfGraphs = settingsCopy.size // 1 main + x secondary @@ -120,12 +121,12 @@ class OverviewMenus @Inject constructor( dividerItem.isCheckable = true dividerItem.isChecked = true } - CharType.values().forEach { m -> + CharTypeData.values().forEach { m -> if (g == 0 && !m.primary) return@forEach if (g > 0 && !m.secondary) return@forEach var insert = true - if (m == CharType.PRE) insert = predictionsAvailable - if (m == CharType.DEVSLOPE) insert = config.isDev() + if (m == CharTypeData.PRE) insert = predictionsAvailable + if (m == CharTypeData.DEVSLOPE) insert = config.isDev() if (used.contains(m.ordinal)) insert = false for (g2 in g + 1 until numOfGraphs) { if (settingsCopy[g2][m.ordinal]) insert = false @@ -165,7 +166,7 @@ class OverviewMenus @Inject constructor( it.itemId == numOfGraphs -> { // add new empty - _setting.add(Array(CharType.values().size) { false }) + _setting.add(Array(CharTypeData.values().size) { false }) } it.itemId < 100 -> { @@ -194,7 +195,7 @@ class OverviewMenus @Inject constructor( } } - fun isEnabledIn(type: CharType): Int { + override fun isEnabledIn(type: OverviewMenus.CharType): Int { val settingsCopy = setting val numOfGraphs = settingsCopy.size // 1 main + x secondary for (g in 0 until numOfGraphs) if (settingsCopy[g][type.ordinal]) return g diff --git a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewPlugin.kt index 77c7426a82..666e72a3f5 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/general/overview/OverviewPlugin.kt @@ -5,31 +5,32 @@ import androidx.annotation.StringRes import androidx.preference.PreferenceFragmentCompat import androidx.preference.SwitchPreference import dagger.android.HasAndroidInjector +import info.nightscout.core.events.EventIobCalculationProgress +import info.nightscout.core.events.EventNewNotification import info.nightscout.core.extensions.putDouble import info.nightscout.core.extensions.putInt import info.nightscout.core.extensions.putString import info.nightscout.core.extensions.storeDouble import info.nightscout.core.extensions.storeInt import info.nightscout.core.extensions.storeString -import info.nightscout.core.events.EventNewNotification import info.nightscout.core.graph.OverviewData import info.nightscout.core.ui.dialogs.OKDialog import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.interfaces.Config import info.nightscout.interfaces.Overview +import info.nightscout.interfaces.overview.OverviewMenus import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.plugins.R -import info.nightscout.plugins.general.overview.events.EventUpdateOverviewCalcProgress import info.nightscout.plugins.general.overview.notifications.NotificationStore import info.nightscout.plugins.general.overview.notifications.NotificationWithAction import info.nightscout.plugins.general.overview.notifications.events.EventUpdateOverviewNotification -import info.nightscout.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventDismissNotification import info.nightscout.rx.events.EventPumpStatusChanged +import info.nightscout.rx.events.EventUpdateOverviewCalcProgress import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP diff --git a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/events/EventUpdateOverviewCalcProgress.kt b/plugins/main/src/main/java/info/nightscout/plugins/general/overview/events/EventUpdateOverviewCalcProgress.kt deleted file mode 100644 index cb4aabd394..0000000000 --- a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/events/EventUpdateOverviewCalcProgress.kt +++ /dev/null @@ -1,5 +0,0 @@ -package info.nightscout.plugins.general.overview.events - -import info.nightscout.rx.events.Event - -class EventUpdateOverviewCalcProgress(val from: String) : Event() \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/events/EventUpdateOverviewGraph.kt b/plugins/main/src/main/java/info/nightscout/plugins/general/overview/events/EventUpdateOverviewGraph.kt deleted file mode 100644 index 37bcf5d7ea..0000000000 --- a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/events/EventUpdateOverviewGraph.kt +++ /dev/null @@ -1,5 +0,0 @@ -package info.nightscout.plugins.general.overview.events - -import info.nightscout.rx.events.Event - -class EventUpdateOverviewGraph(val from: String) : Event() \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/events/EventUpdateOverviewIobCob.kt b/plugins/main/src/main/java/info/nightscout/plugins/general/overview/events/EventUpdateOverviewIobCob.kt deleted file mode 100644 index dd0a2ff82e..0000000000 --- a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/events/EventUpdateOverviewIobCob.kt +++ /dev/null @@ -1,5 +0,0 @@ -package info.nightscout.plugins.general.overview.events - -import info.nightscout.rx.events.Event - -class EventUpdateOverviewIobCob(val from: String) : Event() \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/events/EventUpdateOverviewSensitivity.kt b/plugins/main/src/main/java/info/nightscout/plugins/general/overview/events/EventUpdateOverviewSensitivity.kt deleted file mode 100644 index d9490a803a..0000000000 --- a/plugins/main/src/main/java/info/nightscout/plugins/general/overview/events/EventUpdateOverviewSensitivity.kt +++ /dev/null @@ -1,5 +0,0 @@ -package info.nightscout.plugins.general.overview.events - -import info.nightscout.rx.events.Event - -class EventUpdateOverviewSensitivity(val from: String) : Event() \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index e1966cd127..0421d19e41 100644 --- a/settings.gradle +++ b/settings.gradle @@ -40,3 +40,4 @@ include ':pump:pump-common' include ':pump:pump-core' include ':pump:rileylink' include ':plugins:sync' +include ':workflow' diff --git a/workflow/.gitignore b/workflow/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/workflow/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/workflow/build.gradle b/workflow/build.gradle new file mode 100644 index 0000000000..d19ca54a90 --- /dev/null +++ b/workflow/build.gradle @@ -0,0 +1,29 @@ +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/jacoco_global.gradle" + +android { + namespace 'info.nightscout.workflow' +} + +dependencies { + implementation project(':core:libraries') + implementation project(':core:graphview') + implementation project(':app-wear-shared:shared') + implementation project(':database:entities') + implementation project(':database:impl') + implementation project(':core:core-main') + implementation project(':core:interfaces') + implementation project(':core:graph') + implementation project(':core:ui') + implementation project(':core:utils') +} \ No newline at end of file diff --git a/workflow/consumer-rules.pro b/workflow/consumer-rules.pro new file mode 100644 index 0000000000..e69de29bb2 diff --git a/workflow/proguard-rules.pro b/workflow/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/workflow/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/workflow/src/main/AndroidManifest.xml b/workflow/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..44008a4332 --- /dev/null +++ b/workflow/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/DummyWorker.kt b/workflow/src/main/java/info/nightscout/workflow/DummyWorker.kt similarity index 85% rename from app/src/main/java/info/nightscout/androidaps/workflow/DummyWorker.kt rename to workflow/src/main/java/info/nightscout/workflow/DummyWorker.kt index fd30c54dc6..b53496eb57 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/DummyWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/DummyWorker.kt @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.workflow +package info.nightscout.workflow import android.content.Context import androidx.work.Worker diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/InvokeLoopWorker.kt b/workflow/src/main/java/info/nightscout/workflow/InvokeLoopWorker.kt similarity index 97% rename from app/src/main/java/info/nightscout/androidaps/workflow/InvokeLoopWorker.kt rename to workflow/src/main/java/info/nightscout/workflow/InvokeLoopWorker.kt index 6a2ffe70e9..35fa137425 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/InvokeLoopWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/InvokeLoopWorker.kt @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.workflow +package info.nightscout.workflow import android.content.Context import androidx.work.Worker diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/LoadBgDataWorker.kt b/workflow/src/main/java/info/nightscout/workflow/LoadBgDataWorker.kt similarity index 98% rename from app/src/main/java/info/nightscout/androidaps/workflow/LoadBgDataWorker.kt rename to workflow/src/main/java/info/nightscout/workflow/LoadBgDataWorker.kt index 3db1fedb8a..03edabdc2d 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/LoadBgDataWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/LoadBgDataWorker.kt @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.workflow +package info.nightscout.workflow import android.content.Context import androidx.work.Worker diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareBasalDataWorker.kt b/workflow/src/main/java/info/nightscout/workflow/PrepareBasalDataWorker.kt similarity index 97% rename from app/src/main/java/info/nightscout/androidaps/workflow/PrepareBasalDataWorker.kt rename to workflow/src/main/java/info/nightscout/workflow/PrepareBasalDataWorker.kt index c2b6655434..9b3ad921b1 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareBasalDataWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/PrepareBasalDataWorker.kt @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.workflow +package info.nightscout.workflow import android.content.Context import android.graphics.DashPathEffect @@ -8,14 +8,13 @@ import androidx.work.WorkerParameters import androidx.work.workDataOf import com.jjoe64.graphview.series.LineGraphSeries import dagger.android.HasAndroidInjector -import info.nightscout.androidaps.R +import info.nightscout.core.events.EventIobCalculationProgress import info.nightscout.core.graph.OverviewData import info.nightscout.core.graph.data.ScaledDataPoint import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.core.workflow.CalculationWorkflow import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress import info.nightscout.rx.bus.RxBus import info.nightscout.shared.interfaces.ResourceHelper import javax.inject.Inject diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareBgDataWorker.kt b/workflow/src/main/java/info/nightscout/workflow/PrepareBgDataWorker.kt similarity index 98% rename from app/src/main/java/info/nightscout/androidaps/workflow/PrepareBgDataWorker.kt rename to workflow/src/main/java/info/nightscout/workflow/PrepareBgDataWorker.kt index 8b0952e7da..83b4efbb35 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareBgDataWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/PrepareBgDataWorker.kt @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.workflow +package info.nightscout.workflow import android.content.Context import androidx.work.Worker diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareBucketedDataWorker.kt b/workflow/src/main/java/info/nightscout/workflow/PrepareBucketedDataWorker.kt similarity index 98% rename from app/src/main/java/info/nightscout/androidaps/workflow/PrepareBucketedDataWorker.kt rename to workflow/src/main/java/info/nightscout/workflow/PrepareBucketedDataWorker.kt index 3a058c93ff..4a71703d1a 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareBucketedDataWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/PrepareBucketedDataWorker.kt @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.workflow +package info.nightscout.workflow import android.content.Context import androidx.work.Worker diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareIobAutosensGraphDataWorker.kt b/workflow/src/main/java/info/nightscout/workflow/PrepareIobAutosensGraphDataWorker.kt similarity index 98% rename from app/src/main/java/info/nightscout/androidaps/workflow/PrepareIobAutosensGraphDataWorker.kt rename to workflow/src/main/java/info/nightscout/workflow/PrepareIobAutosensGraphDataWorker.kt index 2f537386d0..ef9ed49633 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareIobAutosensGraphDataWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/PrepareIobAutosensGraphDataWorker.kt @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.workflow +package info.nightscout.workflow import android.content.Context import android.graphics.DashPathEffect @@ -9,8 +9,7 @@ import androidx.work.workDataOf import com.jjoe64.graphview.series.BarGraphSeries import com.jjoe64.graphview.series.LineGraphSeries import dagger.android.HasAndroidInjector -import info.nightscout.androidaps.R -import info.nightscout.core.iob.iobCobCalculator.data.AutosensDataObject +import info.nightscout.core.events.EventIobCalculationProgress import info.nightscout.core.graph.OverviewData import info.nightscout.core.graph.data.DataPointWithLabelInterface import info.nightscout.core.graph.data.DeviationDataPoint @@ -20,6 +19,7 @@ import info.nightscout.core.graph.data.Scale import info.nightscout.core.graph.data.ScaledDataPoint import info.nightscout.core.iob.combine import info.nightscout.core.iob.copy +import info.nightscout.core.iob.iobCobCalculator.data.AutosensDataObject import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.core.workflow.CalculationWorkflow import info.nightscout.database.ValueWrapper @@ -28,10 +28,9 @@ import info.nightscout.interfaces.aps.AutosensResult import info.nightscout.interfaces.aps.SMBDefaults import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.iob.IobTotal +import info.nightscout.interfaces.overview.OverviewMenus import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.utils.DecimalFormatter -import info.nightscout.plugins.general.overview.OverviewMenus -import info.nightscout.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress import info.nightscout.rx.bus.RxBus import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/PreparePredictionsWorker.kt b/workflow/src/main/java/info/nightscout/workflow/PreparePredictionsWorker.kt similarity index 97% rename from app/src/main/java/info/nightscout/androidaps/workflow/PreparePredictionsWorker.kt rename to workflow/src/main/java/info/nightscout/workflow/PreparePredictionsWorker.kt index fb9a7faabc..61dd6958b5 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/PreparePredictionsWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/PreparePredictionsWorker.kt @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.workflow +package info.nightscout.workflow import android.content.Context import androidx.work.Worker @@ -14,9 +14,9 @@ import info.nightscout.database.impl.AppRepository import info.nightscout.interfaces.Config import info.nightscout.interfaces.aps.Loop import info.nightscout.interfaces.nsclient.ProcessedDeviceStatusData +import info.nightscout.interfaces.overview.OverviewMenus import info.nightscout.interfaces.profile.DefaultValueHelper import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.plugins.general.overview.OverviewMenus import info.nightscout.rx.bus.RxBus import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.utils.T diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareTemporaryTargetDataWorker.kt b/workflow/src/main/java/info/nightscout/workflow/PrepareTemporaryTargetDataWorker.kt similarity index 95% rename from app/src/main/java/info/nightscout/androidaps/workflow/PrepareTemporaryTargetDataWorker.kt rename to workflow/src/main/java/info/nightscout/workflow/PrepareTemporaryTargetDataWorker.kt index fe06c05f94..cd402b458a 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareTemporaryTargetDataWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/PrepareTemporaryTargetDataWorker.kt @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.workflow +package info.nightscout.workflow import android.content.Context import androidx.work.Worker @@ -7,7 +7,7 @@ import androidx.work.workDataOf import com.jjoe64.graphview.series.DataPoint import com.jjoe64.graphview.series.LineGraphSeries import dagger.android.HasAndroidInjector -import info.nightscout.androidaps.R +import info.nightscout.core.events.EventIobCalculationProgress import info.nightscout.core.extensions.target import info.nightscout.core.graph.OverviewData import info.nightscout.core.utils.receivers.DataWorkerStorage @@ -17,7 +17,6 @@ import info.nightscout.database.impl.AppRepository import info.nightscout.interfaces.aps.Loop import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress import info.nightscout.rx.bus.RxBus import info.nightscout.shared.interfaces.ResourceHelper import javax.inject.Inject @@ -34,7 +33,7 @@ class PrepareTemporaryTargetDataWorker( @Inject lateinit var repository: AppRepository @Inject lateinit var loop: Loop @Inject lateinit var rxBus: RxBus - var ctx: Context + private var ctx: Context init { (context.applicationContext as HasAndroidInjector).androidInjector().inject(this) ctx = rh.getThemedCtx(context) diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareTreatmentsDataWorker.kt b/workflow/src/main/java/info/nightscout/workflow/PrepareTreatmentsDataWorker.kt similarity index 98% rename from app/src/main/java/info/nightscout/androidaps/workflow/PrepareTreatmentsDataWorker.kt rename to workflow/src/main/java/info/nightscout/workflow/PrepareTreatmentsDataWorker.kt index 6458cf9e1a..ddd0e367c7 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareTreatmentsDataWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/PrepareTreatmentsDataWorker.kt @@ -1,10 +1,11 @@ -package info.nightscout.androidaps.workflow +package info.nightscout.workflow import android.content.Context import androidx.work.Worker import androidx.work.WorkerParameters import androidx.work.workDataOf import dagger.android.HasAndroidInjector +import info.nightscout.core.events.EventIobCalculationProgress import info.nightscout.core.graph.OverviewData import info.nightscout.core.graph.data.BolusDataPoint import info.nightscout.core.graph.data.CarbsDataPoint @@ -25,7 +26,6 @@ import info.nightscout.interfaces.profile.DefaultValueHelper import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.utils.Round -import info.nightscout.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress import info.nightscout.rx.bus.RxBus import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.utils.T diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/UpdateGraphWorker.kt b/workflow/src/main/java/info/nightscout/workflow/UpdateGraphWorker.kt similarity index 67% rename from app/src/main/java/info/nightscout/androidaps/workflow/UpdateGraphWorker.kt rename to workflow/src/main/java/info/nightscout/workflow/UpdateGraphWorker.kt index 5d23876f9c..89675364f4 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/UpdateGraphWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/UpdateGraphWorker.kt @@ -1,14 +1,14 @@ -package info.nightscout.androidaps.workflow +package info.nightscout.workflow import android.content.Context import androidx.work.Worker import androidx.work.WorkerParameters import dagger.android.HasAndroidInjector +import info.nightscout.core.events.EventIobCalculationProgress import info.nightscout.core.workflow.CalculationWorkflow -import info.nightscout.plugins.general.overview.OverviewPlugin -import info.nightscout.plugins.general.overview.events.EventUpdateOverviewGraph -import info.nightscout.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress +import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.rx.bus.RxBus +import info.nightscout.rx.events.EventUpdateOverviewGraph import javax.inject.Inject class UpdateGraphWorker( @@ -17,7 +17,7 @@ class UpdateGraphWorker( ) : Worker(context, params) { @Inject lateinit var rxBus: RxBus - @Inject lateinit var overviewPlugin: OverviewPlugin + @Inject lateinit var activePlugin: ActivePlugin init { (context.applicationContext as HasAndroidInjector).androidInjector().inject(this) @@ -25,7 +25,7 @@ class UpdateGraphWorker( override fun doWork(): Result { if (inputData.getString(CalculationWorkflow.JOB) == CalculationWorkflow.MAIN_CALCULATION) - overviewPlugin.overviewBus.send(EventUpdateOverviewGraph("UpdateGraphWorker")) + activePlugin.activeOverview.overviewBus.send(EventUpdateOverviewGraph("UpdateGraphWorker")) else rxBus.send(EventUpdateOverviewGraph("UpdateGraphWorker")) rxBus.send(EventIobCalculationProgress(CalculationWorkflow.ProgressData.DRAW, 100, null)) diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/UpdateIobCobSensWorker.kt b/workflow/src/main/java/info/nightscout/workflow/UpdateIobCobSensWorker.kt similarity index 50% rename from app/src/main/java/info/nightscout/androidaps/workflow/UpdateIobCobSensWorker.kt rename to workflow/src/main/java/info/nightscout/workflow/UpdateIobCobSensWorker.kt index 4beaf02e4b..435635c485 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/UpdateIobCobSensWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/UpdateIobCobSensWorker.kt @@ -1,13 +1,13 @@ -package info.nightscout.androidaps.workflow +package info.nightscout.workflow import android.content.Context import androidx.work.Worker import androidx.work.WorkerParameters import dagger.android.HasAndroidInjector -import info.nightscout.plugins.general.overview.OverviewPlugin -import info.nightscout.plugins.general.overview.events.EventUpdateOverviewIobCob -import info.nightscout.plugins.general.overview.events.EventUpdateOverviewSensitivity +import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.rx.bus.RxBus +import info.nightscout.rx.events.EventUpdateOverviewIobCob +import info.nightscout.rx.events.EventUpdateOverviewSensitivity import javax.inject.Inject class UpdateIobCobSensWorker( @@ -16,15 +16,15 @@ class UpdateIobCobSensWorker( ) : Worker(context, params) { @Inject lateinit var rxBus: RxBus - @Inject lateinit var overviewPlugin: OverviewPlugin + @Inject lateinit var activePlugin: ActivePlugin init { (context.applicationContext as HasAndroidInjector).androidInjector().inject(this) } override fun doWork(): Result { - overviewPlugin.overviewBus.send(EventUpdateOverviewIobCob("UpdateIobCobSensWorker")) - overviewPlugin.overviewBus.send(EventUpdateOverviewSensitivity("UpdateIobCobSensWorker")) + activePlugin.activeOverview.overviewBus.send(EventUpdateOverviewIobCob("UpdateIobCobSensWorker")) + activePlugin.activeOverview.overviewBus.send(EventUpdateOverviewSensitivity("UpdateIobCobSensWorker")) return Result.success() } } \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/di/WorkflowModule.kt b/workflow/src/main/java/info/nightscout/workflow/di/WorkflowModule.kt similarity index 61% rename from app/src/main/java/info/nightscout/androidaps/di/WorkflowModule.kt rename to workflow/src/main/java/info/nightscout/workflow/di/WorkflowModule.kt index c74036f05a..bb43e345bc 100644 --- a/app/src/main/java/info/nightscout/androidaps/di/WorkflowModule.kt +++ b/workflow/src/main/java/info/nightscout/workflow/di/WorkflowModule.kt @@ -1,20 +1,20 @@ -package info.nightscout.androidaps.di +package info.nightscout.workflow.di import dagger.Module import dagger.android.ContributesAndroidInjector -import info.nightscout.androidaps.workflow.InvokeLoopWorker -import info.nightscout.androidaps.workflow.LoadBgDataWorker -import info.nightscout.androidaps.workflow.PrepareBasalDataWorker -import info.nightscout.androidaps.workflow.PrepareBgDataWorker -import info.nightscout.androidaps.workflow.PrepareBucketedDataWorker -import info.nightscout.androidaps.workflow.PrepareIobAutosensGraphDataWorker -import info.nightscout.androidaps.workflow.PreparePredictionsWorker -import info.nightscout.androidaps.workflow.PrepareTemporaryTargetDataWorker -import info.nightscout.androidaps.workflow.PrepareTreatmentsDataWorker -import info.nightscout.androidaps.workflow.UpdateGraphWorker -import info.nightscout.androidaps.workflow.UpdateIobCobSensWorker -import info.nightscout.plugins.iob.iobCobCalculator.IobCobOref1Worker -import info.nightscout.plugins.iob.iobCobCalculator.IobCobOrefWorker +import info.nightscout.workflow.InvokeLoopWorker +import info.nightscout.workflow.LoadBgDataWorker +import info.nightscout.workflow.PrepareBasalDataWorker +import info.nightscout.workflow.PrepareBgDataWorker +import info.nightscout.workflow.PrepareBucketedDataWorker +import info.nightscout.workflow.PrepareIobAutosensGraphDataWorker +import info.nightscout.workflow.PreparePredictionsWorker +import info.nightscout.workflow.PrepareTemporaryTargetDataWorker +import info.nightscout.workflow.PrepareTreatmentsDataWorker +import info.nightscout.workflow.UpdateGraphWorker +import info.nightscout.workflow.UpdateIobCobSensWorker +import info.nightscout.workflow.iob.IobCobOref1Worker +import info.nightscout.workflow.iob.IobCobOrefWorker @Module @Suppress("unused") diff --git a/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/CarbsInPastExtension.kt b/workflow/src/main/java/info/nightscout/workflow/iob/CarbsInPastExtension.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/CarbsInPastExtension.kt rename to workflow/src/main/java/info/nightscout/workflow/iob/CarbsInPastExtension.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobOref1Worker.kt b/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOref1Worker.kt similarity index 88% rename from plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobOref1Worker.kt rename to workflow/src/main/java/info/nightscout/workflow/iob/IobCobOref1Worker.kt index 2fd68b9d69..01f3a40523 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobOref1Worker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOref1Worker.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.iob.iobCobCalculator +package info.nightscout.workflow.iob import android.content.Context import android.os.SystemClock @@ -6,9 +6,9 @@ import androidx.work.Worker import androidx.work.WorkerParameters import androidx.work.workDataOf import dagger.android.HasAndroidInjector +import info.nightscout.core.events.EventIobCalculationProgress import info.nightscout.core.extensions.target import info.nightscout.core.iob.iobCobCalculator.data.AutosensDataObject -import info.nightscout.core.events.EventNewNotification import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.core.workflow.CalculationWorkflow @@ -19,13 +19,11 @@ import info.nightscout.interfaces.Constants import info.nightscout.interfaces.aps.AutosensData import info.nightscout.interfaces.aps.SMBDefaults import info.nightscout.interfaces.iob.IobCobCalculator -import info.nightscout.interfaces.notifications.Notification import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.profiling.Profiler import info.nightscout.interfaces.utils.DecimalFormatter -import info.nightscout.plugins.R -import info.nightscout.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress +import info.nightscout.plugins.iob.iobCobCalculator.fromCarbs import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.Event import info.nightscout.rx.events.EventAutosensCalculationFinished @@ -35,6 +33,7 @@ import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil import info.nightscout.shared.utils.T +import info.nightscout.workflow.R import java.util.Calendar import java.util.GregorianCalendar import javax.inject.Inject @@ -155,19 +154,21 @@ class IobCobOref1Worker( val initialIndex = autosensDataTable.indexOfKey(hourAgoData.time) aapsLogger.debug(LTag.AUTOSENS, { ">>>>> bucketed_data.size()=" + bucketedData.size + " i=" + i + " hourAgoData=" + hourAgoData.toString() }) var past = 1 - try { +// try { while (past < 12) { val ad = autosensDataTable.valueAt(initialIndex + past) aapsLogger.debug(LTag.AUTOSENS, { ">>>>> past=" + past + " ad=" + ad?.toString() }) - if (ad == null) { - aapsLogger.debug(LTag.AUTOSENS, {autosensDataTable.toString()}) - aapsLogger.debug(LTag.AUTOSENS, {bucketedData.toString()}) - //aapsLogger.debug(LTag.AUTOSENS, iobCobCalculatorPlugin.getBgReadingsDataTable().toString()) - val notification = Notification(Notification.SEND_LOGFILES, rh.gs(R.string.send_logfiles), Notification.LOW) - rxBus.send(EventNewNotification(notification)) - sp.putBoolean("log_AUTOSENS", true) - break - } + /* + if (ad == null) { + aapsLogger.debug(LTag.AUTOSENS, {autosensDataTable.toString()}) + aapsLogger.debug(LTag.AUTOSENS, {bucketedData.toString()}) + //aapsLogger.debug(LTag.AUTOSENS, iobCobCalculatorPlugin.getBgReadingsDataTable().toString()) + val notification = Notification(Notification.SEND_LOGFILES, rh.gs(R.string.send_logfiles), Notification.LOW) + rxBus.send(EventNewNotification(notification)) + sp.putBoolean("log_AUTOSENS", true) + break + } + */ // let it here crash on NPE to get more data as i cannot reproduce this bug val deviationSlope = (ad.avgDeviation - avgDeviation) / (ad.time - bgTime) * 1000 * 60 * 5 if (ad.avgDeviation > maxDeviation) { @@ -180,17 +181,17 @@ class IobCobOref1Worker( } past++ } - } catch (e: Exception) { - aapsLogger.error("Unhandled exception", e) - fabricPrivacy.logException(e) - aapsLogger.debug(autosensDataTable.toString()) - aapsLogger.debug(bucketedData.toString()) - //aapsLogger.debug(iobCobCalculatorPlugin.getBgReadingsDataTable().toString()) - val notification = Notification(Notification.SEND_LOGFILES, rh.gs(R.string.send_logfiles), Notification.LOW) - rxBus.send(EventNewNotification(notification)) - sp.putBoolean("log_AUTOSENS", true) - break - } + // } catch (e: Exception) { + // aapsLogger.error("Unhandled exception", e) + // fabricPrivacy.logException(e) + // aapsLogger.debug(autosensDataTable.toString()) + // aapsLogger.debug(bucketedData.toString()) + // //aapsLogger.debug(iobCobCalculatorPlugin.getBgReadingsDataTable().toString()) + // val notification = Notification(Notification.SEND_LOGFILES, rh.gs(R.string.send_logfiles), Notification.LOW) + // rxBus.send(EventNewNotification(notification)) + // sp.putBoolean("log_AUTOSENS", true) + // break + // } } else { aapsLogger.debug(LTag.AUTOSENS, ">>>>> bucketed_data.size()=" + bucketedData.size + " i=" + i + " hourAgoData=" + "null") } diff --git a/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobOrefWorker.kt b/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOrefWorker.kt similarity index 88% rename from plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobOrefWorker.kt rename to workflow/src/main/java/info/nightscout/workflow/iob/IobCobOrefWorker.kt index 4fdaae7400..6db96c371f 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobOrefWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOrefWorker.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.iob.iobCobCalculator +package info.nightscout.workflow.iob import android.content.Context import android.os.SystemClock @@ -6,8 +6,8 @@ import androidx.work.Worker import androidx.work.WorkerParameters import androidx.work.workDataOf import dagger.android.HasAndroidInjector +import info.nightscout.core.events.EventIobCalculationProgress import info.nightscout.core.iob.iobCobCalculator.data.AutosensDataObject -import info.nightscout.core.events.EventNewNotification import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.core.workflow.CalculationWorkflow @@ -17,13 +17,11 @@ import info.nightscout.interfaces.Constants import info.nightscout.interfaces.aps.AutosensData import info.nightscout.interfaces.aps.SMBDefaults import info.nightscout.interfaces.iob.IobCobCalculator -import info.nightscout.interfaces.notifications.Notification import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.profiling.Profiler import info.nightscout.interfaces.utils.DecimalFormatter -import info.nightscout.plugins.R -import info.nightscout.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress +import info.nightscout.plugins.iob.iobCobCalculator.fromCarbs import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.Event import info.nightscout.rx.events.EventAutosensCalculationFinished @@ -33,6 +31,7 @@ import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil import info.nightscout.shared.utils.T +import info.nightscout.workflow.R import javax.inject.Inject import kotlin.math.abs import kotlin.math.max @@ -150,19 +149,19 @@ class IobCobOrefWorker @Inject internal constructor( val initialIndex = autosensDataTable.indexOfKey(hourAgoData.time) aapsLogger.debug(LTag.AUTOSENS, ">>>>> bucketed_data.size()=" + bucketedData.size + " i=" + i + " hourAgoData=" + hourAgoData.toString()) var past = 1 - try { + // try { while (past < 12) { val ad = autosensDataTable.valueAt(initialIndex + past) aapsLogger.debug(LTag.AUTOSENS, ">>>>> past=" + past + " ad=" + ad?.toString()) - if (ad == null) { - aapsLogger.debug(LTag.AUTOSENS, autosensDataTable.toString()) - aapsLogger.debug(LTag.AUTOSENS, bucketedData.toString()) - //aapsLogger.debug(LTag.AUTOSENS, data.iobCobCalculatorPlugin.getBgReadingsDataTable().toString()) - val notification = Notification(Notification.SEND_LOGFILES, rh.gs(R.string.send_logfiles), Notification.LOW) - rxBus.send(EventNewNotification(notification)) - sp.putBoolean("log_AUTOSENS", true) - break - } + // if (ad == null) { + // aapsLogger.debug(LTag.AUTOSENS, autosensDataTable.toString()) + // aapsLogger.debug(LTag.AUTOSENS, bucketedData.toString()) + // //aapsLogger.debug(LTag.AUTOSENS, data.iobCobCalculatorPlugin.getBgReadingsDataTable().toString()) + // val notification = Notification(Notification.SEND_LOGFILES, rh.gs(R.string.send_logfiles), Notification.LOW) + // rxBus.send(EventNewNotification(notification)) + // sp.putBoolean("log_AUTOSENS", true) + // break + // } // let it here crash on NPE to get more data as i cannot reproduce this bug val deviationSlope = (ad.avgDeviation - avgDeviation) / (ad.time - bgTime) * 1000 * 60 * 5 if (ad.avgDeviation > maxDeviation) { @@ -175,17 +174,17 @@ class IobCobOrefWorker @Inject internal constructor( } past++ } - } catch (e: Exception) { - aapsLogger.error("Unhandled exception", e) - fabricPrivacy.logException(e) - aapsLogger.debug(autosensDataTable.toString()) - aapsLogger.debug(bucketedData.toString()) - //aapsLogger.debug(data.iobCobCalculatorPlugin.getBgReadingsDataTable().toString()) - val notification = Notification(Notification.SEND_LOGFILES, rh.gs(R.string.send_logfiles), Notification.LOW) - rxBus.send(EventNewNotification(notification)) - sp.putBoolean("log_AUTOSENS", true) - break - } + // } catch (e: Exception) { + // aapsLogger.error("Unhandled exception", e) + // fabricPrivacy.logException(e) + // aapsLogger.debug(autosensDataTable.toString()) + // aapsLogger.debug(bucketedData.toString()) + // //aapsLogger.debug(data.iobCobCalculatorPlugin.getBgReadingsDataTable().toString()) + // val notification = Notification(Notification.SEND_LOGFILES, rh.gs(R.string.send_logfiles), Notification.LOW) + // rxBus.send(EventNewNotification(notification)) + // sp.putBoolean("log_AUTOSENS", true) + // break + // } } else { aapsLogger.debug(LTag.AUTOSENS, ">>>>> bucketed_data.size()=" + bucketedData.size + " i=" + i + " hourAgoData=" + "null") }