浏览代码

Update Max IOB help tip

Mike Plante 11 月之前
父节点
当前提交
684edb0dc0

+ 42 - 0
Trio/Sources/Localizations/Main/Localizable.xcstrings

@@ -897,6 +897,12 @@
         }
       }
     },
+    "  ◦ A TBR higher than your scheduled rate will increase IOB" : {
+
+    },
+    "  ◦ A TBR lower than your scheduled rate will decrease IOB" : {
+
+    },
     " -  Manual Basal ⚠️" : {
       "comment" : "Current Manual Temp basal",
       "extractionState" : "manual",
@@ -10104,6 +10110,9 @@
         }
       }
     },
+    "• Boluses (including SMBs)" : {
+
+    },
     "• Carb Ratio" : {
       "localizations" : {
         "bg" : {
@@ -13708,6 +13717,12 @@
         }
       }
     },
+    "• Manual boluses you enter yoursef" : {
+
+    },
+    "• Manual temporary basal rates you set yourself" : {
+
+    },
     "• Maximum Duration" : {
       "localizations" : {
         "bg" : {
@@ -15192,6 +15207,9 @@
         }
       }
     },
+    "• Temporary Basal Rates (TBRs)" : {
+
+    },
     "• xDrip4iOS" : {
       "localizations" : {
         "bg" : {
@@ -58215,6 +58233,9 @@
         }
       }
     },
+    "Choose a value that covers your highest insulin needs — think about a correction for a very high glucose reading plus your biggest meal bolus. This gives Trio room to work while keeping you safe." : {
+
+    },
     "Choose Calendar" : {
       "localizations" : {
         "bg" : {
@@ -113912,6 +113933,7 @@
       }
     },
     "If a calculated amount exceeds this limit, the suggested and / or delivered amount will be reduced so that active insulin on board (IOB) will not exceed this safety limit." : {
+      "extractionState" : "stale",
       "localizations" : {
         "bg" : {
           "stringUnit" : {
@@ -114229,6 +114251,9 @@
         }
       }
     },
+    "If delivering more insulin would push your IOB above this limit, Trio will reduce or skip the dose to stay within the safety boundary. This applies to SMBs, TBRs, and the recommendation from the bolus calculator." : {
+
+    },
     "If Half Basal Exercise Target is %@ %@, a Temp Target of %@ %@ uses an Autosens Ratio of 1.09. A Temp Target of %@ %@ uses an Autosens Ratio of 1.33." : {
       "localizations" : {
         "bg" : {
@@ -136582,6 +136607,9 @@
         }
       }
     },
+    "Max IOB sets a safety limit on how much insulin Trio can automatically deliver above your scheduled basal rates. This prevents the system from giving too much insulin at once." : {
+
+    },
     "Max Meal Absorption Time" : {
       "localizations" : {
         "bg" : {
@@ -152131,7 +152159,11 @@
         }
       }
     },
+    "Note: This setting must be greater than 0 for any automatic insulin dosing by Trio (unless you currently have negative IOB)." : {
+
+    },
     "Note: This setting must be greater than 0 for any automatic insulin dosing by Trio." : {
+      "extractionState" : "stale",
       "localizations" : {
         "bg" : {
           "stringUnit" : {
@@ -152344,6 +152376,7 @@
       }
     },
     "Note: You can still manually bolus above this limit, but the suggested bolus amount will never exceed this in the bolus calculator." : {
+      "extractionState" : "stale",
       "localizations" : {
         "bg" : {
           "stringUnit" : {
@@ -209549,6 +209582,7 @@
       }
     },
     "This is the maximum amount of Insulin On Board (IOB) above profile basal rates from all sources - positive temporary basal rates, manual or meal boluses, and SMBs - that Trio is allowed to accumulate to address an above target glucose." : {
+      "extractionState" : "stale",
       "localizations" : {
         "bg" : {
           "stringUnit" : {
@@ -211897,6 +211931,7 @@
       }
     },
     "This setting helps prevent delivering too much insulin at once. It’s typically a value close to the amount you might need for a very high blood sugar and the biggest meal of your life combined." : {
+      "extractionState" : "stale",
       "localizations" : {
         "bg" : {
           "stringUnit" : {
@@ -218772,6 +218807,9 @@
         }
       }
     },
+    "Trio calculates your current Insulin On Board (IOB) from:" : {
+
+    },
     "Trio can automatically adapt insulin delivery based on inputs and glucose forecasts. Your algorithm settings play a major part in accurate and effective dosing." : {
       "localizations" : {
         "bg" : {
@@ -232079,6 +232117,7 @@
       }
     },
     "Warning: This must be greater than 0 for any automatic temporary basal rates or SMBs to be given." : {
+      "extractionState" : "stale",
       "localizations" : {
         "bg" : {
           "stringUnit" : {
@@ -233804,6 +233843,9 @@
         }
       }
     },
+    "What's NOT limited:" : {
+
+    },
     "When \"Reduced Bolus\" is selected in the bolus calculator, the recommended bolus will be multiplied by the \"Reduced Bolus Percentage\" as well as the \"Recommended Bolus Percentage\"." : {
       "localizations" : {
         "bg" : {

+ 25 - 7
Trio/Sources/Modules/GeneralSettings/View/UnitsLimitsSettingsRootView.swift

@@ -46,22 +46,40 @@ extension UnitsLimitsSettings {
                     verboseHint:
                     VStack(alignment: .leading, spacing: 10) {
                         Text("Default: 0 units").bold()
+
                         Text(
-                            "Warning: This must be greater than 0 for any automatic temporary basal rates or SMBs to be given."
-                        ).bold()
-                        Text(
-                            "This setting helps prevent delivering too much insulin at once. It’s typically a value close to the amount you might need for a very high blood sugar and the biggest meal of your life combined."
+                            "Note: This setting must be greater than 0 for any automatic insulin dosing by Trio (unless you currently have negative IOB)."
                         )
+                        .bold()
+                        .foregroundStyle(Color.orange)
+
                         Text(
-                            "This is the maximum amount of Insulin On Board (IOB) above profile basal rates from all sources - positive temporary basal rates, manual or meal boluses, and SMBs - that Trio is allowed to accumulate to address an above target glucose."
+                            "Choose a value that covers your highest insulin needs — think about a correction for a very high glucose reading plus your biggest meal bolus. This gives Trio room to work while keeping you safe."
                         )
+
                         Text(
-                            "If a calculated amount exceeds this limit, the suggested and / or delivered amount will be reduced so that active insulin on board (IOB) will not exceed this safety limit."
+                            "Max IOB sets a safety limit on how much insulin Trio can automatically deliver above your scheduled basal rates. This prevents the system from giving too much insulin at once."
                         )
+
+                        VStack(alignment: .leading, spacing: 0) {
+                            Text("Trio calculates your current Insulin On Board (IOB) from:")
+                            Text("• Boluses (including SMBs)")
+                            Text("• Temporary Basal Rates (TBRs)")
+                            Text("  ◦ A TBR higher than your scheduled rate will increase IOB")
+                            Text("  ◦ A TBR lower than your scheduled rate will decrease IOB")
+                        }
+
                         Text(
-                            "Note: You can still manually bolus above this limit, but the suggested bolus amount will never exceed this in the bolus calculator."
+                            "If delivering more insulin would push your IOB above this limit, Trio will reduce or skip the dose to stay within the safety boundary. This applies to SMBs, TBRs, and the recommendation from the bolus calculator."
                         )
+
+                        VStack(alignment: .leading, spacing: 0) {
+                            Text("What's NOT limited:")
+                            Text("• Manual boluses you enter yoursef")
+                            Text("• Manual temporary basal rates you set yourself")
+                        }
                     }
+                    .fixedSize(horizontal: false, vertical: true)
                 )
 
                 SettingInputSection(

+ 25 - 8
Trio/Sources/Modules/Onboarding/View/OnboardingView+Util.swift

@@ -386,25 +386,42 @@ enum DeliveryLimitSubstep: Int, CaseIterable, Identifiable {
     func description(units: GlucoseUnits) -> any View {
         switch self {
         case .maxIOB:
-            return VStack(alignment: .leading, spacing: 8) {
-                Text(
-                    "Note: This setting must be greater than 0 for any automatic insulin dosing by Trio."
-                ).bold().foregroundStyle(Color.orange)
+            return VStack(alignment: .leading, spacing: 10) {
+                Text("Default: 0 units").bold()
 
                 Text(
-                    "This setting helps prevent delivering too much insulin at once. It’s typically a value close to the amount you might need for a very high blood sugar and the biggest meal of your life combined."
+                    "Note: This setting must be greater than 0 for any automatic insulin dosing by Trio (unless you currently have negative IOB)."
                 )
+                .bold()
+                .foregroundStyle(Color.orange)
 
                 Text(
-                    "This is the maximum amount of Insulin On Board (IOB) above profile basal rates from all sources - positive temporary basal rates, manual or meal boluses, and SMBs - that Trio is allowed to accumulate to address an above target glucose."
+                    "Choose a value that covers your highest insulin needs — think about a correction for a very high glucose reading plus your biggest meal bolus. This gives Trio room to work while keeping you safe."
                 )
+
                 Text(
-                    "If a calculated amount exceeds this limit, the suggested and / or delivered amount will be reduced so that active insulin on board (IOB) will not exceed this safety limit."
+                    "Max IOB sets a safety limit on how much insulin Trio can automatically deliver above your scheduled basal rates. This prevents the system from giving too much insulin at once."
                 )
+
+                VStack(alignment: .leading, spacing: 0) {
+                    Text("Trio calculates your current Insulin On Board (IOB) from:")
+                    Text("• Boluses (including SMBs)")
+                    Text("• Temporary Basal Rates (TBRs)")
+                    Text("  ◦ A TBR higher than your scheduled rate will increase IOB")
+                    Text("  ◦ A TBR lower than your scheduled rate will decrease IOB")
+                }
+
                 Text(
-                    "Note: You can still manually bolus above this limit, but the suggested bolus amount will never exceed this in the bolus calculator."
+                    "If delivering more insulin would push your IOB above this limit, Trio will reduce or skip the dose to stay within the safety boundary. This applies to SMBs, TBRs, and the recommendation from the bolus calculator."
                 )
+
+                VStack(alignment: .leading, spacing: 0) {
+                    Text("What's NOT limited:")
+                    Text("• Manual boluses you enter yoursef")
+                    Text("• Manual temporary basal rates you set yourself")
+                }
             }
+            .fixedSize(horizontal: false, vertical: true)
         case .maxBolus:
             return VStack(alignment: .leading, spacing: 8) {
                 Text(