AUTOMATION: detect pending profile change
This commit is contained in:
parent
aee036e200
commit
40864620e0
3 changed files with 17 additions and 0 deletions
|
@ -136,6 +136,12 @@ class ProfileFunctionImplementation @Inject constructor(
|
||||||
|
|
||||||
override fun getRequestedProfile(): ProfileSwitch? = repository.getActiveProfileSwitch(dateUtil.now())
|
override fun getRequestedProfile(): ProfileSwitch? = repository.getActiveProfileSwitch(dateUtil.now())
|
||||||
|
|
||||||
|
override fun isProfileChangePending(): Boolean {
|
||||||
|
val requested = getRequestedProfile() ?: return false
|
||||||
|
val running = getProfile() ?: return true
|
||||||
|
return !ProfileSealed.PS(requested).isEqual(running)
|
||||||
|
}
|
||||||
|
|
||||||
override fun getUnits(): GlucoseUnit =
|
override fun getUnits(): GlucoseUnit =
|
||||||
if (sp.getString(R.string.key_units, Constants.MGDL) == Constants.MGDL) GlucoseUnit.MGDL
|
if (sp.getString(R.string.key_units, Constants.MGDL) == Constants.MGDL) GlucoseUnit.MGDL
|
||||||
else GlucoseUnit.MMOL
|
else GlucoseUnit.MMOL
|
||||||
|
|
|
@ -41,6 +41,10 @@ class TriggerProfilePercent(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun shouldRun(): Boolean {
|
override fun shouldRun(): Boolean {
|
||||||
val profile = profileFunction.getProfile()
|
val profile = profileFunction.getProfile()
|
||||||
|
if (profileFunction.isProfileChangePending()) {
|
||||||
|
aapsLogger.debug(LTag.AUTOMATION, "NOT ready for execution: " + "Profile change is already pending: " + friendlyDescription())
|
||||||
|
return false
|
||||||
|
}
|
||||||
if (profile == null && comparator.value == Comparator.Compare.IS_NOT_AVAILABLE) {
|
if (profile == null && comparator.value == Comparator.Compare.IS_NOT_AVAILABLE) {
|
||||||
aapsLogger.debug(LTag.AUTOMATION, "Ready for execution: " + friendlyDescription())
|
aapsLogger.debug(LTag.AUTOMATION, "Ready for execution: " + friendlyDescription())
|
||||||
return true
|
return true
|
||||||
|
|
|
@ -46,6 +46,13 @@ interface ProfileFunction {
|
||||||
*/
|
*/
|
||||||
fun getRequestedProfile(): ProfileSwitch?
|
fun getRequestedProfile(): ProfileSwitch?
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get requested profile by user (profile must not be active yet)
|
||||||
|
*
|
||||||
|
* @return true if ProfileSwitch != EffectiveProfileSwitch
|
||||||
|
*/
|
||||||
|
fun isProfileChangePending(): Boolean
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build a new circadian profile switch request based on provided profile
|
* Build a new circadian profile switch request based on provided profile
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue