Skip to content

Commit 098b68b

Browse files
Add AutoPresets: auto-activate insulin presets on walking/running activity
CoreMotion-based activity detection that automatically applies user-selected override presets when walking or running is detected. 7 new files, 2 modified. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent b6e8841 commit 098b68b

10 files changed

+2043
-2
lines changed

Loop.xcodeproj/project.pbxproj

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@
1212
1419606A28D955BC00BA86E0 /* MockKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C101947127DD473C004E7EB8 /* MockKitUI.framework */; };
1313
142CB7592A60BF2E0075748A /* EditMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 142CB7582A60BF2E0075748A /* EditMode.swift */; };
1414
142CB75B2A60BFC30075748A /* FavoriteFoodsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 142CB75A2A60BFC30075748A /* FavoriteFoodsView.swift */; };
15+
AUTOPRESET00000001 /* AutoPresetsDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = AUTOPRESET00000011 /* AutoPresetsDelegate.swift */; };
16+
AUTOPRESET00000002 /* AutoPresetsModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = AUTOPRESET00000012 /* AutoPresetsModels.swift */; };
17+
AUTOPRESET00000003 /* AutoPresetsStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = AUTOPRESET00000013 /* AutoPresetsStorage.swift */; };
18+
AUTOPRESET00000004 /* ActivityDetectionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AUTOPRESET00000014 /* ActivityDetectionManager.swift */; };
19+
AUTOPRESET00000005 /* AutoPresetsCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = AUTOPRESET00000015 /* AutoPresetsCoordinator.swift */; };
20+
AUTOPRESET00000006 /* AutoPresetsSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AUTOPRESET00000016 /* AutoPresetsSettingsView.swift */; };
21+
AUTOPRESET00000007 /* AutoPresetsLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = AUTOPRESET00000017 /* AutoPresetsLogger.swift */; };
1522
1452F4A92A851C9400F8B9E4 /* AddEditFavoriteFoodViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1452F4A82A851C9400F8B9E4 /* AddEditFavoriteFoodViewModel.swift */; };
1623
1452F4AB2A851EDF00F8B9E4 /* AddEditFavoriteFoodView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1452F4AA2A851EDF00F8B9E4 /* AddEditFavoriteFoodView.swift */; };
1724
1452F4AD2A851F8800F8B9E4 /* HowAbsorptionTimeWorksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1452F4AC2A851F8800F8B9E4 /* HowAbsorptionTimeWorksView.swift */; };
@@ -760,6 +767,13 @@
760767
/* Begin PBXFileReference section */
761768
142CB7582A60BF2E0075748A /* EditMode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditMode.swift; sourceTree = "<group>"; };
762769
142CB75A2A60BFC30075748A /* FavoriteFoodsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FavoriteFoodsView.swift; sourceTree = "<group>"; };
770+
AUTOPRESET00000011 /* AutoPresetsDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoPresetsDelegate.swift; sourceTree = "<group>"; };
771+
AUTOPRESET00000012 /* AutoPresetsModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoPresetsModels.swift; sourceTree = "<group>"; };
772+
AUTOPRESET00000013 /* AutoPresetsStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoPresetsStorage.swift; sourceTree = "<group>"; };
773+
AUTOPRESET00000014 /* ActivityDetectionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityDetectionManager.swift; sourceTree = "<group>"; };
774+
AUTOPRESET00000015 /* AutoPresetsCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoPresetsCoordinator.swift; sourceTree = "<group>"; };
775+
AUTOPRESET00000016 /* AutoPresetsSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoPresetsSettingsView.swift; sourceTree = "<group>"; };
776+
AUTOPRESET00000017 /* AutoPresetsLogger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoPresetsLogger.swift; sourceTree = "<group>"; };
763777
1452F4A82A851C9400F8B9E4 /* AddEditFavoriteFoodViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddEditFavoriteFoodViewModel.swift; sourceTree = "<group>"; };
764778
1452F4AA2A851EDF00F8B9E4 /* AddEditFavoriteFoodView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddEditFavoriteFoodView.swift; sourceTree = "<group>"; };
765779
1452F4AC2A851F8800F8B9E4 /* HowAbsorptionTimeWorksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HowAbsorptionTimeWorksView.swift; sourceTree = "<group>"; };
@@ -1658,6 +1672,7 @@
16581672
children = (
16591673
DDC389F52A2B61750066E2E8 /* ApplicationFactorStrategy.swift */,
16601674
B4E2022F2661063E009421B5 /* AutomaticDosingStatus.swift */,
1675+
AUTOPRESET00000012 /* AutoPresetsModels.swift */,
16611676
A9FB75F0252BE320004C7D3F /* BolusDosingDecision.swift */,
16621677
DDC389F92A2B62470066E2E8 /* ConstantApplicationFactorStrategy.swift */,
16631678
C1EF747128D6A44A00C8C083 /* CrashRecoveryManager.swift */,
@@ -1972,6 +1987,7 @@
19721987
C191D2A025B3ACAA00C26C0B /* DosingStrategySelectionView.swift */,
19731988
149A28E32A8A63A700052EDF /* FavoriteFoodDetailView.swift */,
19741989
142CB75A2A60BFC30075748A /* FavoriteFoodsView.swift */,
1990+
AUTOPRESET00000016 /* AutoPresetsSettingsView.swift */,
19751991
43D381611EBD9759007F8C8F /* HeaderValuesTableViewCell.swift */,
19761992
1452F4AC2A851F8800F8B9E4 /* HowAbsorptionTimeWorksView.swift */,
19771993
B43CF07D29434EC4008A520B /* HowMuteAlertWorkView.swift */,
@@ -2001,8 +2017,13 @@
20012017
43F5C2E41B93C5D4003EB13D /* Managers */ = {
20022018
isa = PBXGroup;
20032019
children = (
2020+
AUTOPRESET00000014 /* ActivityDetectionManager.swift */,
20042021
B42D124228D371C400E43D22 /* AlertMuter.swift */,
20052022
1D6B1B6626866D89009AC446 /* AlertPermissionsChecker.swift */,
2023+
AUTOPRESET00000015 /* AutoPresetsCoordinator.swift */,
2024+
AUTOPRESET00000011 /* AutoPresetsDelegate.swift */,
2025+
AUTOPRESET00000017 /* AutoPresetsLogger.swift */,
2026+
AUTOPRESET00000013 /* AutoPresetsStorage.swift */,
20062027
439897361CD2F80600223065 /* AnalyticsServicesManager.swift */,
20072028
B4F3D25024AF890C0095CE44 /* BluetoothStateManager.swift */,
20082029
439BED291E76093C00B0AED5 /* CGMManager.swift */,
@@ -3425,6 +3446,13 @@
34253446
1DA649A9244126DA00F61E75 /* InAppModalAlertScheduler.swift in Sources */,
34263447
43B260491ED248FB008CAA77 /* CarbEntryTableViewCell.swift in Sources */,
34273448
142CB75B2A60BFC30075748A /* FavoriteFoodsView.swift in Sources */,
3449+
AUTOPRESET00000001 /* AutoPresetsDelegate.swift in Sources */,
3450+
AUTOPRESET00000002 /* AutoPresetsModels.swift in Sources */,
3451+
AUTOPRESET00000003 /* AutoPresetsStorage.swift in Sources */,
3452+
AUTOPRESET00000004 /* ActivityDetectionManager.swift in Sources */,
3453+
AUTOPRESET00000005 /* AutoPresetsCoordinator.swift in Sources */,
3454+
AUTOPRESET00000006 /* AutoPresetsSettingsView.swift in Sources */,
3455+
AUTOPRESET00000007 /* AutoPresetsLogger.swift in Sources */,
34283456
A9D5C5B625DC6C6A00534873 /* LoopAppManager.swift in Sources */,
34293457
4302F4E11D4E9C8900F0FCAF /* TextFieldTableViewController.swift in Sources */,
34303458
1452F4AB2A851EDF00F8B9E4 /* AddEditFavoriteFoodView.swift in Sources */,

0 commit comments

Comments
 (0)