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

Staging 5.4.0 #575

Merged
merged 53 commits into from
Oct 14, 2024
Merged

Staging 5.4.0 #575

merged 53 commits into from
Oct 14, 2024

Conversation

paulplant
Copy link
Collaborator

@paulplant paulplant commented Oct 14, 2024

Release notes for xDrip4iOS version 5.4.0:

Features:

  • new Watch app with second "Big Number" screen - scroll or swipe down to see it
  • new dynamic gauge dials for Watch app/complications to accurately show the user ranges
  • changes to simplify Algorithm and Calibration types
    • now the user can easily chose between Native (previously called Transmitter) algorithm and xDrip algorithm
    • the default calibration type is now always Standard (single-point). The user must change manually to multi-point.
    • explanations added at each stage of chaning algorithm/calibration type.
  • Calibration type is disabled when using the native algorithm and the UI now makes this clear
  • Smooth Libre Values option is moved from Developer settings to the Libre 2 bluetooth peripheral screen
  • "Libre 2 Direct" is now renamed throughout the app to "Libre 2 EU" to prevent confusion with CA/US/AUS sensors
  • When a transmitter is connected, but sensor values are yet to arrive, the app will now show "Waiting for data...".
  • slope information added to BG Readings view
  • added Bubble Nano support
  • Dexcom Share upload now clearly indicates to the user the information required before it will start to work. To prevent users thinking they should be uploading data when the receiver s/n was missing etc
  • the Contact Image will no longer delete the contact after disabling the function. This will prevent people losing updates after toggling on/off the option.
  • a "Use High Contrast" option now exists for the Contact Image for people that use tinted/coloured watchfaces. It helps prevent the colours from looking washed-out.
  • Contact Image will now work for follower modes, but will stay disabled (showing "OFF") if the background keep-alive is set to Disabled. This is to prevent users seeing out of date values with no indication that they are old.
  • Live Activity is now no longer switchable for "Only when high, low etc" as the app can't generate Live Activities from the background so it was of little value. The UI now merges all functions into one single option (disabled, minimal, normal, large)

Fixes:

  • LibreLinkUp Follower modified to work even when there is an empty Active Sensor response from server.
  • fix for follower network icon in Watch app
  • max Sensor lifetime is increased to 10.5 days for G7/ONE+ to take advantage of the grace period
  • G6 sensor session will now autostart correctly in xDrip4iOS always if the sensor is started using the Dexcom app
  • the sensor start date will automatically get hidden now until valid BG data is coming in after warm-up to prevent confusion with incorrect data.
  • ensure Developer settings are automatically hidden always
  • G6 transmitter runtime/temperature and resistance is completely removed from the UI to avoid confusion (not so relevant after G5)
  • updates to REXML dependencies (from 3.2.8 to 3.3.6)
  • observers in the bluetooth screen are dynamically created/destroyed to minimize crashes in <iOS18
  • Xcode 16 compiler warnings fixed
  • Watch app background updates > 12 hours ago are discarded upon opening the Watch app. This will prevent "freezing/scrolling" through very old data if somebody hasn't opened the Watch app in several days.
  • changes to the delta display text for small delta changes (usually +0 or +-1) that sometimes didn't match due to rounding (@aug0211)
  • mmol/L delta calculations are now processed in real converted values to avoid delta errors in mmol/L
  • LibreLinkUp version updated to 4.12.0 (it will automatically update all users settings the first time it is run)
  • the small system widget (iOS) will no longer show the keep-alive icon to save sp

aug0211 and others added 30 commits June 19, 2024 14:27
- BUG FIX: xDrip incorrectly reported +0 (or 0.0 for mmol) BG when delta was not 0 (or 0.0 for mmol) - this only occurred occasionally when BG deltas were around 1
- This fixes this issue, tested and verified on live device for mgdl
1.Added Bubble Nano support
2.Update Bubble/Bubble Mini/Bubble Nano appId
- include animations when updates are displayed or when the user double taps BG value to manually refresh data
- change "last reading at xx:xx" for "x mins ago"
- move connection indicator dot to info view
- add slope/minute value
- add slope/5 minutes value

