Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tidepool Merge #2237

Open
wants to merge 242 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
242 commits
Select commit Hold shift + click to select a range
26e1560
[COASTAL-1291] plugin identifier is no longer class property (#599)
nhamming Sep 25, 2023
cd15934
Fix merge
ps2 Sep 26, 2023
c9501c0
Merge remote-tracking branch 'origin/dev' into ps2/LOOP-4735/cgm-even…
ps2 Sep 26, 2023
6c90138
Merge pull request #600 from tidepool-org/ps2/LOOP-4735/cgm-event-store
ps2 Sep 27, 2023
fe1b0f9
adding testflight configuration (#601)
nhamming Oct 11, 2023
2735876
LOOP-4665: Dosing Recommendations from Stateless LoopAlgorithm (#602)
ps2 Oct 22, 2023
8605166
fixing the restore of a stateful plugin (#603)
nhamming Oct 27, 2023
99b29fd
[LOOP-4721] Copy size change
Camji55 Oct 31, 2023
619f2ad
[LOOP-4721] Copy size change
Camji55 Oct 31, 2023
6e6c6bb
[LOOP-4751] Dark Mode Fix
Camji55 Nov 3, 2023
e2e9ba1
[LOOP-4751] Dark Mode Fix
Camji55 Nov 6, 2023
9ccb7dd
[PAL-172] only display pump manager provided HUD view when there is n…
nhamming Dec 1, 2023
62b673b
[PAL-236] when bolus amount exceeds max, display warning (#608)
nhamming Dec 18, 2023
58e6a2a
LOOP-4752 Integrate stateless algorithm into Loop (#606)
ps2 Dec 19, 2023
8f99328
Temporarily Disable Favorite Foods
Camji55 Jan 12, 2024
5dea8ff
Merge pull request #609 from tidepool-org/disable-favorite-foods
Camji55 Jan 16, 2024
1926549
[LOOP-4716] iOS 17 Widget Fixes
Camji55 Jan 16, 2024
97d5e10
[LOOP-4788] Fix Unit Tests for iOS 17
Camji55 Jan 16, 2024
bcd2505
[LOOP-4716] iOS 17 Widget Fixes
Camji55 Jan 16, 2024
e2f4b50
[LOOP-4788] Fix Unit Tests for iOS 17
Camji55 Jan 16, 2024
de382e6
revert change for experimental features (#612)
nhamming Jan 22, 2024
2d5a3bc
[LOOP-4762] Fix Alert Management Icon Alignment
Camji55 Jan 22, 2024
af427d0
Merge branch 'dev' into cameron/LOOP-4762-alert-management-icon-align…
Camji55 Jan 22, 2024
27ea94b
[LOOP-4762] Fix Alert Management Icon Alignment
Camji55 Jan 23, 2024
d4b6420
[PAL-360] refactoring CancelTempBasalFailedError when .maximumBasalRa…
nhamming Jan 26, 2024
e413036
always load extensions (#615)
nhamming Jan 29, 2024
04583c3
[LOOP-4793] Beginning XCUI Tests
Camji55 Feb 8, 2024
b8f7b23
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Feb 8, 2024
b08b57f
[LOOP-4793] Beginning XCUI Tests
Camji55 Feb 8, 2024
362b68e
[LOOP-4793] Beginning XCUI Tests
Camji55 Feb 14, 2024
0d7ce81
[LOOP-4793] Beginning XCUI Tests
Camji55 Feb 14, 2024
c9dbc95
Fail loop if pump data is too old (#618)
ps2 Feb 16, 2024
db05327
[LOOP-4793] Beginning XCUI Tests
Camji55 Feb 20, 2024
4ac1f3f
[LOOP-4793] Beginning XCUI Tests
Camji55 Feb 20, 2024
ab646a8
[LOOP-4793] Beginning XCUI Tests
Camji55 Feb 22, 2024
7058b87
[LOOP-4548] Fix 0 Value Placeholder in Simple Bolus Calculator
Camji55 Feb 28, 2024
373c6c8
[LOOP-4548] Fix 0 Value Placeholder in Simple Bolus Calculator
Camji55 Feb 29, 2024
6796540
[LOOP-4548] Fix 0 Value Placeholder in Simple Bolus Calculator Tests
Camji55 Feb 29, 2024
41c8031
[LOOP-4548] Fix 0 Value Placeholder in Simple Bolus Calculator Tests
Camji55 Feb 29, 2024
0bd52ba
LOOP-4781 Loop to use LoopAlgorithm swift package (#617)
ps2 Mar 5, 2024
f35a3a6
[LOOP-4807] need to round the bolus before added to the context (#621)
nhamming Mar 14, 2024
ea73ac5
[LOOP-4782] 10s Canceled Bolus Status Banner
Camji55 Mar 19, 2024
21c78cd
[PAL-478] needed to trigger viewDidAppear to present the modal after …
nhamming Mar 20, 2024
d97b329
[PAL-471] allow manual glucose entry when recommendManualGlucoseEntry…
nhamming Mar 20, 2024
6c9a0cd
[LOOP-4782] 10s Canceled Bolus Status Banner
Camji55 Mar 21, 2024
d5140bf
[LOOP-4824] updating ZipFoundation (#626)
nhamming Mar 21, 2024
72fca58
[PAL-458] Adding the check for rapidly rising glucose (#622)
nhamming Mar 21, 2024
8c92e37
[PAL-471] reverting recent updates and adding missing loop algorithm …
nhamming Mar 26, 2024
d4dcb2f
[PAL-466-468] start the carb ratio at the most distant entry time (#628)
nhamming Mar 28, 2024
aa87bd8
[PAL-458] should be >= 3 (#629)
nhamming Mar 28, 2024
cf8fe2b
[LOOP-4782] 10s Canceled Bolus Status Banner
Camji55 Apr 2, 2024
9fffbf7
[LOOP-4782] 10s Canceled Bolus Status Banner
Camji55 Apr 2, 2024
5957dac
[PAL-470] hide action area when enter bolus is tapped (#630)
nhamming Apr 4, 2024
10e5477
[LOOP-4782] 10s Canceled Bolus Status Banner
Camji55 Apr 5, 2024
ae28436
[PAL-502] Recommendation updated (#631)
nhamming Apr 10, 2024
0103da2
[LOOP-4841-4843] updated bolus completed check (#632)
nhamming Apr 12, 2024
cbbc6c3
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Apr 15, 2024
b6e9a01
Keep DoseStore basal profile current (#635)
ps2 Apr 25, 2024
b7d8021
[PAL-511] do not reset tidepool service default environment (#636)
nhamming Apr 29, 2024
9238756
[COASTAL-1378] allow alerts during onboarding (#637)
nhamming Apr 30, 2024
f597c8a
[LOOP-4852] clamp to min...max (#633)
nhamming May 2, 2024
634799c
Update to new method signature (#638)
ps2 May 9, 2024
8675590
[LOOP-4863] Notification Permission Alert Updates
Camji55 May 9, 2024
f48135f
ConfirmationToggle and LoopStatusCircleView
ArwainK May 10, 2024
0fa9e69
Merge branch 'dev' into LOOP-4870
ArwainK May 10, 2024
79c82fc
Update LoopStatusCircleView rendering
ArwainK May 10, 2024
4f3b150
Merge pull request #639 from tidepool-org/cameron/LOOP-4863-notificat…
Camji55 May 21, 2024
1a64cdc
Merge branch 'dev' into LOOP-4870
ArwainK May 21, 2024
a9a6494
[LOOP-4870] Misc cleanup
Camji55 May 22, 2024
df920e6
[LOOP-4870] Misc cleanup
Camji55 May 22, 2024
3044b00
[LOOP-4870] Misc cleanup
Camji55 May 22, 2024
8e28c7f
[PAL-615] Scenario Loading Fixes
Camji55 May 24, 2024
ef4acc6
[PAL-615] Scenario Loading Fixes
Camji55 May 24, 2024
768946a
[PAL-615] Scenario Loading Fixes
Camji55 May 24, 2024
1ac9bfc
[PAL-615] Scenario Loading Fixes
Camji55 May 24, 2024
06d98e4
Merge branch 'dev' into LOOP-4870
ArwainK May 25, 2024
b34efc8
Update SettingsView section header to use localizedAppNameAndVersion
ArwainK May 25, 2024
a85263d
Merge pull request #640 from tidepool-org/LOOP-4870
ArwainK May 25, 2024
dc77394
reload CGM manager is async
nhamming May 29, 2024
a64473a
cleanup
Camji55 May 29, 2024
9ded17b
reload CGM manager is async
Camji55 May 30, 2024
2933402
Move LoopStatusCircleView and ConfirmationToggle to LoopKit
ArwainK Jun 3, 2024
4131fad
[LOOP-4883] Simple Calculator UI Updates
Camji55 Jun 4, 2024
b816eaa
[LOOP-4883] Simple Calculator UI Updates
Camji55 Jun 4, 2024
1433ae1
[LOOP-4869] Move LoopStatusCircleView and ConfirmationToggle to LoopKit
Camji55 Jun 4, 2024
7333fa3
[LOOP-4870] LoopCircleView Updates
Camji55 Jun 4, 2024
198c7f5
[LOOP-4870] LoopCircleView Updates
Camji55 Jun 4, 2024
a7a0518
[LOOP-4870] LoopCircleView Updates
Camji55 Jun 4, 2024
21a6d1c
[LOOP-4870] LoopCircleView Updates
Camji55 Jun 4, 2024
3ff80ab
[LOOP-4870] LoopCircleView Updates
Camji55 Jun 4, 2024
7bbffac
[LOOP-4870] Fix tests
Camji55 Jun 4, 2024
6d48072
[LOOP-4870] Fix tests
Camji55 Jun 5, 2024
22e09c9
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Jun 6, 2024
23fc33e
[LOOP-4882] Mute App Sounds UI Updates
Camji55 Jun 6, 2024
895e382
[LOOP-4882] Mute App Sounds UI Updates
Camji55 Jun 6, 2024
727e09f
[LOOP-4870] Fix tests
Camji55 Jun 6, 2024
126b7c5
[LOOP-4801] adding pump failure and check during looping (#649)
nhamming Jun 7, 2024
a59478a
[LOOP-4890] revert change to acceptable color (#652)
nhamming Jun 10, 2024
081fd92
LOOP-1169 Upload device logs (#644)
ps2 Jun 10, 2024
89fb057
[LOOP-4890] adding loop status color to the environment (#653)
nhamming Jun 10, 2024
537471f
[PAL-638] report resume immediately after suspend (#650)
nhamming Jun 11, 2024
904e1ae
[LOOP-4847] align COB value (#651)
nhamming Jun 11, 2024
1fdf096
Merge branch 'dev' into cameron/LOOP-4882
Camji55 Jun 11, 2024
f5f6ac5
[LOOP-4882] Mute App Sounds UI Updates
Camji55 Jun 11, 2024
26ffff0
[LOOP-4882] Mute App Sounds UI Updates
Camji55 Jun 11, 2024
133818f
[LOOP-4882] Mute App Sounds UI Updates
Camji55 Jun 12, 2024
ae150f9
[LOOP-4882] Mute App Sounds Enhancements
Camji55 Jun 12, 2024
957d5c6
[LOOP-4882] Mute App Sounds Enhancements Design Review Feedback
Camji55 Jun 12, 2024
9aa88e7
DoseStore add reservoir updated to async (#656)
ps2 Jun 12, 2024
ed0bc2e
[PAL-666] also defer retractions, since cooresponding alerts will not…
nhamming Jun 13, 2024
c45d75b
[LOOP-4882] Mute App Sounds UI Updates
Camji55 Jun 13, 2024
40b0eb0
[LOOP-4882] Mute App Sounds Enhancements Design Review Feedback
Camji55 Jun 13, 2024
f901de5
LOOP-4849 Fix watch display bugs around handling GlucoseCondition (#659)
ps2 Jun 14, 2024
543ea17
[LOOP-4882] Mute App Sounds Button Label Update
Camji55 Jun 14, 2024
e3b3eed
[LOOP-4882] Mute App Sounds Button Label Update
Camji55 Jun 14, 2024
44298fc
[LOOP-4882] Mute App Sounds iOS Permissions Button Changes
Camji55 Jun 14, 2024
0c9cf49
[LOOP-4882] Mute App Sounds iOS Permissions Button Changes
Camji55 Jun 14, 2024
236e87f
[LOOP-4882] Mute App Sounds iOS Permissions Button Changes
Camji55 Jun 14, 2024
6b31bf4
[LOOP-4863] updated handling of notification permissions (#661)
nhamming Jun 14, 2024
b40a368
Update host identifier for plugins, which is used for dataset name in…
ps2 Jun 14, 2024
9ead16d
Support building Loop with Xcode 16
Camji55 Jun 17, 2024
4f061b1
[PAL-679] divider is full width of list (#665)
nhamming Jun 17, 2024
638dd3c
[LOOP-4884] notify that loop finished (#666)
nhamming Jun 17, 2024
3b54cd2
Support building Loop with Xcode 16
Camji55 Jun 18, 2024
51982ac
[LOOP-4863] corrected copy (#669)
nhamming Jun 18, 2024
f05851f
[LOOP-4097] only upload data after onboarding is complete (#668)
nhamming Jun 19, 2024
991f7a9
[LOOP-4908] Bolus Status Banner UI Updates
Camji55 Jun 20, 2024
fd8d86d
[LOOP-4908] Bolus Status Banner UI Updates
Camji55 Jun 20, 2024
aa5304a
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Jun 20, 2024
4938d26
[LOOP-4908] Bolus Status Banner UI Updates
Camji55 Jun 21, 2024
9f2cc11
[LOOP-4910] Mute All App Sounds Copy Update
Camji55 Jun 24, 2024
21c6e58
[LOOP-4910] Mute All App Sounds Copy Update
Camji55 Jun 24, 2024
1ae3a5f
[LOOP-4853] Date in event history (#634)
nhamming Jun 25, 2024
5bf071f
[LOOP-4910] Mute All App Sounds Copy Update
Camji55 Jun 25, 2024
ba3942e
Remove suspend effect from glucose prediction details page (#673)
ps2 Jun 25, 2024
fec3635
[LOOP-4683] align IOB (#660)
nhamming Jun 27, 2024
19b6d0a
[PAL-612] protect selecdting carb entry when automative dosing off (#…
nhamming Jun 27, 2024
df5215f
[LOOP-4877] block UI updates for certaint bolus transitions (#674)
nhamming Jun 27, 2024
2e188b3
set max fractional digits to 2
nhamming Jun 28, 2024
09845cf
removed commented out code
nhamming Jun 28, 2024
2f5b94c
[LOOP-4390] Mute All App Sounds Picker UX Enhancement
Camji55 Jul 1, 2024
7d36e70
[LOOP-4390] Mute All App Sounds Picker UX Enhancement
Camji55 Jul 1, 2024
5946705
[LOOP-4390] Mute All App Sounds Picker UX Enhancement
Camji55 Jul 1, 2024
249cc6c
[PAL-653] Investigation Device Warning
Camji55 Jul 2, 2024
4501dae
[PAL-653] Investigation Device Warning
Camji55 Jul 2, 2024
a6284f1
[LOOP-4683] set max fractional digits to 2
Camji55 Jul 2, 2024
c91a09d
Merge branch 'dev' into cameron/PAL-653-investigation-device-warning
Camji55 Jul 2, 2024
7952770
[PAL-653] Investigation Device Warning
Camji55 Jul 3, 2024
eb70fac
[LOOP-4884] when loop opens and loop status icon is animated, stop an…
nhamming Jul 4, 2024
d11d435
allow insulin model selection configuration (#654)
nhamming Jul 8, 2024
af3a02d
[PAL-653] Investigation Device Warning
Camji55 Jul 8, 2024
f501048
Merge branch 'dev' into cameron/PAL-653-investigation-device-warning
Camji55 Jul 8, 2024
52252f2
[PAL-653] Investigation Device Warning
Camji55 Jul 8, 2024
def824f
[LOOP-4942] Use proper guidanceColors for DismissableHostingController
Camji55 Jul 8, 2024
ece83cc
[LOOP-4942] Use proper guidanceColors for DismissableHostingController
Camji55 Jul 9, 2024
d7c6532
[LOOP-4942] Use proper guidanceColors for DismissableHostingController
Camji55 Jul 9, 2024
a82befb
[LOOP-4905] Separating new data from uploads to remove blocking queue…
nhamming Jul 10, 2024
578ad3d
Only show pump events with doses (#682)
ps2 Jul 10, 2024
af0c417
[LOOP-4683] Add unit to IOB
Camji55 Jul 11, 2024
451935a
[LOOP-4683] Add unit to IOB
Camji55 Jul 11, 2024
e2898de
[LOOP-4877] need to keep track of bolusState during transitions (#683)
nhamming Jul 11, 2024
ae58355
Fix issue with target override application (#685)
ps2 Jul 16, 2024
8e6158f
[LOOP-4954, LOOP-4957] UI Enhancement for favorite foods in Carb Entr…
SwiftlyNoah Jul 24, 2024
030035b
Fix cyclical loop in tests (#688)
SwiftlyNoah Jul 24, 2024
909370c
[LOOP-4884] Use LoopCircleView for LoopStateView / SwiftUI Interop
Camji55 Jul 24, 2024
c04b368
[LOOP-4884] Use LoopCircleView for LoopStateView / SwiftUI Interop
Camji55 Jul 25, 2024
0ebc9ff
Merge branch 'dev' into cameron/LOOP-4884-pulsing-loop-status
Camji55 Jul 25, 2024
aaf56cc
Merge branch 'dev' into cameron/LOOP-4884-pulsing-loop-status
Camji55 Jul 25, 2024
a601a2f
[LOOP-4884] Use LoopCircleView for LoopStateView / SwiftUI Interop
Camji55 Jul 25, 2024
ebe4d78
[LOOP-4884] Use LoopCircleView for LoopStateView / SwiftUI Interop
Camji55 Jul 25, 2024
d7149e1
[PAL-694] issue report includes 100 most recent alerts (#690)
nhamming Jul 30, 2024
7ef44d1
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Jul 30, 2024
ff5f5fa
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Jul 30, 2024
22ebe68
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Jul 30, 2024
5a7a7ff
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Jul 30, 2024
24156a2
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Jul 30, 2024
26c798f
LoopChartView + refactored PredictedGlucoseChartView
SwiftlyNoah Jul 31, 2024
923a5eb
[LOOP-4956] SwiftUI views for rest of loop charts
SwiftlyNoah Jul 31, 2024
a23baa5
[LOOP-4956] SwiftUI view for GlucoseCarbChart
SwiftlyNoah Jul 31, 2024
3db82da
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Jul 31, 2024
75006ce
[LOOP-4978] Favorite Food Insights card in CarbEntryView
SwiftlyNoah Aug 1, 2024
8d7652a
[LOOP-4953] Favorite Foods Insights Page
SwiftlyNoah Aug 2, 2024
f007ee7
Fix for landscape CarbEntryView/FavoriteFoodInsightsView
SwiftlyNoah Aug 5, 2024
2c914f8
Renaming/organizing favorite foods
SwiftlyNoah Aug 5, 2024
bfa714b
[LOOP-4942] Fix path to BolusEntryView with missing guidanceColors
Camji55 Aug 5, 2024
4fa7686
[LOOP-4942] Fix path to BolusEntryView with missing guidanceColors
Camji55 Aug 5, 2024
cee1369
Allow editing of favorite foods on detail view
SwiftlyNoah Aug 5, 2024
f6c10cf
Add edit/insights screens to favorite food detail view
SwiftlyNoah Aug 6, 2024
e02190c
Improve foodType/name UX for favorite foods
SwiftlyNoah Aug 6, 2024
871b48c
[LOOP-4982] Fix manual dose screen
SwiftlyNoah Aug 7, 2024
d6354da
Merge branch 'dev' into noah/LOOP-4953/favorite-food-insights
SwiftlyNoah Aug 7, 2024
bbfa148
Edit carb entry screen: favorite food insights + allow removal of fav…
SwiftlyNoah Aug 7, 2024
1b67115
Add analytics for favorite foods
SwiftlyNoah Aug 7, 2024
9ca5088
Code cleanup
SwiftlyNoah Aug 7, 2024
d737086
Merge pull request #691 from tidepool-org/noah/LOOP-4953/favorite-foo…
SwiftlyNoah Aug 8, 2024
dd8b59b
[LOOP-4994] Widget asset fix
SwiftlyNoah Aug 9, 2024
33337f2
Widget spacing ui fix
SwiftlyNoah Aug 9, 2024
c22b37f
Code cleanup
SwiftlyNoah Aug 9, 2024
a30cd12
[LOOP-4994] Fix rest of assets
SwiftlyNoah Aug 9, 2024
c80c8bb
Merge pull request #693 from tidepool-org/noah/LOOP-4994/widget-asset…
SwiftlyNoah Aug 9, 2024
2cf145e
Fix double arrow trend image not appearing on widget (#694)
SwiftlyNoah Aug 9, 2024
eea2354
[LOOP-4987] Fix color cycle of Loop Status
Camji55 Aug 9, 2024
4e3a0d6
[LOOP-4987] Fix color cycle of Loop Status
Camji55 Aug 12, 2024
4775711
LOOP-4960 Upload settings on restart (#697)
ps2 Aug 23, 2024
f55dac2
LOOP-4769 Premeal Storage (#698)
ps2 Aug 27, 2024
4c7978b
[LOOP-4945] remove stale glucose timer from CGM status HUD view (#699)
nhamming Sep 6, 2024
149925f
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Sep 9, 2024
2192d6b
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Sep 9, 2024
3761d96
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Sep 9, 2024
ae4dffa
Merge branch 'dev' into cameron/LOOP-4793
Camji55 Sep 9, 2024
9b89125
Cleanup
Camji55 Sep 10, 2024
d4cb32f
Cleanup
Camji55 Sep 10, 2024
48c44ac
Cleanup
Camji55 Sep 11, 2024
e0d901e
remove tidepool references
Camji55 Sep 11, 2024
d640b55
[LOOP-4793] Beginning XCUI Tests
Camji55 Sep 11, 2024
b6f2594
Use LoopAlgorithm basal overlay for computing total delivery (#700)
ps2 Sep 11, 2024
5dab230
LOOP-4098 Overlay basal from history timeline instead of schedule (#701)
ps2 Sep 13, 2024
5c35de6
[LOOP-4975] Update Open Loop Freshness Logic and Labeling
Camji55 Sep 13, 2024
22094e7
Add missing returns (#702)
ps2 Sep 14, 2024
198e120
[LOOP-4975] Naming Update
Camji55 Sep 16, 2024
aaf9a5c
Merge branch 'dev' into cameron/LOOP-4975-open-loop-icon-messaging-up…
Camji55 Sep 16, 2024
9486373
[LOOP-4975] Update Open Loop Freshness Logic and Labeling
Camji55 Sep 16, 2024
9e1a8c9
[PAL-704] removing debug from testflight (#704)
nhamming Sep 18, 2024
f9c01eb
[LOOP-4975] Update Open Loop Freshness Syncing Between StatusHUD and …
Camji55 Sep 19, 2024
f417eaf
[LOOP-4975] Update Open Loop Tests (#707)
Camji55 Sep 19, 2024
96c8481
Track automation history (#708)
ps2 Sep 20, 2024
a611867
Fix initialization order (#709)
ps2 Sep 20, 2024
5c129d7
[PAL-798] assign deliveryDelegate (#711)
nhamming Oct 2, 2024
63c11b4
Support remote data services with automation history (#710)
ps2 Oct 2, 2024
f3480b0
Merge commit '63c11b470c8fbe4c79208a98cbcbab5f47b0960e'
ps2 Oct 5, 2024
72078f0
LOOP-5088 Update Loop for LoopKit api changes for avoiding thread blo…
ps2 Oct 11, 2024
fd1130e
[LOOP-5107] async cgm manager wants deletion (#714)
Camji55 Oct 15, 2024
7804046
Enable mid-absorption ISF, and update forecast on settings change (#715)
ps2 Oct 15, 2024
cc8f328
LOOP-4665 Fix bugs relating to determining span of time to use for IS…
ps2 Oct 16, 2024
fb2ba32
[LOOP-5119] handle history events across 2 sections (#717)
nhamming Oct 23, 2024
3fe998b
LOOP-5122 onboarding updates (#719)
ps2 Oct 25, 2024
95901af
merge
ps2 Oct 27, 2024
b833eb4
Merge tidepool/dev
ps2 Oct 27, 2024
8805452
[PAL-818] block mock service when simulators are not allowed (#721)
nhamming Oct 29, 2024
3654d9d
[PAL-818] pass allowDebugFeatures to service (#722)
nhamming Oct 30, 2024
14686ef
Merge tidepool/dev
ps2 Oct 31, 2024
438096a
Use current data for manual injection prediction
ps2 Oct 31, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//
// Comparable.swift
// WatchApp Extension
// Loop
//
// Created by Michael Pangburn on 3/27/20.
// Copyright © 2020 LoopKit Authors. All rights reserved.
Expand Down
22 changes: 22 additions & 0 deletions Common/Extensions/NSBundle.swift
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,27 @@ extension Bundle {
}
return .days(localCacheDurationDays)
}

var hostIdentifier: String {
var identifier = bundleIdentifier ?? "com.loopkit.Loop"
let components = identifier.components(separatedBy: ".")
// DIY Loop has bundle identifiers like com.UY653SP37Q.loopkit.Loop
if components[2] == "loopkit" && components[3] == "Loop" {
identifier = "com.loopkit.Loop"
}
return identifier
}

var hostVersion: String {
var semanticVersion = shortVersionString

while semanticVersion.split(separator: ".").count < 3 {
semanticVersion += ".0"
}

semanticVersion += "+\(Bundle.main.version)"

return semanticVersion
}
}

2 changes: 1 addition & 1 deletion Common/Extensions/SampleValue.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import HealthKit
import LoopKit

import LoopAlgorithm

extension Collection where Element == SampleValue {
/// O(n)
Expand Down
11 changes: 9 additions & 2 deletions Common/FeatureFlags.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ struct FeatureFlagConfiguration: Decodable {
let profileExpirationSettingsViewEnabled: Bool
let missedMealNotifications: Bool
let allowAlgorithmExperiments: Bool

let isInvestigationalDevice: Bool

fileprivate init() {
// Swift compiler config is inverse, since the default state is enabled.
Expand Down Expand Up @@ -232,6 +232,12 @@ struct FeatureFlagConfiguration: Decodable {
#else
self.allowAlgorithmExperiments = false
#endif

#if INVESTIGATIONAL_DEVICE
self.isInvestigationalDevice = true
#else
self.isInvestigationalDevice = false
#endif
}
}

Expand Down Expand Up @@ -267,7 +273,8 @@ extension FeatureFlagConfiguration : CustomDebugStringConvertible {
"* profileExpirationSettingsViewEnabled: \(profileExpirationSettingsViewEnabled)",
"* missedMealNotifications: \(missedMealNotifications)",
"* allowAlgorithmExperiments: \(allowAlgorithmExperiments)",
"* allowExperimentalFeatures: \(allowExperimentalFeatures)"
"* allowExperimentalFeatures: \(allowExperimentalFeatures)",
"* isInvestigationalDevice: \(isInvestigationalDevice)"
].joined(separator: "\n")
}
}
Expand Down
86 changes: 80 additions & 6 deletions Common/Models/LoopSettingsUserInfo.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,67 @@
//

import LoopCore
import LoopKit

struct LoopSettingsUserInfo: Equatable {
var loopSettings: LoopSettings
var scheduleOverride: TemporaryScheduleOverride?
var preMealOverride: TemporaryScheduleOverride?

public mutating func enablePreMealOverride(at date: Date = Date(), for duration: TimeInterval) {
preMealOverride = makePreMealOverride(beginningAt: date, for: duration)
}

private func makePreMealOverride(beginningAt date: Date = Date(), for duration: TimeInterval) -> TemporaryScheduleOverride? {
guard let preMealTargetRange = loopSettings.preMealTargetRange else {
return nil
}
return TemporaryScheduleOverride(
context: .preMeal,
settings: TemporaryScheduleOverrideSettings(targetRange: preMealTargetRange),
startDate: date,
duration: .finite(duration),
enactTrigger: .local,
syncIdentifier: UUID()
)
}

public mutating func clearOverride(matching context: TemporaryScheduleOverride.Context? = nil) {
if context == .preMeal {
preMealOverride = nil
return
}

guard let scheduleOverride = scheduleOverride else { return }

if let context = context {
if scheduleOverride.context == context {
self.scheduleOverride = nil
}
} else {
self.scheduleOverride = nil
}
}

public func nonPreMealOverrideEnabled(at date: Date = Date()) -> Bool {
return scheduleOverride?.isActive(at: date) == true
}

public mutating func legacyWorkoutOverride(beginningAt date: Date = Date(), for duration: TimeInterval) -> TemporaryScheduleOverride? {
guard let legacyWorkoutTargetRange = loopSettings.legacyWorkoutTargetRange else {
return nil
}

return TemporaryScheduleOverride(
context: .legacyWorkout,
settings: TemporaryScheduleOverrideSettings(targetRange: legacyWorkoutTargetRange),
startDate: date,
duration: duration.isInfinite ? .indefinite : .finite(duration),
enactTrigger: .local,
syncIdentifier: UUID()
)
}

struct LoopSettingsUserInfo {
let settings: LoopSettings
}


Expand All @@ -23,19 +80,36 @@ extension LoopSettingsUserInfo: RawRepresentable {
guard rawValue["v"] as? Int == LoopSettingsUserInfo.version,
rawValue["name"] as? String == LoopSettingsUserInfo.name,
let settingsRaw = rawValue["s"] as? LoopSettings.RawValue,
let settings = LoopSettings(rawValue: settingsRaw)
let loopSettings = LoopSettings(rawValue: settingsRaw)
else {
return nil
}

self.settings = settings
self.loopSettings = loopSettings

if let rawScheduleOverride = rawValue["o"] as? TemporaryScheduleOverride.RawValue {
self.scheduleOverride = TemporaryScheduleOverride(rawValue: rawScheduleOverride)
} else {
self.scheduleOverride = nil
}

if let rawPreMealOverride = rawValue["p"] as? TemporaryScheduleOverride.RawValue {
self.preMealOverride = TemporaryScheduleOverride(rawValue: rawPreMealOverride)
} else {
self.preMealOverride = nil
}
}

var rawValue: RawValue {
return [
var raw: RawValue = [
"v": LoopSettingsUserInfo.version,
"name": LoopSettingsUserInfo.name,
"s": settings.rawValue
"s": loopSettings.rawValue
]

raw["o"] = scheduleOverride?.rawValue
raw["p"] = preMealOverride?.rawValue

return raw
}
}
4 changes: 2 additions & 2 deletions Common/Models/PumpManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ import MockKit
import MockKitUI

let staticPumpManagersByIdentifier: [String: PumpManagerUI.Type] = [
MockPumpManager.pluginIdentifier : MockPumpManager.self
MockPumpManager.managerIdentifier : MockPumpManager.self
]

var availableStaticPumpManagers: [PumpManagerDescriptor] {
if FeatureFlags.allowSimulators {
return [
PumpManagerDescriptor(identifier: MockPumpManager.pluginIdentifier, localizedTitle: MockPumpManager.localizedTitle)
PumpManagerDescriptor(identifier: MockPumpManager.managerIdentifier, localizedTitle: MockPumpManager.localizedTitle)
]
} else {
return []
Expand Down
7 changes: 7 additions & 0 deletions Common/Models/StatusExtensionContext.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import Foundation
import HealthKit
import LoopKit
import LoopKitUI
import LoopAlgorithm


struct NetBasalContext {
Expand Down Expand Up @@ -295,6 +296,8 @@ struct StatusExtensionContext: RawRepresentable {

var predictedGlucose: PredictedGlucoseContext?
var lastLoopCompleted: Date?
var mostRecentGlucoseDataDate: Date?
var mostRecentPumpDataDate: Date?
var createdAt: Date?
var isClosedLoop: Bool?
var preMealPresetAllowed: Bool?
Expand Down Expand Up @@ -327,6 +330,8 @@ struct StatusExtensionContext: RawRepresentable {
}

lastLoopCompleted = rawValue["lastLoopCompleted"] as? Date
mostRecentGlucoseDataDate = rawValue["mostRecentGlucoseDataDate"] as? Date
mostRecentPumpDataDate = rawValue["mostRecentPumpDataDate"] as? Date
createdAt = rawValue["createdAt"] as? Date
isClosedLoop = rawValue["isClosedLoop"] as? Bool
preMealPresetAllowed = rawValue["preMealPresetAllowed"] as? Bool
Expand Down Expand Up @@ -368,6 +373,8 @@ struct StatusExtensionContext: RawRepresentable {

raw["predictedGlucose"] = predictedGlucose?.rawValue
raw["lastLoopCompleted"] = lastLoopCompleted
raw["mostRecentGlucoseDataDate"] = mostRecentGlucoseDataDate
raw["mostRecentPumpDataDate"] = mostRecentPumpDataDate
raw["createdAt"] = createdAt
raw["isClosedLoop"] = isClosedLoop
raw["preMealPresetAllowed"] = preMealPresetAllowed
Expand Down
1 change: 1 addition & 0 deletions Common/Models/WatchContext.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import Foundation
import HealthKit
import LoopKit
import LoopAlgorithm


final class WatchContext: RawRepresentable {
Expand Down
1 change: 1 addition & 0 deletions Common/Models/WatchHistoricalGlucose.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import Foundation
import HealthKit
import LoopKit
import LoopAlgorithm

struct WatchHistoricalGlucose {
let samples: [StoredGlucoseSample]
Expand Down
3 changes: 2 additions & 1 deletion Common/Models/WatchPredictedGlucose.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import Foundation
import LoopKit
import HealthKit
import LoopAlgorithm


struct WatchPredictedGlucose: Equatable {
Expand All @@ -29,7 +30,7 @@ extension WatchPredictedGlucose: RawRepresentable {
var rawValue: RawValue {

return [
"v": values.map { Int16($0.quantity.doubleValue(for: .milligramsPerDeciliter)) },
"v": values.map { Int16($0.quantity.doubleValue(for: .milligramsPerDeciliter).clamped(to: Double(Int16.min)...Double(Int16.max))) },
"d": values[0].startDate,
"i": values[1].startDate.timeIntervalSince(values[0].startDate)
]
Expand Down
1 change: 0 additions & 1 deletion Learn/Managers/DataManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ final class DataManager {
healthStore: healthStore,
cacheStore: cacheStore,
observationEnabled: false,
insulinModelProvider: PresetInsulinModelProvider(defaultRapidActingModel: defaultRapidActingModel),
longestEffectDuration: ExponentialInsulinModelPreset.rapidActingAdult.effectDuration,
basalProfile: basalRateSchedule,
insulinSensitivitySchedule: insulinSensitivitySchedule,
Expand Down
3 changes: 0 additions & 3 deletions Loop Status Extension/Base.lproj/InfoPlist.strings

This file was deleted.

5 changes: 0 additions & 5 deletions Loop Status Extension/Base.lproj/Localizable.strings

This file was deleted.

Loading