Skip to content

Gate startup on storage readiness for Before-First-Unlock recovery#710

Open
bjorkert wants to merge 1 commit into
devfrom
feature/storage-readiness-gate
Open

Gate startup on storage readiness for Before-First-Unlock recovery#710
bjorkert wants to merge 1 commit into
devfrom
feature/storage-readiness-gate

Conversation

@bjorkert

Copy link
Copy Markdown
Member

What
Gates app startup on storage readiness. Before a device's first unlock after a reboot (Before-First-Unlock / BFU), UserDefaults is encrypted and every stored value reads as its default. This detects that state via a presence sentinel, holds the UI behind a lightweight loading view until the store is readable, then hydrates every value and reconnects Bluetooth. Replaces the hand-maintained reloadAll() recovery — values now register for hydration automatically, so none can be missed.

Why
On a BFU background launch (BLE or background-refresh wake) the app otherwise acts on poisoned defaults: it re-prompts telemetry consent, runs with an empty Nightscout URL, and leaves the CGM heartbeat down after recovery. Ordinary locked launches are unaffected.

How to test
Requires a real device with a passcode (the Simulator can't reproduce BFU). Configure a data source, reboot the phone and — without unlocking — let a BLE/background wake fire. Then unlock and open the app; the logs should show BFU check: and BFU recovery complete: url='…'. Expect no telemetry re-prompt, Bluetooth reconnected, and a non-empty url.

Note
The BFU sentinel ORs a few presence probes (migrationStep, telemetryConsentDecisionMade, url) alongside a dedicated marker, to correctly classify users who haven't launched this build yet. About a year after release — once all users are expected to have the marker — those extra probes can be dropped in favour of the marker alone.

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.

1 participant