This will help to understand why certain trend arrows are used
Bumps [rexml](https://github.com/ruby/rexml) from 3.2.8 to 3.3.6.
- [Release notes](https://github.com/ruby/rexml/releases)
- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)
- [Commits](ruby/rexml@v3.2.8...v3.3.6)

---
updated-dependencies:
- dependency-name: rexml
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
…pes (single/multi-point)

- algorithm and calibration types initial implementation
- map boolean oopWebEnabled and nonFixedSlopeEnabled to Algorithm Type and Calibration Type enums
- reverse non-fixed and oopWeb sections
- clean up some of the code/logic
- initial EN translations made
- i.e. when the transmitter sensor session is started by another app
ensure it is updated when a new internal sensor session is started such as after an algorithm type change
- slope/delta calculations (per min + per 5 mins)
- calibration data now shown if applied to bg reading
- tidy up of some existing code
- initial localizations to EN
…r is first connected

This prevents "No CGM Connected" from showing for newly added CGMTransmitters. This stops the UI from being incoherent whilst waiting for the first sensor readings to arrive.
…SettingsViewModel

Just for clarity as these settings only apply to Dexcom Share upload. Nothing else related to Dexcom
…l number in case the user leaves them blank

- mainly required as it was not clear that a receiver serial number is required in order to upload data
- update password obscuring to new function (as used by data source and Nightscout settings)
- transmitter battery level message (remove runtime + temp etc as not relevant any more)
- hide default sensorStartDate when the transmitter sensor session is stopped (such as when a new transmitter is first connected but no sensor is yet started)
initial EN and ES localizations
- watch app BigNumberView gauge scale correction
- use shorter "mins ago" string when over 12 hours has passed
- update timestamp also from NightscoutUploadManager upon status 200
- change Nightscout disconnectWarning to 310 seconds (5m10s)
- use abbreviated follower type name for systemSmall widget so that it fits cleanly
- mainly change "private (set)" to the correctly written "private(set)" as per Apple documentation.

- add @retroactive as required (suggested by Xcode)

- add the CNContactStore.authorizationStatus == .limited case to avoid warnings when building for iOS18.
- can be enabled in Settings so that the contact image renders nicely when a color tint is applied to the watchface
- should be left disabled when using the usual multi-color watchface colors
- possibly the most pointless and pedantic commit in the history of the project ever :)
- remove the "show Live Activities when..." option as it made little practical sense. LA can only be started when the app is in the foreground, so start a LA and then end if automatically only when the user first opens an alarm didn't make much sense.
- combine LiveActivityType and (the old LiveActivitySize) into one single enum (including disabled, minimal, normal and large) makes much more sense to operation and also to the UI.
- remove LiveActivitySize
…ch app

- this should prevent the "slow scrolling" of processing old userInfo values received whilst the Watch app was not active.
Bug fix for false +0 (or +0.0 mmol) bg deltas
if the user has enabled the option, then update the existing contact or add a new one if it doesn't exist this isn't really the best way to do it as we should delete the contact if not required to "clean up", but too many users didn't re-select the new contact after re-enabling in the Watch complication and assumed that the app wasn't working
- this change will automatically update all existing apps with a stored version number *below* 4.12.0
Related to ##544

although the previous commits fixed the issue of erroneous (0 or close to 0) delta changes in mg/dL (the calculation was originally ported from an early xDrip+ many years ago), the mmol/L calculation has never been sufficiently accurate due to the conversion/rounding of mmol/L meaning that sometimes a +0.2mmol/L delta was actually calculated to +0.1mmol/L.

This changes fixes that and also updates the calculation and string representation methods for all instances in the app, Watch, Widgets etc

Also renamed a bunch of stuff to keep things constant over the whole project
It could happen that an internal sensor session was manually started some time after the transmitter-based session was already running.

This change allows both "before and after" start date variations from the transmitter to force a new sensor session to be started with the correct (transmitter-based) start date.
This makes it clearer... the idea of a transmitter algorithm is confusing for Libre users and doesn't really explain what it is.

At least for now, Native explains that the values will resemble (or be identical to) the factory algorithms in all cases. This may change in the future, but for now, it's accurate enough for the description.
- to allow for the 12 hour grace period
Since LLU 4.12.0, it seems that the server response can now sometimes return an empty activeSensor attribute. This caused xDrip4iOS to throw an error and not process downloaded data.

This issue is known to affect just a handful of users and does not always happen. Sometimes the server responds correctly with all data.

We'll now just treat this as optional and ignore it (and adapt/hide the UI as needed) if necessary.
G7/ONE+ has the peculiarity that it will keep sending/repeating the same BG value (without ever changing) via BLE even after the session officially ends.

This change just stops processing received values after maxSensorAgeInDays is reached (10.5 days for G7/ONE+)

Also updated the sensor progress colours from (gray/yellow/red and purple for expired) to (gray/yellow/orange and red for expired). This is because purple is pretty impossible to read clearly against a black background.
This will display "OFF" in the contact image if the user is in follower mode with background keep-alive disabled, or if they disable the contact image function.

Also change settings text from "create contact" to "enable contact image"

Add warning text to "Enable Contact Image" UISwitch if the user is in follower mode with keep-alive disabled.
initial translations of main titles/rows/messages:
- en, es, nl, de, fr (no messages), sv (no messages)
@JohanDegraeve JohanDegraeve merged commit 6138290 into develop Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Erroneous +0 BG deltas reported Widget colours are hard to see in Nightstand mode
4 participants