-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
feature: Live Activity #2191
base: dev
Are you sure you want to change the base?
feature: Live Activity #2191
Conversation
Bump version to 3.5.0 to signify dev branch
Love the draft/prototype! Would love to see this make it into the project down the line I think it looks amazing! |
Built onto my real phone. Thanks so much for making this available. 👍 |
I have been using this for several days - I really enjoy having it attached to Loop. Bug report:
Feature requests:
|
Thanks for all the feedback:
Preview
|
Nice upgrade except the override appears confused.
|
The walking override started at 1:47 with a duration of 3 hours and was cancelled 19 minutes later.
|
I did a bit more testing.
|
Bug reportWhen using Nightscout as CGM, it appears that the data will always be reported as stale. For additional context on this issue, Nightscout is reading from LibreLinkUp, and thus reporting blood glucose values on a 1-minute interval, which may affect how this is handled. Using v3.4.1 with the latest customization as of today. |
Hi @partcoffee , This behaviour is correct. The Live Activity doesnt keep iOS from suspending the app (also called Heartbeath). This also means that Loop isn't doing anything while the app is suspended. Jumping to conclusion, I assume you use Loop as a following app (just watching the BG values from NightScout). There are a few ways to correct this:
|
Thanks for the clarification, but I'm using Nightscout as a CGM with Omnipod Dash, which functions as a heartbeat as well from my understanding. Loop is running its normal closed loop activities in the background like bolusing and suspending basal based on the readings from Nightscout. My CGM is not compatible unfortunately, which is why Nightscout is being used. The Live Activity is reporting the data as stale immediately, and not after a few minutes, when the app in theory still would be "awake". |
@partcoffee My bad. Thank you for the clarification! I think you are spot on with the 1 minute time interval. The LA has a limit for the amount of data I can send to the widget, too much data leads to the Widget always being stale. So I can limit the amount of samples being send to the widget even further, but that would limit the usages of the LA. You could try to limit the glucoseSamples yourself for the LA maybe to 70: https://github.com/bastiaanv/Loop/blob/feat/live-activity/Loop/Managers/Live%20Activity/GlucoseActivityManager.swift#L183 But the best solution would be to limit the amount of Glucose samples in Nightscout. Maybe the import script you are running allows for something like that? |
@marionbarker I fixed your reported bugs! I also made that when you open Loop and the LA isn't showing but is activated, that Loop will recreate the LA, without the need to re-enable LA or kill Loop |
@bastiaanv Thanks for looking in to it! I'll do some tinkering with it myself, I know it's a very niche issue. I think the best approach would be to alter Nightscout, as you suggested. Loop runs a lot better with 5 minute intervals. |
Good luck! If you need help, you can always contact me via DM on Zulipchat |
@marionbarker Update the PR to include a save button and minor bg coloring fix |
Not published yet in CustomizationSelect. Test result 1The stale override that expired at end of duration is fixed. Save is almost okThe save button is there but does not seem to work quite right.
I rebooted the phone and got the same behavior. |
@bastiaanv, thanks so much for putting this together. I put this together last night and had a few notes that I was hoping to pass along for you to consider incorporating into the next commit:
I built this last night with the code. This feature is so awesome. I'm already finding it much more convenient to keep ann eye on things than before. :) And for those who are not as technically savvy as me, I followed the instructions at https://www.loopandlearn.org/custom-code/ which easily allowed me to pull in a set list of customizations, including this one. :) |
@rfmurphy81 First of all, thank you for your feedback! Really appreciate it. I will try to find some time to fix the save button soon! About point 1: The only option currently is to disable BG colouring, but since the save button doesnt work correctly it is hard to try that option. Other idea: would less opacity in the background be a solution for you? Because I think changing the color would be a solution for your background color, but not for someone else. Having less opacity in the widget would leave the widget less vulnerable to this issue. About point 2: I found the code for the y-axis calculation for the Loop chart, will use that code as soon as I try to fix the save button! |
@marionbarker I updated the LA with the following:
Do you have time for a update of the customisation? |
The most recent updates to Live Activity have been incorporated in the customization script. Run the script again and you will be offered an update to Live Activity if you already have it installed.
Documentation overview for the script: https://www.loopandlearn.org/custom-code/#overview |
Just wanted to share something I just noticed - that with the live activity running, if my phone is in StandBy (mine is on a MagSafe desk charger), it shows my BG as a small bubble in the upper right of the clock and I can tap that and see the live activity full screen. Pretty neat!! Keep up the good work everyone! Thank you for all you do! |
fd0b8e5
to
03d5489
Compare
This PR is an initial/basic version of this Live Activity, without any feature which are spoken of in the Zulipchat.
Look & Feel:
Lock Screen (all iPhone's):
Dynamic Island (iPhone 14 pro max and higher):
Settings
Things to know:
CurrentBG
,IOB
,COB
,UpdatedAt
(like in the screenshots)GlucoseStore.glucoseSamplesDidChange
CarbStore.carbEntriesDidChange
dosing changing
UIApplication.willEnterForegroundNotification