feature/more-info-sheet
Both sliders now move a local draft (mpgDraft / fillUpDraft) and write once, when the drag ends, via Slider's onEditingChanged. While the thumb is down only this screen redraws: no store write, no fuelSavingsSettings mutation, and so no app-wide recompute — ContentView re-ran its body, rebuilt the savings lookup, and passed all 8,130 stations through the alert monitor on every step. The drafts are Double?, where nil means "not dragging" and the stored setting is shown. That falls back naturally after a commit, so the control shows what was actually saved (the clamps can lower it) and anything changing the setting from outside — a unit switch, the in-list control, a QA hook — is reflected without any re-seeding. The MPG and fill-up read-outs follow the draft, so the figure still tracks the thumb. The keychain write deliberately stays on the main thread: it is the authoritative mirror on read, so an async write could hand a relaunch or a widget a stale value. One write per gesture is cheap enough not to need it.
Description
FuelBoard iOS app - England-wide petrol station prices (widget + app)
155 MiB
Languages
Swift
99.1%
Shell
0.9%