move profiles to interfaces
This commit is contained in:
parent
cca40b9606
commit
c31bfc7c23
|
@ -6,7 +6,6 @@ import info.nightscout.androidaps.R
|
||||||
import info.nightscout.androidaps.interfaces.APS
|
import info.nightscout.androidaps.interfaces.APS
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.BgSource
|
import info.nightscout.androidaps.interfaces.BgSource
|
||||||
import info.nightscout.androidaps.interfaces.ProfileSource
|
|
||||||
import info.nightscout.androidaps.interfaces.Pump
|
import info.nightscout.androidaps.interfaces.Pump
|
||||||
import info.nightscout.androidaps.interfaces.PumpSync
|
import info.nightscout.androidaps.interfaces.PumpSync
|
||||||
import info.nightscout.androidaps.interfaces.Sensitivity
|
import info.nightscout.androidaps.interfaces.Sensitivity
|
||||||
|
@ -21,6 +20,7 @@ import info.nightscout.interfaces.insulin.Insulin
|
||||||
import info.nightscout.interfaces.plugin.PluginBase
|
import info.nightscout.interfaces.plugin.PluginBase
|
||||||
import info.nightscout.interfaces.plugin.PluginDescription
|
import info.nightscout.interfaces.plugin.PluginDescription
|
||||||
import info.nightscout.interfaces.plugin.PluginType
|
import info.nightscout.interfaces.plugin.PluginType
|
||||||
|
import info.nightscout.interfaces.profile.ProfileSource
|
||||||
import info.nightscout.interfaces.sync.NsClient
|
import info.nightscout.interfaces.sync.NsClient
|
||||||
import info.nightscout.rx.bus.RxBus
|
import info.nightscout.rx.bus.RxBus
|
||||||
import info.nightscout.rx.events.EventAppInitialized
|
import info.nightscout.rx.events.EventAppInitialized
|
||||||
|
|
|
@ -4,7 +4,6 @@ import info.nightscout.androidaps.interfaces.APS
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.BgSource
|
import info.nightscout.androidaps.interfaces.BgSource
|
||||||
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
||||||
import info.nightscout.androidaps.interfaces.ProfileSource
|
|
||||||
import info.nightscout.androidaps.interfaces.Pump
|
import info.nightscout.androidaps.interfaces.Pump
|
||||||
import info.nightscout.androidaps.interfaces.Sensitivity
|
import info.nightscout.androidaps.interfaces.Sensitivity
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
|
@ -13,6 +12,7 @@ import info.nightscout.interfaces.constraints.Safety
|
||||||
import info.nightscout.interfaces.insulin.Insulin
|
import info.nightscout.interfaces.insulin.Insulin
|
||||||
import info.nightscout.interfaces.plugin.PluginBase
|
import info.nightscout.interfaces.plugin.PluginBase
|
||||||
import info.nightscout.interfaces.plugin.PluginType
|
import info.nightscout.interfaces.plugin.PluginType
|
||||||
|
import info.nightscout.interfaces.profile.ProfileSource
|
||||||
import info.nightscout.interfaces.sync.NsClient
|
import info.nightscout.interfaces.sync.NsClient
|
||||||
import info.nightscout.interfaces.sync.Sync
|
import info.nightscout.interfaces.sync.Sync
|
||||||
import info.nightscout.rx.logging.AAPSLogger
|
import info.nightscout.rx.logging.AAPSLogger
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
package info.nightscout.androidaps.plugins.configBuilder
|
package info.nightscout.androidaps.plugins.configBuilder
|
||||||
|
|
||||||
import info.nightscout.androidaps.data.ProfileSealed
|
import info.nightscout.androidaps.data.ProfileSealed
|
||||||
import info.nightscout.database.impl.AppRepository
|
|
||||||
import info.nightscout.database.impl.ValueWrapper
|
|
||||||
import info.nightscout.database.impl.transactions.InsertOrUpdateProfileSwitch
|
|
||||||
import info.nightscout.androidaps.events.EventEffectiveProfileSwitchChanged
|
import info.nightscout.androidaps.events.EventEffectiveProfileSwitchChanged
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.Profile
|
import info.nightscout.androidaps.interfaces.Profile
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.utils.HardLimits
|
import info.nightscout.androidaps.utils.HardLimits
|
||||||
import info.nightscout.androidaps.utils.extensions.fromConstant
|
import info.nightscout.androidaps.utils.extensions.fromConstant
|
||||||
import info.nightscout.core.fabric.FabricPrivacy
|
import info.nightscout.core.fabric.FabricPrivacy
|
||||||
import info.nightscout.core.main.R
|
import info.nightscout.core.main.R
|
||||||
import info.nightscout.database.entities.ProfileSwitch
|
import info.nightscout.database.entities.ProfileSwitch
|
||||||
|
import info.nightscout.database.impl.AppRepository
|
||||||
|
import info.nightscout.database.impl.ValueWrapper
|
||||||
|
import info.nightscout.database.impl.transactions.InsertOrUpdateProfileSwitch
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
import info.nightscout.interfaces.Constants
|
import info.nightscout.interfaces.Constants
|
||||||
import info.nightscout.interfaces.GlucoseUnit
|
import info.nightscout.interfaces.GlucoseUnit
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.plugins.sync.nsclient.data.ProcessedDeviceStatusData
|
import info.nightscout.plugins.sync.nsclient.data.ProcessedDeviceStatusData
|
||||||
import info.nightscout.rx.AapsSchedulers
|
import info.nightscout.rx.AapsSchedulers
|
||||||
import info.nightscout.rx.bus.RxBus
|
import info.nightscout.rx.bus.RxBus
|
||||||
|
|
|
@ -2,6 +2,7 @@ package info.nightscout.androidaps.utils.wizard
|
||||||
|
|
||||||
import dagger.android.HasAndroidInjector
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.R
|
import info.nightscout.androidaps.R
|
||||||
|
import info.nightscout.androidaps.annotations.OpenForTesting
|
||||||
import info.nightscout.androidaps.extensions.valueToUnits
|
import info.nightscout.androidaps.extensions.valueToUnits
|
||||||
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
||||||
import info.nightscout.androidaps.interfaces.Loop
|
import info.nightscout.androidaps.interfaces.Loop
|
||||||
|
@ -34,6 +35,14 @@ class QuickWizardEntry @Inject constructor(private val injector: HasAndroidInjec
|
||||||
@Inject lateinit var dateUtil: DateUtil
|
@Inject lateinit var dateUtil: DateUtil
|
||||||
@Inject lateinit var glucoseStatusProvider: GlucoseStatusProvider
|
@Inject lateinit var glucoseStatusProvider: GlucoseStatusProvider
|
||||||
|
|
||||||
|
// for mock
|
||||||
|
@OpenForTesting
|
||||||
|
class Time {
|
||||||
|
fun secondsFromMidnight(): Int = Profile.secondsFromMidnight()
|
||||||
|
|
||||||
|
}
|
||||||
|
var time = Time()
|
||||||
|
|
||||||
lateinit var storage: JSONObject
|
lateinit var storage: JSONObject
|
||||||
var position: Int = -1
|
var position: Int = -1
|
||||||
|
|
||||||
|
@ -96,7 +105,7 @@ class QuickWizardEntry @Inject constructor(private val injector: HasAndroidInjec
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isActive(): Boolean = profileFunction.secondsFromMidnight() >= validFrom() && profileFunction.secondsFromMidnight() <= validTo() && forDevice(DEVICE_PHONE)
|
fun isActive(): Boolean = time.secondsFromMidnight() >= validFrom() && time.secondsFromMidnight() <= validTo() && forDevice(DEVICE_PHONE)
|
||||||
|
|
||||||
fun doCalc(profile: Profile, profileName: String, lastBG: GlucoseValue, _synchronized: Boolean): BolusWizard {
|
fun doCalc(profile: Profile, profileName: String, lastBG: GlucoseValue, _synchronized: Boolean): BolusWizard {
|
||||||
val dbRecord = repository.getTemporaryTargetActiveAt(dateUtil.now()).blockingGet()
|
val dbRecord = repository.getTemporaryTargetActiveAt(dateUtil.now()).blockingGet()
|
||||||
|
|
|
@ -7,12 +7,13 @@ import info.nightscout.androidaps.data.ProfileSealed
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
||||||
import info.nightscout.core.fabric.FabricPrivacy
|
import info.nightscout.core.fabric.FabricPrivacy
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
import info.nightscout.database.entities.EffectiveProfileSwitch
|
import info.nightscout.database.entities.EffectiveProfileSwitch
|
||||||
import info.nightscout.database.entities.embedments.InsulinConfiguration
|
import info.nightscout.database.entities.embedments.InsulinConfiguration
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.rx.bus.RxBus
|
import info.nightscout.rx.bus.RxBus
|
||||||
import info.nightscout.shared.interfaces.ResourceHelper
|
import info.nightscout.shared.interfaces.ResourceHelper
|
||||||
import info.nightscout.shared.utils.DateUtil
|
import info.nightscout.shared.utils.DateUtil
|
||||||
|
@ -172,6 +173,6 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
||||||
json.put("defaultProfile", TESTPROFILENAME)
|
json.put("defaultProfile", TESTPROFILENAME)
|
||||||
json.put("store", store)
|
json.put("store", store)
|
||||||
return ProfileStore(profileInjector, json, dateUtil)
|
return ProfileStoreObject(profileInjector, json, dateUtil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,9 +6,9 @@ import info.nightscout.androidaps.R
|
||||||
import info.nightscout.androidaps.TestBase
|
import info.nightscout.androidaps.TestBase
|
||||||
import info.nightscout.androidaps.interfaces.Loop
|
import info.nightscout.androidaps.interfaces.Loop
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.shared.sharedPreferences.SP
|
|
||||||
import info.nightscout.androidaps.utils.wizard.QuickWizard
|
import info.nightscout.androidaps.utils.wizard.QuickWizard
|
||||||
import info.nightscout.androidaps.utils.wizard.QuickWizardEntry
|
import info.nightscout.androidaps.utils.wizard.QuickWizardEntry
|
||||||
|
import info.nightscout.shared.sharedPreferences.SP
|
||||||
import org.json.JSONArray
|
import org.json.JSONArray
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
|
@ -28,13 +28,19 @@ class QuickWizardTest : TestBase() {
|
||||||
"\"useBG\":0,\"useCOB\":0,\"useBolusIOB\":1,\"useBasalIOB\":2,\"useTrend\":0,\"useSuperBolus\":0,\"useTemptarget\":0}"
|
"\"useBG\":0,\"useCOB\":0,\"useBolusIOB\":1,\"useBasalIOB\":2,\"useTrend\":0,\"useSuperBolus\":0,\"useTemptarget\":0}"
|
||||||
private var array: JSONArray = JSONArray("[$data1,$data2]")
|
private var array: JSONArray = JSONArray("[$data1,$data2]")
|
||||||
|
|
||||||
val injector = HasAndroidInjector {
|
class MockedTime : QuickWizardEntry.Time() {
|
||||||
|
override fun secondsFromMidnight() = 0
|
||||||
|
}
|
||||||
|
private val mockedTime = MockedTime()
|
||||||
|
|
||||||
|
private val injector = HasAndroidInjector {
|
||||||
AndroidInjector {
|
AndroidInjector {
|
||||||
if (it is QuickWizardEntry) {
|
if (it is QuickWizardEntry) {
|
||||||
it.aapsLogger = aapsLogger
|
it.aapsLogger = aapsLogger
|
||||||
it.sp = sp
|
it.sp = sp
|
||||||
it.profileFunction = profileFunction
|
it.profileFunction = profileFunction
|
||||||
it.loop = loop
|
it.loop = loop
|
||||||
|
it.time = mockedTime
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,7 +49,7 @@ class QuickWizardTest : TestBase() {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun mock() {
|
fun mock() {
|
||||||
`when`(profileFunction.secondsFromMidnight()).thenReturn(0)
|
|
||||||
`when`(sp.getString(R.string.key_quickwizard, "[]")).thenReturn("[]")
|
`when`(sp.getString(R.string.key_quickwizard, "[]")).thenReturn("[]")
|
||||||
quickWizard = QuickWizard(sp, injector)
|
quickWizard = QuickWizard(sp, injector)
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,15 +3,16 @@ package info.nightscout.androidaps
|
||||||
import dagger.android.AndroidInjector
|
import dagger.android.AndroidInjector
|
||||||
import dagger.android.HasAndroidInjector
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.data.ProfileSealed
|
import info.nightscout.androidaps.data.ProfileSealed
|
||||||
import info.nightscout.database.impl.AppRepository
|
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.Profile
|
import info.nightscout.androidaps.interfaces.Profile
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.utils.DefaultValueHelper
|
import info.nightscout.androidaps.utils.DefaultValueHelper
|
||||||
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
||||||
import info.nightscout.core.fabric.FabricPrivacy
|
import info.nightscout.core.fabric.FabricPrivacy
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
|
import info.nightscout.database.impl.AppRepository
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.rx.bus.RxBus
|
import info.nightscout.rx.bus.RxBus
|
||||||
import info.nightscout.shared.interfaces.ResourceHelper
|
import info.nightscout.shared.interfaces.ResourceHelper
|
||||||
import info.nightscout.shared.utils.DateUtil
|
import info.nightscout.shared.utils.DateUtil
|
||||||
|
@ -56,6 +57,6 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
||||||
json.put("defaultProfile", TESTPROFILENAME)
|
json.put("defaultProfile", TESTPROFILENAME)
|
||||||
json.put("store", store)
|
json.put("store", store)
|
||||||
return ProfileStore(profileInjector, json, dateUtil)
|
return ProfileStoreObject(profileInjector, json, dateUtil)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -9,7 +9,6 @@ import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.CommandQueue
|
import info.nightscout.androidaps.interfaces.CommandQueue
|
||||||
import info.nightscout.androidaps.interfaces.Loop
|
import info.nightscout.androidaps.interfaces.Loop
|
||||||
import info.nightscout.androidaps.interfaces.Profile
|
import info.nightscout.androidaps.interfaces.Profile
|
||||||
import info.nightscout.androidaps.interfaces.ProfileSource
|
|
||||||
import info.nightscout.androidaps.logging.UserEntryLogger
|
import info.nightscout.androidaps.logging.UserEntryLogger
|
||||||
import info.nightscout.automation.triggers.Trigger
|
import info.nightscout.automation.triggers.Trigger
|
||||||
import info.nightscout.database.entities.OfflineEvent
|
import info.nightscout.database.entities.OfflineEvent
|
||||||
|
@ -18,6 +17,7 @@ import info.nightscout.interfaces.GlucoseUnit
|
||||||
import info.nightscout.interfaces.constraints.Constraint
|
import info.nightscout.interfaces.constraints.Constraint
|
||||||
import info.nightscout.interfaces.plugin.PluginBase
|
import info.nightscout.interfaces.plugin.PluginBase
|
||||||
import info.nightscout.interfaces.plugin.PluginDescription
|
import info.nightscout.interfaces.plugin.PluginDescription
|
||||||
|
import info.nightscout.interfaces.profile.ProfileSource
|
||||||
import info.nightscout.interfaces.smsCommunicator.SmsCommunicator
|
import info.nightscout.interfaces.smsCommunicator.SmsCommunicator
|
||||||
import info.nightscout.rx.logging.AAPSLogger
|
import info.nightscout.rx.logging.AAPSLogger
|
||||||
import info.nightscout.shared.interfaces.ResourceHelper
|
import info.nightscout.shared.interfaces.ResourceHelper
|
||||||
|
|
|
@ -3,9 +3,9 @@ package info.nightscout.androidaps.di
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.android.ContributesAndroidInjector
|
import dagger.android.ContributesAndroidInjector
|
||||||
import info.nightscout.androidaps.data.PumpEnactResultImpl
|
import info.nightscout.androidaps.data.PumpEnactResultImpl
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.plugins.aps.loop.APSResult
|
import info.nightscout.androidaps.plugins.aps.loop.APSResult
|
||||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.data.AutosensData
|
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.data.AutosensData
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
|
@ -15,5 +15,5 @@ abstract class CoreDataClassesModule {
|
||||||
@ContributesAndroidInjector abstract fun apsResultInjector(): APSResult
|
@ContributesAndroidInjector abstract fun apsResultInjector(): APSResult
|
||||||
@ContributesAndroidInjector abstract fun autosensDataInjector(): AutosensData
|
@ContributesAndroidInjector abstract fun autosensDataInjector(): AutosensData
|
||||||
|
|
||||||
@ContributesAndroidInjector abstract fun profileStoreInjector(): ProfileStore
|
@ContributesAndroidInjector abstract fun profileStoreInjector(): ProfileStoreObject
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import info.nightscout.interfaces.constraints.Safety
|
||||||
import info.nightscout.interfaces.insulin.Insulin
|
import info.nightscout.interfaces.insulin.Insulin
|
||||||
import info.nightscout.interfaces.plugin.PluginBase
|
import info.nightscout.interfaces.plugin.PluginBase
|
||||||
import info.nightscout.interfaces.plugin.PluginType
|
import info.nightscout.interfaces.plugin.PluginType
|
||||||
|
import info.nightscout.interfaces.profile.ProfileSource
|
||||||
import info.nightscout.interfaces.sync.NsClient
|
import info.nightscout.interfaces.sync.NsClient
|
||||||
import info.nightscout.interfaces.sync.Sync
|
import info.nightscout.interfaces.sync.Sync
|
||||||
|
|
||||||
|
|
|
@ -152,8 +152,7 @@ interface Profile {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun milliSecFromMidnight(date: Long): Long {
|
fun milliSecFromMidnight(date: Long): Long {
|
||||||
val passed = DateTime(date).millisOfDay.toLong()
|
return DateTime(date).millisOfDay.toLong()
|
||||||
return passed
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Units conversion
|
* Units conversion
|
||||||
|
|
|
@ -2,6 +2,7 @@ package info.nightscout.androidaps.interfaces
|
||||||
|
|
||||||
import info.nightscout.database.entities.ProfileSwitch
|
import info.nightscout.database.entities.ProfileSwitch
|
||||||
import info.nightscout.interfaces.GlucoseUnit
|
import info.nightscout.interfaces.GlucoseUnit
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
|
|
||||||
interface ProfileFunction {
|
interface ProfileFunction {
|
||||||
|
|
||||||
|
@ -89,11 +90,4 @@ interface ProfileFunction {
|
||||||
* @return true if profile switch is created
|
* @return true if profile switch is created
|
||||||
*/
|
*/
|
||||||
fun createProfileSwitch(durationInMinutes: Int, percentage: Int, timeShiftInHours: Int): Boolean
|
fun createProfileSwitch(durationInMinutes: Int, percentage: Int, timeShiftInHours: Int): Boolean
|
||||||
|
|
||||||
/*
|
|
||||||
* Midnight time conversion
|
|
||||||
* (here as well for easy mock)
|
|
||||||
*/
|
|
||||||
fun secondsFromMidnight(): Int = Profile.secondsFromMidnight()
|
|
||||||
fun secondsFromMidnight(date: Long): Int = Profile.secondsFromMidnight(date)
|
|
||||||
}
|
}
|
|
@ -1,11 +1,13 @@
|
||||||
package info.nightscout.androidaps.interfaces
|
package info.nightscout.core.profile
|
||||||
|
|
||||||
import androidx.collection.ArrayMap
|
import androidx.collection.ArrayMap
|
||||||
import dagger.android.HasAndroidInjector
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.data.ProfileSealed
|
import info.nightscout.androidaps.data.ProfileSealed
|
||||||
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.utils.HardLimits
|
import info.nightscout.androidaps.utils.HardLimits
|
||||||
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.interfaces.profile.PureProfile
|
import info.nightscout.interfaces.profile.PureProfile
|
||||||
import info.nightscout.interfaces.utils.JsonHelper
|
import info.nightscout.interfaces.utils.JsonHelper
|
||||||
import info.nightscout.rx.bus.RxBus
|
import info.nightscout.rx.bus.RxBus
|
||||||
|
@ -16,7 +18,7 @@ import org.json.JSONException
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class ProfileStore(val injector: HasAndroidInjector, val data: JSONObject, val dateUtil: DateUtil) {
|
class ProfileStoreObject(val injector: HasAndroidInjector, override val data: JSONObject, val dateUtil: DateUtil) : ProfileStore {
|
||||||
|
|
||||||
@Inject lateinit var aapsLogger: AAPSLogger
|
@Inject lateinit var aapsLogger: AAPSLogger
|
||||||
@Inject lateinit var activePlugin: ActivePlugin
|
@Inject lateinit var activePlugin: ActivePlugin
|
||||||
|
@ -42,7 +44,7 @@ class ProfileStore(val injector: HasAndroidInjector, val data: JSONObject, val d
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getStartDate(): Long {
|
override fun getStartDate(): Long {
|
||||||
val iso = JsonHelper.safeGetString(data, "startDate") ?: return 0
|
val iso = JsonHelper.safeGetString(data, "startDate") ?: return 0
|
||||||
return try {
|
return try {
|
||||||
dateUtil.fromISODateString(iso)
|
dateUtil.fromISODateString(iso)
|
||||||
|
@ -51,15 +53,15 @@ class ProfileStore(val injector: HasAndroidInjector, val data: JSONObject, val d
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getDefaultProfile(): PureProfile? = getDefaultProfileName()?.let { getSpecificProfile(it) }
|
override fun getDefaultProfile(): PureProfile? = getDefaultProfileName()?.let { getSpecificProfile(it) }
|
||||||
fun getDefaultProfileJson(): JSONObject? = getDefaultProfileName()?.let { getSpecificProfileJson(it) }
|
override fun getDefaultProfileJson(): JSONObject? = getDefaultProfileName()?.let { getSpecificProfileJson(it) }
|
||||||
|
|
||||||
fun getDefaultProfileName(): String? {
|
override fun getDefaultProfileName(): String? {
|
||||||
val defaultProfileName = data.optString("defaultProfile")
|
val defaultProfileName = data.optString("defaultProfile")
|
||||||
return if (defaultProfileName.isNotEmpty()) getStore()?.has(defaultProfileName)?.let { defaultProfileName } else null
|
return if (defaultProfileName.isNotEmpty()) getStore()?.has(defaultProfileName)?.let { defaultProfileName } else null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getProfileList(): ArrayList<CharSequence> {
|
override fun getProfileList(): ArrayList<CharSequence> {
|
||||||
val ret = ArrayList<CharSequence>()
|
val ret = ArrayList<CharSequence>()
|
||||||
getStore()?.keys()?.let { keys ->
|
getStore()?.keys()?.let { keys ->
|
||||||
while (keys.hasNext()) {
|
while (keys.hasNext()) {
|
||||||
|
@ -71,7 +73,7 @@ class ProfileStore(val injector: HasAndroidInjector, val data: JSONObject, val d
|
||||||
}
|
}
|
||||||
|
|
||||||
@Synchronized
|
@Synchronized
|
||||||
fun getSpecificProfile(profileName: String): PureProfile? {
|
override fun getSpecificProfile(profileName: String): PureProfile? {
|
||||||
var profile: PureProfile? = null
|
var profile: PureProfile? = null
|
||||||
val units = JsonHelper.safeGetStringAllowNull(data, "units", storeUnits())
|
val units = JsonHelper.safeGetStringAllowNull(data, "units", storeUnits())
|
||||||
getStore()?.let { store ->
|
getStore()?.let { store ->
|
||||||
|
@ -96,7 +98,7 @@ class ProfileStore(val injector: HasAndroidInjector, val data: JSONObject, val d
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
val allProfilesValid: Boolean
|
override val allProfilesValid: Boolean
|
||||||
get() = getProfileList()
|
get() = getProfileList()
|
||||||
.asSequence()
|
.asSequence()
|
||||||
.map { profileName -> getSpecificProfile(profileName.toString()) }
|
.map { profileName -> getSpecificProfile(profileName.toString()) }
|
|
@ -7,12 +7,13 @@ import info.nightscout.androidaps.data.ProfileSealed
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.Profile
|
import info.nightscout.androidaps.interfaces.Profile
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.utils.DefaultValueHelper
|
import info.nightscout.androidaps.utils.DefaultValueHelper
|
||||||
import info.nightscout.androidaps.utils.HardLimits
|
import info.nightscout.androidaps.utils.HardLimits
|
||||||
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
import info.nightscout.database.impl.AppRepository
|
import info.nightscout.database.impl.AppRepository
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.rx.bus.RxBus
|
import info.nightscout.rx.bus.RxBus
|
||||||
import info.nightscout.shared.interfaces.ResourceHelper
|
import info.nightscout.shared.interfaces.ResourceHelper
|
||||||
import info.nightscout.shared.sharedPreferences.SP
|
import info.nightscout.shared.sharedPreferences.SP
|
||||||
|
@ -41,7 +42,7 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
|
|
||||||
val profileInjector = HasAndroidInjector {
|
val profileInjector = HasAndroidInjector {
|
||||||
AndroidInjector {
|
AndroidInjector {
|
||||||
if (it is ProfileStore) {
|
if (it is ProfileStoreObject) {
|
||||||
it.aapsLogger = aapsLogger
|
it.aapsLogger = aapsLogger
|
||||||
it.activePlugin = activePluginProvider
|
it.activePlugin = activePluginProvider
|
||||||
it.config = config
|
it.config = config
|
||||||
|
@ -77,7 +78,7 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
||||||
json.put("defaultProfile", TESTPROFILENAME)
|
json.put("defaultProfile", TESTPROFILENAME)
|
||||||
json.put("store", store)
|
json.put("store", store)
|
||||||
return ProfileStore(profileInjector, json, dateUtil)
|
return ProfileStoreObject(profileInjector, json, dateUtil)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getInvalidProfileStore1(): ProfileStore {
|
fun getInvalidProfileStore1(): ProfileStore {
|
||||||
|
@ -86,7 +87,7 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
store.put(TESTPROFILENAME, JSONObject(invalidProfileJSON))
|
store.put(TESTPROFILENAME, JSONObject(invalidProfileJSON))
|
||||||
json.put("defaultProfile", TESTPROFILENAME)
|
json.put("defaultProfile", TESTPROFILENAME)
|
||||||
json.put("store", store)
|
json.put("store", store)
|
||||||
return ProfileStore(profileInjector, json, dateUtil)
|
return ProfileStoreObject(profileInjector, json, dateUtil)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getInvalidProfileStore2(): ProfileStore {
|
fun getInvalidProfileStore2(): ProfileStore {
|
||||||
|
@ -96,6 +97,6 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
store.put("invalid", JSONObject(invalidProfileJSON))
|
store.put("invalid", JSONObject(invalidProfileJSON))
|
||||||
json.put("defaultProfile", TESTPROFILENAME + "invalid")
|
json.put("defaultProfile", TESTPROFILENAME + "invalid")
|
||||||
json.put("store", store)
|
json.put("store", store)
|
||||||
return ProfileStore(profileInjector, json, dateUtil)
|
return ProfileStoreObject(profileInjector, json, dateUtil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,13 @@ import info.nightscout.androidaps.data.ProfileSealed
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
||||||
import info.nightscout.core.fabric.FabricPrivacy
|
import info.nightscout.core.fabric.FabricPrivacy
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
import info.nightscout.database.entities.EffectiveProfileSwitch
|
import info.nightscout.database.entities.EffectiveProfileSwitch
|
||||||
import info.nightscout.database.entities.embedments.InsulinConfiguration
|
import info.nightscout.database.entities.embedments.InsulinConfiguration
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.rx.bus.RxBus
|
import info.nightscout.rx.bus.RxBus
|
||||||
import info.nightscout.shared.interfaces.ResourceHelper
|
import info.nightscout.shared.interfaces.ResourceHelper
|
||||||
import info.nightscout.shared.utils.DateUtil
|
import info.nightscout.shared.utils.DateUtil
|
||||||
|
@ -172,6 +173,6 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
||||||
json.put("defaultProfile", TESTPROFILENAME)
|
json.put("defaultProfile", TESTPROFILENAME)
|
||||||
json.put("store", store)
|
json.put("store", store)
|
||||||
return ProfileStore(profileInjector, json, dateUtil)
|
return ProfileStoreObject(profileInjector, json, dateUtil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package info.nightscout.androidaps.interfaces
|
package info.nightscout.interfaces.profile
|
||||||
|
|
||||||
import info.nightscout.interfaces.Constants
|
import info.nightscout.interfaces.Constants
|
||||||
import info.nightscout.interfaces.profile.PureProfile
|
|
||||||
import org.json.JSONArray
|
import org.json.JSONArray
|
||||||
|
|
||||||
interface ProfileSource {
|
interface ProfileSource {
|
|
@ -0,0 +1,15 @@
|
||||||
|
package info.nightscout.interfaces.profile
|
||||||
|
|
||||||
|
import org.json.JSONObject
|
||||||
|
|
||||||
|
interface ProfileStore {
|
||||||
|
val data: JSONObject
|
||||||
|
|
||||||
|
fun getStartDate(): Long
|
||||||
|
fun getDefaultProfile(): PureProfile?
|
||||||
|
fun getDefaultProfileJson(): JSONObject?
|
||||||
|
fun getDefaultProfileName(): String?
|
||||||
|
fun getProfileList(): ArrayList<CharSequence>
|
||||||
|
fun getSpecificProfile(profileName: String): PureProfile?
|
||||||
|
val allProfilesValid: Boolean
|
||||||
|
}
|
|
@ -24,14 +24,15 @@ import info.nightscout.androidaps.dialogs.ProfileViewerDialog
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.Profile
|
import info.nightscout.androidaps.interfaces.Profile
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.logging.UserEntryLogger
|
import info.nightscout.androidaps.logging.UserEntryLogger
|
||||||
import info.nightscout.androidaps.utils.alertDialogs.OKDialog.showConfirmation
|
import info.nightscout.androidaps.utils.alertDialogs.OKDialog.showConfirmation
|
||||||
import info.nightscout.core.fabric.FabricPrivacy
|
import info.nightscout.core.fabric.FabricPrivacy
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
import info.nightscout.database.entities.UserEntry
|
import info.nightscout.database.entities.UserEntry
|
||||||
import info.nightscout.database.entities.ValueWithUnit
|
import info.nightscout.database.entities.ValueWithUnit
|
||||||
import info.nightscout.interfaces.Constants
|
import info.nightscout.interfaces.Constants
|
||||||
import info.nightscout.interfaces.GlucoseUnit
|
import info.nightscout.interfaces.GlucoseUnit
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.interfaces.utils.MidnightTime
|
import info.nightscout.interfaces.utils.MidnightTime
|
||||||
import info.nightscout.interfaces.utils.Round
|
import info.nightscout.interfaces.utils.Round
|
||||||
import info.nightscout.plugins.R
|
import info.nightscout.plugins.R
|
||||||
|
@ -96,7 +97,7 @@ class AutotuneFragment : DaggerFragment() {
|
||||||
if (autotunePlugin.lastNbDays.isEmpty())
|
if (autotunePlugin.lastNbDays.isEmpty())
|
||||||
autotunePlugin.lastNbDays = sp.getInt(R.string.key_autotune_default_tune_days, 5).toString()
|
autotunePlugin.lastNbDays = sp.getInt(R.string.key_autotune_default_tune_days, 5).toString()
|
||||||
val defaultValue = sp.getInt(R.string.key_autotune_default_tune_days, 5).toDouble()
|
val defaultValue = sp.getInt(R.string.key_autotune_default_tune_days, 5).toDouble()
|
||||||
profileStore = activePlugin.activeProfileSource.profile ?: ProfileStore(injector, JSONObject(), dateUtil)
|
profileStore = activePlugin.activeProfileSource.profile ?: ProfileStoreObject(injector, JSONObject(), dateUtil)
|
||||||
profileName = if (binding.profileList.text.toString() == rh.gs(R.string.active)) "" else binding.profileList.text.toString()
|
profileName = if (binding.profileList.text.toString() == rh.gs(R.string.active)) "" else binding.profileList.text.toString()
|
||||||
profileFunction.getProfile()?.let { currentProfile ->
|
profileFunction.getProfile()?.let { currentProfile ->
|
||||||
profile = ATProfile(profileStore.getSpecificProfile(profileName)?.let { ProfileSealed.Pure(it) } ?: currentProfile, LocalInsulin(""), injector)
|
profile = ATProfile(profileStore.getSpecificProfile(profileName)?.let { ProfileSealed.Pure(it) } ?: currentProfile, LocalInsulin(""), injector)
|
||||||
|
@ -297,7 +298,7 @@ class AutotuneFragment : DaggerFragment() {
|
||||||
@Synchronized
|
@Synchronized
|
||||||
private fun updateGui() {
|
private fun updateGui() {
|
||||||
_binding ?: return
|
_binding ?: return
|
||||||
profileStore = activePlugin.activeProfileSource.profile ?: ProfileStore(injector, JSONObject(), dateUtil)
|
profileStore = activePlugin.activeProfileSource.profile ?: ProfileStoreObject(injector, JSONObject(), dateUtil)
|
||||||
profileName = if (binding.profileList.text.toString() == rh.gs(R.string.active)) "" else binding.profileList.text.toString()
|
profileName = if (binding.profileList.text.toString() == rh.gs(R.string.active)) "" else binding.profileList.text.toString()
|
||||||
profileFunction.getProfile()?.let { currentProfile ->
|
profileFunction.getProfile()?.let { currentProfile ->
|
||||||
profile = ATProfile(profileStore.getSpecificProfile(profileName)?.let { ProfileSealed.Pure(it) } ?: currentProfile, LocalInsulin(""), injector)
|
profile = ATProfile(profileStore.getSpecificProfile(profileName)?.let { ProfileSealed.Pure(it) } ?: currentProfile, LocalInsulin(""), injector)
|
||||||
|
|
|
@ -6,9 +6,9 @@ import info.nightscout.androidaps.data.ProfileSealed
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.Profile
|
import info.nightscout.androidaps.interfaces.Profile
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.logging.UserEntryLogger
|
import info.nightscout.androidaps.logging.UserEntryLogger
|
||||||
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
import info.nightscout.database.entities.UserEntry
|
import info.nightscout.database.entities.UserEntry
|
||||||
import info.nightscout.database.entities.ValueWithUnit
|
import info.nightscout.database.entities.ValueWithUnit
|
||||||
import info.nightscout.interfaces.BuildHelper
|
import info.nightscout.interfaces.BuildHelper
|
||||||
|
@ -325,7 +325,7 @@ class AutotunePlugin @Inject constructor(
|
||||||
fun updateProfile(newProfile: ATProfile?) {
|
fun updateProfile(newProfile: ATProfile?) {
|
||||||
if (newProfile == null) return
|
if (newProfile == null) return
|
||||||
val circadian = sp.getBoolean(R.string.key_autotune_circadian_ic_isf, false)
|
val circadian = sp.getBoolean(R.string.key_autotune_circadian_ic_isf, false)
|
||||||
val profileStore = activePlugin.activeProfileSource.profile ?: ProfileStore(injector, JSONObject(), dateUtil)
|
val profileStore = activePlugin.activeProfileSource.profile ?: ProfileStoreObject(injector, JSONObject(), dateUtil)
|
||||||
val profileList: ArrayList<CharSequence> = profileStore.getProfileList()
|
val profileList: ArrayList<CharSequence> = profileStore.getProfileList()
|
||||||
var indexLocalProfile = -1
|
var indexLocalProfile = -1
|
||||||
for (p in profileList.indices)
|
for (p in profileList.indices)
|
||||||
|
|
|
@ -6,13 +6,14 @@ import info.nightscout.androidaps.extensions.blockValueBySeconds
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.Profile
|
import info.nightscout.androidaps.interfaces.Profile
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
||||||
import info.nightscout.core.main.R
|
import info.nightscout.core.main.R
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
import info.nightscout.database.entities.data.Block
|
import info.nightscout.database.entities.data.Block
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
import info.nightscout.interfaces.GlucoseUnit
|
import info.nightscout.interfaces.GlucoseUnit
|
||||||
import info.nightscout.interfaces.insulin.Insulin
|
import info.nightscout.interfaces.insulin.Insulin
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.interfaces.profile.PureProfile
|
import info.nightscout.interfaces.profile.PureProfile
|
||||||
import info.nightscout.interfaces.utils.Round
|
import info.nightscout.interfaces.utils.Round
|
||||||
import info.nightscout.rx.bus.RxBus
|
import info.nightscout.rx.bus.RxBus
|
||||||
|
@ -177,7 +178,7 @@ class ATProfile(profile: Profile, var localInsulin: LocalInsulin, val injector:
|
||||||
json.put("defaultProfile", profilename)
|
json.put("defaultProfile", profilename)
|
||||||
json.put("store", store)
|
json.put("store", store)
|
||||||
json.put("startDate", dateUtil.toISOAsUTC(dateUtil.now()))
|
json.put("startDate", dateUtil.toISOAsUTC(dateUtil.now()))
|
||||||
profileStore = ProfileStore(injector, json, dateUtil)
|
profileStore = ProfileStoreObject(injector, json, dateUtil)
|
||||||
} catch (e: JSONException) {
|
} catch (e: JSONException) {
|
||||||
}
|
}
|
||||||
return profileStore
|
return profileStore
|
||||||
|
|
|
@ -12,8 +12,6 @@ import info.nightscout.androidaps.extensions.blockFromJsonArray
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.Profile
|
import info.nightscout.androidaps.interfaces.Profile
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileSource
|
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.interfaces.XDripBroadcast
|
import info.nightscout.androidaps.interfaces.XDripBroadcast
|
||||||
import info.nightscout.androidaps.receivers.DataWorkerStorage
|
import info.nightscout.androidaps.receivers.DataWorkerStorage
|
||||||
import info.nightscout.androidaps.utils.DecimalFormatter
|
import info.nightscout.androidaps.utils.DecimalFormatter
|
||||||
|
@ -21,6 +19,7 @@ import info.nightscout.androidaps.utils.HardLimits
|
||||||
import info.nightscout.androidaps.utils.ToastUtils
|
import info.nightscout.androidaps.utils.ToastUtils
|
||||||
import info.nightscout.androidaps.utils.alertDialogs.OKDialog
|
import info.nightscout.androidaps.utils.alertDialogs.OKDialog
|
||||||
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
import info.nightscout.interfaces.Constants
|
import info.nightscout.interfaces.Constants
|
||||||
import info.nightscout.interfaces.GlucoseUnit
|
import info.nightscout.interfaces.GlucoseUnit
|
||||||
|
@ -28,6 +27,8 @@ import info.nightscout.interfaces.notifications.Notification
|
||||||
import info.nightscout.interfaces.plugin.PluginBase
|
import info.nightscout.interfaces.plugin.PluginBase
|
||||||
import info.nightscout.interfaces.plugin.PluginDescription
|
import info.nightscout.interfaces.plugin.PluginDescription
|
||||||
import info.nightscout.interfaces.plugin.PluginType
|
import info.nightscout.interfaces.plugin.PluginType
|
||||||
|
import info.nightscout.interfaces.profile.ProfileSource
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.interfaces.profile.PureProfile
|
import info.nightscout.interfaces.profile.PureProfile
|
||||||
import info.nightscout.interfaces.utils.JsonHelper
|
import info.nightscout.interfaces.utils.JsonHelper
|
||||||
import info.nightscout.plugins.R
|
import info.nightscout.plugins.R
|
||||||
|
@ -72,7 +73,7 @@ class ProfilePlugin @Inject constructor(
|
||||||
aapsLogger, rh, injector
|
aapsLogger, rh, injector
|
||||||
), ProfileSource {
|
), ProfileSource {
|
||||||
|
|
||||||
private var rawProfile: ProfileStore? = null
|
private var rawProfile: ProfileStoreObject? = null
|
||||||
|
|
||||||
private val defaultArray = "[{\"time\":\"00:00\",\"timeAsSeconds\":0,\"value\":0}]"
|
private val defaultArray = "[{\"time\":\"00:00\",\"timeAsSeconds\":0,\"value\":0}]"
|
||||||
|
|
||||||
|
@ -388,7 +389,7 @@ class ProfilePlugin @Inject constructor(
|
||||||
isEdited = false
|
isEdited = false
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createProfileStore(): ProfileStore {
|
fun createProfileStore(): ProfileStoreObject {
|
||||||
val json = JSONObject()
|
val json = JSONObject()
|
||||||
val store = JSONObject()
|
val store = JSONObject()
|
||||||
|
|
||||||
|
@ -417,7 +418,7 @@ class ProfilePlugin @Inject constructor(
|
||||||
aapsLogger.error("Unhandled exception", e)
|
aapsLogger.error("Unhandled exception", e)
|
||||||
}
|
}
|
||||||
|
|
||||||
return ProfileStore(injector, json, dateUtil)
|
return ProfileStoreObject(injector, json, dateUtil)
|
||||||
}
|
}
|
||||||
|
|
||||||
override val profile: ProfileStore?
|
override val profile: ProfileStore?
|
||||||
|
@ -453,7 +454,7 @@ class ProfilePlugin @Inject constructor(
|
||||||
?: return Result.failure(workDataOf("Error" to "missing input data"))
|
?: return Result.failure(workDataOf("Error" to "missing input data"))
|
||||||
xDripBroadcast.sendProfile(profileJson)
|
xDripBroadcast.sendProfile(profileJson)
|
||||||
if (sp.getBoolean(R.string.key_ns_receive_profile_store, true) || config.NSCLIENT) {
|
if (sp.getBoolean(R.string.key_ns_receive_profile_store, true) || config.NSCLIENT) {
|
||||||
val store = ProfileStore(injector, profileJson, dateUtil)
|
val store = ProfileStoreObject(injector, profileJson, dateUtil)
|
||||||
val createdAt = store.getStartDate()
|
val createdAt = store.getStartDate()
|
||||||
val lastLocalChange = sp.getLong(R.string.key_local_profile_last_change, 0)
|
val lastLocalChange = sp.getLong(R.string.key_local_profile_last_change, 0)
|
||||||
aapsLogger.debug(LTag.PROFILE, "Received profileStore: createdAt: $createdAt Local last modification: $lastLocalChange")
|
aapsLogger.debug(LTag.PROFILE, "Received profileStore: createdAt: $createdAt Local last modification: $lastLocalChange")
|
||||||
|
|
|
@ -7,12 +7,13 @@ import info.nightscout.androidaps.data.ProfileSealed
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
||||||
import info.nightscout.core.fabric.FabricPrivacy
|
import info.nightscout.core.fabric.FabricPrivacy
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
import info.nightscout.database.entities.EffectiveProfileSwitch
|
import info.nightscout.database.entities.EffectiveProfileSwitch
|
||||||
import info.nightscout.database.entities.embedments.InsulinConfiguration
|
import info.nightscout.database.entities.embedments.InsulinConfiguration
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.rx.bus.RxBus
|
import info.nightscout.rx.bus.RxBus
|
||||||
import info.nightscout.shared.interfaces.ResourceHelper
|
import info.nightscout.shared.interfaces.ResourceHelper
|
||||||
import info.nightscout.shared.utils.DateUtil
|
import info.nightscout.shared.utils.DateUtil
|
||||||
|
@ -172,6 +173,6 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
||||||
json.put("defaultProfile", TESTPROFILENAME)
|
json.put("defaultProfile", TESTPROFILENAME)
|
||||||
json.put("store", store)
|
json.put("store", store)
|
||||||
return ProfileStore(profileInjector, json, dateUtil)
|
return ProfileStoreObject(profileInjector, json, dateUtil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@ import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.CommandQueue
|
import info.nightscout.androidaps.interfaces.CommandQueue
|
||||||
import info.nightscout.androidaps.interfaces.Constraints
|
import info.nightscout.androidaps.interfaces.Constraints
|
||||||
import info.nightscout.androidaps.interfaces.Loop
|
import info.nightscout.androidaps.interfaces.Loop
|
||||||
import info.nightscout.androidaps.interfaces.ProfileSource
|
|
||||||
import info.nightscout.androidaps.interfaces.XDripBroadcast
|
import info.nightscout.androidaps.interfaces.XDripBroadcast
|
||||||
import info.nightscout.androidaps.logging.UserEntryLogger
|
import info.nightscout.androidaps.logging.UserEntryLogger
|
||||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensDataStore
|
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensDataStore
|
||||||
|
@ -27,6 +26,7 @@ import info.nightscout.interfaces.GlucoseUnit
|
||||||
import info.nightscout.interfaces.constraints.Constraint
|
import info.nightscout.interfaces.constraints.Constraint
|
||||||
import info.nightscout.interfaces.iob.IobTotal
|
import info.nightscout.interfaces.iob.IobTotal
|
||||||
import info.nightscout.interfaces.plugin.PluginType
|
import info.nightscout.interfaces.plugin.PluginType
|
||||||
|
import info.nightscout.interfaces.profile.ProfileSource
|
||||||
import info.nightscout.interfaces.pump.defs.PumpDescription
|
import info.nightscout.interfaces.pump.defs.PumpDescription
|
||||||
import info.nightscout.interfaces.pump.defs.PumpType
|
import info.nightscout.interfaces.pump.defs.PumpType
|
||||||
import info.nightscout.interfaces.queue.Callback
|
import info.nightscout.interfaces.queue.Callback
|
||||||
|
|
|
@ -1,18 +1,19 @@
|
||||||
package info.nightscout.androidaps.dana
|
package info.nightscout.androidaps.dana
|
||||||
|
|
||||||
import dagger.android.HasAndroidInjector
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.interfaces.Constants
|
|
||||||
import info.nightscout.androidaps.interfaces.Profile
|
import info.nightscout.androidaps.interfaces.Profile
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.interfaces.PumpSync
|
import info.nightscout.androidaps.interfaces.PumpSync
|
||||||
import info.nightscout.rx.events.EventOverviewBolusProgress
|
|
||||||
import info.nightscout.interfaces.pump.defs.PumpType
|
|
||||||
import info.nightscout.shared.utils.DateUtil
|
|
||||||
import info.nightscout.androidaps.utils.DecimalFormatter
|
import info.nightscout.androidaps.utils.DecimalFormatter
|
||||||
import info.nightscout.shared.utils.T
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
|
import info.nightscout.interfaces.Constants
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
|
import info.nightscout.interfaces.pump.defs.PumpType
|
||||||
|
import info.nightscout.rx.events.EventOverviewBolusProgress
|
||||||
import info.nightscout.rx.logging.AAPSLogger
|
import info.nightscout.rx.logging.AAPSLogger
|
||||||
import info.nightscout.rx.logging.LTag
|
import info.nightscout.rx.logging.LTag
|
||||||
import info.nightscout.shared.sharedPreferences.SP
|
import info.nightscout.shared.sharedPreferences.SP
|
||||||
|
import info.nightscout.shared.utils.DateUtil
|
||||||
|
import info.nightscout.shared.utils.T
|
||||||
import org.joda.time.DateTime
|
import org.joda.time.DateTime
|
||||||
import org.joda.time.DateTimeZone
|
import org.joda.time.DateTimeZone
|
||||||
import org.json.JSONArray
|
import org.json.JSONArray
|
||||||
|
@ -380,7 +381,7 @@ class DanaPump @Inject constructor(
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
return ProfileStore(injector, json, dateUtil)
|
return ProfileStoreObject(injector, json, dateUtil)
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,11 +6,12 @@ import info.nightscout.androidaps.data.ProfileSealed
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.Profile
|
import info.nightscout.androidaps.interfaces.Profile
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.utils.DefaultValueHelper
|
import info.nightscout.androidaps.utils.DefaultValueHelper
|
||||||
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
||||||
import info.nightscout.core.fabric.FabricPrivacy
|
import info.nightscout.core.fabric.FabricPrivacy
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.rx.bus.RxBus
|
import info.nightscout.rx.bus.RxBus
|
||||||
import info.nightscout.shared.interfaces.ResourceHelper
|
import info.nightscout.shared.interfaces.ResourceHelper
|
||||||
import info.nightscout.shared.utils.DateUtil
|
import info.nightscout.shared.utils.DateUtil
|
||||||
|
@ -58,6 +59,6 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
||||||
json.put("defaultProfile", TESTPROFILENAME)
|
json.put("defaultProfile", TESTPROFILENAME)
|
||||||
json.put("store", store)
|
json.put("store", store)
|
||||||
return ProfileStore(profileInjector, json, dateUtil)
|
return ProfileStoreObject(profileInjector, json, dateUtil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,10 +7,11 @@ import info.nightscout.androidaps.data.ProfileSealed
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
||||||
import info.nightscout.core.fabric.FabricPrivacy
|
import info.nightscout.core.fabric.FabricPrivacy
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.rx.bus.RxBus
|
import info.nightscout.rx.bus.RxBus
|
||||||
import info.nightscout.shared.interfaces.ResourceHelper
|
import info.nightscout.shared.interfaces.ResourceHelper
|
||||||
import info.nightscout.shared.utils.DateUtil
|
import info.nightscout.shared.utils.DateUtil
|
||||||
|
@ -152,6 +153,6 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
||||||
json.put("defaultProfile", TESTPROFILENAME)
|
json.put("defaultProfile", TESTPROFILENAME)
|
||||||
json.put("store", store)
|
json.put("store", store)
|
||||||
return ProfileStore(profileInjector, json, dateUtil)
|
return ProfileStoreObject(profileInjector, json, dateUtil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,11 +6,12 @@ import info.nightscout.androidaps.data.ProfileSealed
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.Profile
|
import info.nightscout.androidaps.interfaces.Profile
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.utils.DefaultValueHelper
|
import info.nightscout.androidaps.utils.DefaultValueHelper
|
||||||
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
||||||
import info.nightscout.core.fabric.FabricPrivacy
|
import info.nightscout.core.fabric.FabricPrivacy
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.rx.bus.RxBus
|
import info.nightscout.rx.bus.RxBus
|
||||||
import info.nightscout.shared.interfaces.ResourceHelper
|
import info.nightscout.shared.interfaces.ResourceHelper
|
||||||
import info.nightscout.shared.utils.DateUtil
|
import info.nightscout.shared.utils.DateUtil
|
||||||
|
@ -54,6 +55,6 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
||||||
json.put("defaultProfile", TESTPROFILENAME)
|
json.put("defaultProfile", TESTPROFILENAME)
|
||||||
json.put("store", store)
|
json.put("store", store)
|
||||||
return ProfileStore(profileInjector, json, dateUtil)
|
return ProfileStoreObject(profileInjector, json, dateUtil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,13 @@ import info.nightscout.androidaps.data.ProfileSealed
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
|
||||||
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.utils.extensions.pureProfileFromJson
|
||||||
import info.nightscout.core.fabric.FabricPrivacy
|
import info.nightscout.core.fabric.FabricPrivacy
|
||||||
|
import info.nightscout.core.profile.ProfileStoreObject
|
||||||
import info.nightscout.database.entities.EffectiveProfileSwitch
|
import info.nightscout.database.entities.EffectiveProfileSwitch
|
||||||
import info.nightscout.database.entities.embedments.InsulinConfiguration
|
import info.nightscout.database.entities.embedments.InsulinConfiguration
|
||||||
import info.nightscout.interfaces.Config
|
import info.nightscout.interfaces.Config
|
||||||
|
import info.nightscout.interfaces.profile.ProfileStore
|
||||||
import info.nightscout.rx.bus.RxBus
|
import info.nightscout.rx.bus.RxBus
|
||||||
import info.nightscout.shared.interfaces.ResourceHelper
|
import info.nightscout.shared.interfaces.ResourceHelper
|
||||||
import info.nightscout.shared.utils.DateUtil
|
import info.nightscout.shared.utils.DateUtil
|
||||||
|
@ -172,6 +173,6 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
||||||
json.put("defaultProfile", TESTPROFILENAME)
|
json.put("defaultProfile", TESTPROFILENAME)
|
||||||
json.put("store", store)
|
json.put("store", store)
|
||||||
return ProfileStore(profileInjector, json, dateUtil)
|
return ProfileStoreObject(profileInjector, json, dateUtil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue