Skip to content

Commit

Permalink
Release 6.2
Browse files Browse the repository at this point in the history
* 3 new shortcuts. You don't need any of the Nightscout remote commands anymore. Open/Closed loop mode, Enact temp basal rate and Resume/Suspend.

* Edit any of your override presets.

* Only display the overrides in preset preview - the values overridden (similar to %).

*Add tags in profile presets list View for better overview.

* Help the switchers trio -> iAPS, by request.

* Crowdin translations. Thank you Nicole van Elst - van den Hoe, Hung Nguyen, Aleksandr Van-Zaam and davidprogramme!

* Resolve issues: display of carbs in confirmation summary box in carb shortcuts, live editing in pump settings View and more.
  • Loading branch information
Jon-b-m authored Feb 6, 2025
1 parent 14bfff2 commit e8dc2ae
Show file tree
Hide file tree
Showing 40 changed files with 1,350 additions and 422 deletions.
2 changes: 1 addition & 1 deletion Config.xcconfig
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
APP_DISPLAY_NAME = iAPS
APP_VERSION = 6.0.0
APP_VERSION = 6.2
APP_BUILD_NUMBER = 1
COPYRIGHT_NOTICE =
DEVELOPER_TEAM = ##TEAM_ID##
Expand Down
2 changes: 1 addition & 1 deletion Core_Data.xcdatamodeld/Core_Data.xcdatamodel/contents
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@
<attribute name="duration" optional="YES" attributeType="Decimal" defaultValueString="0.0"/>
<attribute name="emoji" optional="YES" attributeType="String"/>
<attribute name="end" optional="YES" attributeType="Decimal" defaultValueString="0.0"/>
<attribute name="id" optional="YES" attributeType="String"/>
<attribute name="id" optional="YES" attributeType="String" defaultValueString="Empty"/>
<attribute name="indefinite" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
<attribute name="isf" optional="YES" attributeType="Boolean" defaultValueString="YES" usesScalarValueType="YES"/>
<attribute name="isfAndCr" optional="YES" attributeType="Boolean" defaultValueString="YES" usesScalarValueType="YES"/>
Expand Down
69 changes: 64 additions & 5 deletions FreeAPS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
1935364028496F7D001E0B16 /* Dynamic structs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1935363F28496F7D001E0B16 /* Dynamic structs.swift */; };
193F6CDD2A512C8F001240FD /* Loops.swift in Sources */ = {isa = PBXBuildFile; fileRef = 193F6CDC2A512C8F001240FD /* Loops.swift */; };
194297512B815938006B8A0B /* OverridesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 194297502B815938006B8A0B /* OverridesView.swift */; };
1947541C2D470F0500A89AD1 /* SuspendResumeShortcut.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1947541B2D470F0500A89AD1 /* SuspendResumeShortcut.swift */; };
1948C0662D35A8350032B6A2 /* AutoISFHistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1948C0652D35A8350032B6A2 /* AutoISFHistoryView.swift */; };
19493A3B2C5997AD00EC83A7 /* Database.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19493A3A2C5997AD00EC83A7 /* Database.swift */; };
19493A3D2C59987700EC83A7 /* DatabaseModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19493A3C2C59987700EC83A7 /* DatabaseModels.swift */; };
Expand All @@ -49,6 +50,8 @@
1967DFBE29D052C200759F30 /* Icons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1967DFBD29D052C200759F30 /* Icons.swift */; };
1967DFC029D053AC00759F30 /* IconSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1967DFBF29D053AC00759F30 /* IconSelection.swift */; };
1967DFC229D053D300759F30 /* IconImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1967DFC129D053D300759F30 /* IconImage.swift */; };
196809E22D46E7B300BA566F /* OpenClosedShortcuts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 196809E12D46E7B300BA566F /* OpenClosedShortcuts.swift */; };
196809E52D4702AD00BA566F /* TempBasalShortcut.swift in Sources */ = {isa = PBXBuildFile; fileRef = 196809E42D4702AD00BA566F /* TempBasalShortcut.swift */; };
19795118275953E50044850D /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 198377D4266BFFF6004DE65E /* Localizable.strings */; };
1982F7DB2BA6509D00EAFADE /* PumpStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1982F7DA2BA6509D00EAFADE /* PumpStorage.swift */; };
198377D2266BFFF6004DE65E /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 198377D4266BFFF6004DE65E /* Localizable.strings */; };
Expand Down Expand Up @@ -618,13 +621,37 @@
1927C8FB2744612600347C69 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/InfoPlist.strings; sourceTree = "<group>"; };
1927C8FE274489BA00347C69 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/InfoPlist.strings; sourceTree = "<group>"; };
192A9A112C0F5361000BBC29 /* MealsShortcuts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MealsShortcuts.swift; sourceTree = "<group>"; };
192E77322B9F40C7004F4822 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E77462B9F4CF1004F4822 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E77472B9F4CF3004F4822 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E77482B9F4CF6004F4822 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/AppShortcuts.strings"; sourceTree = "<group>"; };
192E77492B9F4CF9004F4822 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E774A2B9F4CFB004F4822 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E774B2B9F4CFE004F4822 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E774C2B9F4D01004F4822 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E774D2B9F4D04004F4822 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E774E2B9F4D07004F4822 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E774F2B9F4D08004F4822 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E77502B9F4D0A004F4822 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E77512B9F4D0B004F4822 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E77522B9F4D0D004F4822 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E77532B9F4D0E004F4822 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/AppShortcuts.strings"; sourceTree = "<group>"; };
192E77542B9F4D0F004F4822 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/AppShortcuts.strings"; sourceTree = "<group>"; };
192E77552B9F4D11004F4822 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E77562B9F4D12004F4822 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E77572B9F4D14004F4822 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E77582B9F4D1A004F4822 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E77592B9F4D1B004F4822 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E775A2B9F4D1C004F4822 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
192E775B2B9F4D1E004F4822 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/AppShortcuts.strings; sourceTree = "<group>"; };
1935363F28496F7D001E0B16 /* Dynamic structs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Dynamic structs.swift"; sourceTree = "<group>"; };
193F1E392B44C13B00525770 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/InfoPlist.strings; sourceTree = "<group>"; };
193F1E3A2B44C13B00525770 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Localizable.strings; sourceTree = "<group>"; };
193F1E3B2B44C14800525770 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/InfoPlist.strings; sourceTree = "<group>"; };
193F1E3C2B44C14800525770 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = "<group>"; };
193F6CDC2A512C8F001240FD /* Loops.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Loops.swift; sourceTree = "<group>"; };
194297502B815938006B8A0B /* OverridesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverridesView.swift; sourceTree = "<group>"; };
1947541B2D470F0500A89AD1 /* SuspendResumeShortcut.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuspendResumeShortcut.swift; sourceTree = "<group>"; };
1948C0652D35A8350032B6A2 /* AutoISFHistoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoISFHistoryView.swift; sourceTree = "<group>"; };
19493A3A2C5997AD00EC83A7 /* Database.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Database.swift; sourceTree = "<group>"; };
19493A3C2C59987700EC83A7 /* DatabaseModels.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseModels.swift; sourceTree = "<group>"; };
Expand All @@ -639,6 +666,8 @@
1967DFBD29D052C200759F30 /* Icons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Icons.swift; sourceTree = "<group>"; };
1967DFBF29D053AC00759F30 /* IconSelection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconSelection.swift; sourceTree = "<group>"; };
1967DFC129D053D300759F30 /* IconImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconImage.swift; sourceTree = "<group>"; };
196809E12D46E7B300BA566F /* OpenClosedShortcuts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenClosedShortcuts.swift; sourceTree = "<group>"; };
196809E42D4702AD00BA566F /* TempBasalShortcut.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TempBasalShortcut.swift; sourceTree = "<group>"; };
1980131D29CC9839002FF024 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
1982F7DA2BA6509D00EAFADE /* PumpStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PumpStorage.swift; sourceTree = "<group>"; };
198377D3266BFFF6004DE65E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1248,6 +1277,14 @@
name = "Recovered References";
sourceTree = "<group>";
};
1947541A2D470EEA00A89AD1 /* SuspendResume */ = {
isa = PBXGroup;
children = (
1947541B2D470F0500A89AD1 /* SuspendResumeShortcut.swift */,
);
path = SuspendResume;
sourceTree = "<group>";
};
194D7E6C2B974EA4007A38C1 /* Previews */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1286,6 +1323,22 @@
path = Overrides;
sourceTree = "<group>";
};
196809E02D46E78400BA566F /* OpenClosed */ = {
isa = PBXGroup;
children = (
196809E12D46E7B300BA566F /* OpenClosedShortcuts.swift */,
);
path = OpenClosed;
sourceTree = "<group>";
};
196809E32D47027600BA566F /* TempBasal */ = {
isa = PBXGroup;
children = (
196809E42D4702AD00BA566F /* TempBasalShortcut.swift */,
);
path = TempBasal;
sourceTree = "<group>";
};
196F58CD2BDCFF80009CBF1B /* InfoPlists */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1515,19 +1568,19 @@
3811DE1325C9D39E00A708ED /* Sources */ = {
isa = PBXGroup;
children = (
CE7CA3422A064973004BE681 /* Shortcuts */,
38DF178A27733E0F00B3528F /* AnimatedBackground */,
3811DEDE25C9E2DD00A708ED /* Application */,
3811DF0A25CAAAA500A708ED /* APS */,
E00EEBFC27368630002FF094 /* Assemblies */,
38E98A3225F5300800C0CED0 /* Config */,
388E5A5A25B6F05F0019842D /* Helpers */,
38DF178A27733E0F00B3528F /* AnimatedBackground */,
198377CF266BFEDE004DE65E /* Localizations */,
38E98A1A25F52C9300C0CED0 /* Logger */,
388E5A5925B6F0250019842D /* Models */,
3811DE0325C9D31700A708ED /* Modules */,
3811DE1425C9D40400A708ED /* Router */,
3811DE9125C9D88200A708ED /* Services */,
CE7CA3422A064973004BE681 /* Shortcuts */,
3883582E25EEAFC000E024B2 /* Views */,
);
path = Sources;
Expand Down Expand Up @@ -2468,12 +2521,15 @@
children = (
CE7CA3432A064973004BE681 /* AppShortcuts.swift */,
CE7CA3442A064973004BE681 /* BaseIntentsRequest.swift */,
CE1856F32ADC4835007E39C7 /* Carbs */,
196579A52B924BD400642E8E /* Overrides */,
1920BF5B2B9DF4B900E861FE /* Bolus */,
CE7CA3452A064973004BE681 /* TempPresets */,
CE1856F32ADC4835007E39C7 /* Carbs */,
192A9A102C0F5284000BBC29 /* Meals */,
196809E02D46E78400BA566F /* OpenClosed */,
196579A52B924BD400642E8E /* Overrides */,
CE7CA34B2A064973004BE681 /* State */,
1947541A2D470EEA00A89AD1 /* SuspendResume */,
196809E32D47027600BA566F /* TempBasal */,
CE7CA3452A064973004BE681 /* TempPresets */,
);
path = Shortcuts;
sourceTree = "<group>";
Expand Down Expand Up @@ -2974,6 +3030,7 @@
3811DE2325C9D48300A708ED /* MainDataFlow.swift in Sources */,
3811DEEB25CA063400A708ED /* PersistedProperty.swift in Sources */,
38E44537274E411700EC9A94 /* Disk+Helpers.swift in Sources */,
196809E22D46E7B300BA566F /* OpenClosedShortcuts.swift in Sources */,
388E5A6025B6F2310019842D /* Autosens.swift in Sources */,
3811DE8F25C9D80400A708ED /* User.swift in Sources */,
19D466A329AA2B80004D5F33 /* FPUConfigDataFlow.swift in Sources */,
Expand Down Expand Up @@ -3055,6 +3112,7 @@
389A572026079BAA00BC102F /* Interpolation.swift in Sources */,
19A910382A24EF3200C8951B /* ChartsView.swift in Sources */,
38B4F3C625E5017E00E76A18 /* NotificationCenter.swift in Sources */,
1947541C2D470F0500A89AD1 /* SuspendResumeShortcut.swift in Sources */,
19D466A729AA2C22004D5F33 /* FPUConfigStateModel.swift in Sources */,
38E44528274E401C00EC9A94 /* Protected.swift in Sources */,
3811DEB625C9D88300A708ED /* UnlockManager.swift in Sources */,
Expand Down Expand Up @@ -3288,6 +3346,7 @@
3862CC1F273FDC9200BF832C /* CalibrationsChart.swift in Sources */,
19E1F7EC29D082FE005C8D20 /* IconConfigStateModel.swift in Sources */,
194C32772B93A9BF0016FB2A /* OverrideShortcuts.swift in Sources */,
196809E52D4702AD00BA566F /* TempBasalShortcut.swift in Sources */,
711C0CB42CAABE788916BC9D /* ManualTempBasalDataFlow.swift in Sources */,
BF1667ADE69E4B5B111CECAE /* ManualTempBasalProvider.swift in Sources */,
F90692D6274B9A450037068D /* HealthKitStateModel.swift in Sources */,
Expand Down
39 changes: 38 additions & 1 deletion FreeAPS/Sources/APS/Storage/OverrideStorage.swift
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,20 @@ final class OverrideStorage {
return overrideArray
}

func fetchPreset(id: String) -> OverridePresets? {
var overrideArray = [OverridePresets]()
coredataContext.performAndWait {
let requestOverrides = OverridePresets.fetchRequest() as NSFetchRequest<OverridePresets>
let sortOverride = NSSortDescriptor(key: "date", ascending: false)
requestOverrides.sortDescriptors = [sortOverride]
requestOverrides.predicate = NSPredicate(
format: "id == %@", id as String
)
try? overrideArray = self.coredataContext.fetch(requestOverrides)
}
return overrideArray.first
}

func fetchLatestAutoISFsettings() -> [Auto_ISF] {
var array = [Auto_ISF]()
coredataContext.performAndWait {
Expand Down Expand Up @@ -183,7 +197,7 @@ final class OverrideStorage {
return nil
}

guard (last.date ?? Date.now).addingTimeInterval(Int(last.duration ?? 0).minutes.timeInterval) > Date(),
guard (last.date ?? Date.now).addingTimeInterval(Int(truncating: last.duration ?? 0).minutes.timeInterval) > Date(),
(last.date ?? Date.now) <= Date.now,
last.duration != 0
else {
Expand Down Expand Up @@ -385,4 +399,27 @@ final class OverrideStorage {
}
return nil
}

// Currently not used.
func DeleteBatch(identifier: String?, entity: String) {
guard let id = identifier else { return }
coredataContext.performAndWait {
let fetchRequest: NSFetchRequest<NSFetchRequestResult>
fetchRequest = NSFetchRequest(entityName: entity)
fetchRequest.predicate = NSPredicate(format: "id == %@", id)
let deleteRequest = NSBatchDeleteRequest(
fetchRequest: fetchRequest
)
deleteRequest.resultType = .resultTypeObjectIDs
do {
let deleteResult = try coredataContext.execute(deleteRequest) as? NSBatchDeleteResult
if let objectIDs = deleteResult?.result as? [NSManagedObjectID] {
NSManagedObjectContext.mergeChanges(
fromRemoteContextSave: [NSDeletedObjectsKey: objectIDs],
into: [coredataContext]
)
}
} catch { /* To do: handle any eventual errors. */ }
}
}
}
18 changes: 17 additions & 1 deletion FreeAPS/Sources/Localizations/Main/ar.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -1105,6 +1105,22 @@ Enact a temp Basal or a temp target */
/* Override Shortcut */
"Activates an %@ Override Preset" = "Activates an %@ Override Preset";

/* Suspend/Resume Shortcut */
"Choose what to do with your pump" = "Choose what to do with your pump";

/* Suspend/Resume Shortcut */
"Are you sure you want to %@ your pump?" = "Are you sure you want to %@ your pump?";

/* Suspend/Resume Shortcut */
"Pump command" = "Pump command";
/* Suspend/Resume Shortcut */
"enacted in iAPS" = "enacted in iAPS";

/* Temp Basal Shortcut */
"Temp basal Amount in U/h" = "Temp basal Amount in U/h";



/* */
"Schedule " = "Schedule ";

Expand Down Expand Up @@ -2344,7 +2360,7 @@ Enact a temp Basal or a temp target */
"Target Level for B30 to be enacted" = "Target Level for B30 to be enacted";

/* */
"An EatingSoon Override Target (or a Temporary Target) needs to be activated to start the B30 adaption. Target needs to be below or equal this setting for B30 to start. Default is 90 mg/dl. If you cancel this EatingSoon Target, the B30 basal rate will stop." = "An EatingSoon Override Target (or a Temporary Target) needs to be activated to start the B30 adaption. Target needs to be below or equal this setting for B30 to start. Default is 90 mg/dl. If you cancel this EatingSoon Target, the B30 basal rate will stop.";
"An EatingSoon Override Target (or a Temporary Target) needs to be activated to start the B30 adaption. Target needs to be below this setting for B30 to start. Default is 90 mg/dl. If you cancel this EatingSoon Target, the B30 basal rate will stop." = "An EatingSoon Override Target (or a Temporary Target) needs to be activated to start the B30 adaption. Target needs to be below this setting for B30 to start. Default is 90 mg/dl. If you cancel this EatingSoon Target, the B30 basal rate will stop.";

/* */
"Minimum Start Bolus size" = "Minimum Start Bolus size";
Expand Down
Loading

0 comments on commit e8dc2ae

Please sign in to comment.