소스 검색

Merge branch 'bdb_dev' into bdb_dev

Jon B Mårtensson 3 년 전
부모
커밋
1e07f88527

+ 4 - 4
FreeAPS.xcodeproj/project.pbxproj

@@ -2764,7 +2764,7 @@
 			buildSettings = {
 				APP_DISPLAY_NAME = "$(APP_DISPLAY_NAME)";
 				APP_GROUP_ID = "$(APP_GROUP_ID)";
-				ASSETCATALOG_COMPILER_APPICON_NAME = "$(APP_ICON)";
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER)";
 				CODE_SIGN_ENTITLEMENTS = FreeAPS/Resources/FreeAPS.entitlements;
@@ -2800,7 +2800,7 @@
 			buildSettings = {
 				APP_DISPLAY_NAME = "$(APP_DISPLAY_NAME)";
 				APP_GROUP_ID = "$(APP_GROUP_ID)";
-				ASSETCATALOG_COMPILER_APPICON_NAME = "$(APP_ICON)";
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER)";
 				CODE_SIGN_ENTITLEMENTS = FreeAPS/Resources/FreeAPS.entitlements;
@@ -2836,7 +2836,7 @@
 			buildSettings = {
 				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
 				APP_DISPLAY_NAME = "$(APP_DISPLAY_NAME)";
-				ASSETCATALOG_COMPILER_APPICON_NAME = "$(APP_ICON)";
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
@@ -2866,7 +2866,7 @@
 			buildSettings = {
 				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
 				APP_DISPLAY_NAME = "$(APP_DISPLAY_NAME)";
-				ASSETCATALOG_COMPILER_APPICON_NAME = "$(APP_ICON)";
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";

+ 2 - 1
FreeAPS/Resources/json/defaults/freeaps/freeaps_settings.json

@@ -25,5 +25,6 @@
     "useFPUconversion": false
     "individualAdjustmentFactor": 0.5,
     "timeCap": 8,
-    "minuteInterval": 60
+    "minuteInterval": 60,
+    "delay": 60
 }

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 33 - 7
FreeAPS/Sources/Localizations/Main/en.lproj/Localizable.strings


+ 5 - 0
FreeAPS/Sources/Models/FreeAPSSettings.swift

@@ -29,6 +29,7 @@ struct FreeAPSSettings: JSON, Equatable {
     var individualAdjustmentFactor: Decimal = 0.5
     var timeCap: Decimal = 8
     var minuteInterval: Int = 60
+    var delay: Int = 60
 }
 
 extension FreeAPSSettings: Decodable {
@@ -117,6 +118,10 @@ extension FreeAPSSettings: Decodable {
             settings.minuteInterval = minuteInterval
         }
 
+        if let delay = try? container.decode(Int.self, forKey: .delay) {
+            settings.delay = delay
+        }
+
         if let glucoseNotificationsAlways = try? container.decode(Bool.self, forKey: .glucoseNotificationsAlways) {
             settings.glucoseNotificationsAlways = glucoseNotificationsAlways
         }

+ 21 - 14
FreeAPS/Sources/Modules/AddCarbs/AddCarbsStateModel.swift

@@ -23,28 +23,35 @@ extension AddCarbs {
                 return
             }
 
+            let interval = settings.settings.minuteInterval
+            let timeCap = settings.settings.timeCap * (60 / Decimal(interval))
+            let adjustment = settings.settings.individualAdjustmentFactor
+            let delay = settings.settings.delay
+
             // Convert fat and protein to carb equivalents and store as future carbs
             let fpucarb = 0.4 * protein + 0.9 * fat
             let fpus = (fat * 9.0 + protein * 4.0) / 100.0
-            // Default is 1 hour (60 minutes)
-            let timeInterval = 60 * settings.settings.minuteInterval
-            // Deffault is 8 hours
-            let timeCap = settings.settings.timeCap
-            let adjustment = settings.settings.individualAdjustmentFactor
             var counter: Decimal = (fpus * 2) - 1.0
-            counter = min(timeCap, counter)
+            counter = max(timeCap, counter)
             var roundedCounter: Decimal = 0
             NSDecimalRound(&roundedCounter, &counter, 0, .up)
             let carbequiv = (fpucarb / roundedCounter) * adjustment
+            let firstDate = date.addingTimeInterval(delay.minutes.timeInterval)
+            var previousDate = date
 
-            while counter > 0, counter <= timeCap {
-                let newdate = 1.0 + trunc(Double(truncating: counter as NSNumber))
-                carbsStorage.storeCarbs([
-                    CarbsEntry(
-                        id: UUID().uuidString, createdAt: date + (newdate * Double(timeInterval)), carbs: carbequiv,
-                        enteredBy: CarbsEntry.manual
-                    )
-                ])
+            while counter > 0, carbequiv > 0 {
+                var useDate = date + 1 * Double(interval * 60)
+                // Fix Interval and Delay
+                useDate = max(previousDate.addingTimeInterval(interval.minutes.timeInterval), useDate, firstDate)
+                if useDate > previousDate {
+                    carbsStorage.storeCarbs([
+                        CarbsEntry(
+                            id: UUID().uuidString, createdAt: useDate, carbs: carbequiv,
+                            enteredBy: CarbsEntry.manual
+                        )
+                    ])
+                }
+                previousDate = useDate
                 counter -= 1
             }
             // Store the real carbs

+ 10 - 2
FreeAPS/Sources/Modules/FPUConfig/FPUConfigStateModel.swift

@@ -6,6 +6,7 @@ extension FPUConfig {
         @Published var individualAdjustmentFactor: Decimal = 0
         @Published var timeCap: Decimal = 0
         @Published var minuteInterval: Decimal = 0
+        @Published var delay: Decimal = 0
 
         override func subscribe() {
             subscribeSetting(\.useFPUconversion, on: $useFPUconversion) { useFPUconversion = $0 }
@@ -19,14 +20,21 @@ extension FPUConfig {
             })
 
             subscribeSetting(\.minuteInterval, on: $minuteInterval.map(Int.init), initial: {
-                let value = max(min($0, 90), 10)
+                let value = max(min($0, 60), 10)
                 minuteInterval = Decimal(value)
             }, map: {
                 $0
             })
 
+            subscribeSetting(\.delay, on: $delay.map(Int.init), initial: {
+                let value = max(min($0, 120), 60)
+                delay = Decimal(value)
+            }, map: {
+                $0
+            })
+
             subscribeSetting(\.individualAdjustmentFactor, on: $individualAdjustmentFactor, initial: {
-                let value = max(min($0, 1.2), 0.3)
+                let value = max(min($0, 1.2), 0.1)
                 individualAdjustmentFactor = value
             }, map: {
                 $0

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 9 - 4
FreeAPS/Sources/Modules/FPUConfig/View/FPUConfigRootView.swift


+ 1 - 1
FreeAPS/Sources/Modules/Home/View/Chart/MainChartView.swift

@@ -93,7 +93,7 @@ struct MainChartView: View {
     private var carbsFormatter: NumberFormatter {
         let formatter = NumberFormatter()
         formatter.numberStyle = .decimal
-        formatter.maximumFractionDigits = 0
+        formatter.maximumFractionDigits = 1
         return formatter
     }