Просмотр исходного кода

Fix and refactor unChanged() for Profile Overrides

Refactored by @polscm32 for readability.
Logic changes by @mikeplante1 :
+ Removed checking `smbIsOff` from `defaultProfile`
+ Added checking for `smbIsScheduledOff` to `allSettingsDefault`
+ Removed checking `isf` and `cr` from `allSettingsDefault`

Co-Authored-By: polscm32 <107251660+polscm32@users.noreply.github.com>
Mike Plante 2 лет назад
Родитель
Сommit
e8183a32fb

+ 6 - 7
FreeAPS/Sources/Modules/OverrideProfilesConfig/View/OverrideProfilesRootView.swift

@@ -330,14 +330,13 @@ extension OverrideProfilesConfig {
         }
 
         private func unChanged() -> Bool {
-            let isChanged = (state.percentage == 100 && !state.override_target && !state.smbIsOff && !state.advancedSettings) ||
-                (!state._indefinite && state.duration == 0) || (state.override_target && state.target == 0) ||
-                (
-                    state.percentage == 100 && !state.override_target && !state.smbIsOff && state.isf && state.cr && state
-                        .smbMinutes == state.defaultSmbMinutes && state.uamMinutes == state.defaultUamMinutes
-                )
+            let defaultProfile = state.percentage == 100 && !state.override_target && !state.advancedSettings
+            let noDurationSpecified = !state._indefinite && state.duration == 0
+            let targetZeroWithOverride = state.override_target && state.target == 0
+            let allSettingsDefault = state.percentage == 100 && !state.override_target && !state.smbIsOff && !state
+                .smbIsScheduledOff && state.smbMinutes == state.defaultSmbMinutes && state.uamMinutes == state.defaultUamMinutes
 
-            return isChanged
+            return defaultProfile || noDurationSpecified || targetZeroWithOverride || allSettingsDefault
         }
 
         private func removeProfile(at offsets: IndexSet) {