FuelBoard Contributor
d6550409df
Settings: test alert notification button
...
Fires a local notification shaped exactly like a real price alert (uses the
currently configured alerts fuel + radius), with permission-gated handling:
prompts on first use, guides to Settings when denied. Tapping it opens
FuelBoard, same as a real alert.
2026-08-12 09:15:04 +01:00
FuelBoard Contributor
46d5d45c93
Alerts choose their own fuel, independent of the Stations tab
...
The proximity monitor was tied to the Stations-tab fuel selection, so
switching the list to another fuel silently re-targeted geofences. Now the
Alerts tab has its own 'Fuel to monitor' picker (persisted as
fuelboard.alertsFuel):
- Monitor reads loadAlertsFuel() on init/background relaunch
- Changing the alerts fuel re-registers geofences around stations selling
that fuel only
- Favourites priority slots stay scoped to the monitored fuel
- Tests: alerts fuel round-trip + default (33/33 passing)
2026-08-12 08:51:31 +01:00
FuelBoard Contributor
35e0adaf0b
Favourites are fuel-scoped: starring pins the station for one fuel only
...
Fixing the bug where favouriting an Unleaded entry also created a Diesel
favourite. Favourites are now [FavouriteEntry] = (station, fuel) pairs:
- Starring a row pins it only for the fuel being viewed
- Favourites tabs show only fuels that actually have favourites
- Geofence monitor gives priority slots only to favourites matching the
monitored fuel
- Tests updated + new fuel-scoping test (31/31 passing)
2026-08-12 08:31:08 +01:00
FuelBoard Contributor
44c6c38536
Add Settings tab: distance units toggle, onboarding replay, £4.99 tip; drop E10/E5 from labels
...
- FuelType labels: 'Unleaded (E10)'/'Premium (E5)' -> 'Unleaded'/'Premium'
- New DistanceUnit (miles/km) preference; all app + widget distances,
radii and alert text convert/display in the chosen unit
- Settings tab (4th tab): segmented miles/km picker, 'Show introduction'
replay button (onboarding moved out of Alerts tab), StoreKit tip £4.99
- ProximityMonitor + widget notifications use the chosen unit
- Tests: label expectations updated, DistanceUnit conversion + format tests
2026-08-12 07:46:08 +01:00
FuelBoard Contributor
fb79cf0788
Add first-launch onboarding with location + notification permission prompts
...
- OnboardingView: 4-page flow (welcome + features, location, notifications, done)
- Triggers system prompts in-context via OnboardingPermissionPrompter
- Shown at initial launch only (FuelStore.onboardingCompleted flag, app-group defaults)
- Test hook: 'Show onboarding (testing)' button at bottom of Alerts tab
2026-08-12 07:10:54 +01:00
FuelBoard Contributor
7be98c51ad
Closest mode: TOP + deltas vs the CHEAPEST within radius (not the nearest); list stays nearest-first
2026-08-11 20:16:32 +01:00
FuelBoard Contributor
2ca1274b8f
Closest mode: deltas vs the CLOSEST station (signed +X.Xp/-X.Xp), not the nationwide cheapest; baseline = sortedStations.first
2026-08-11 20:04:29 +01:00
FuelBoard Contributor
3bc795317a
Distance picker disabled in Closest mode; whole-country pool for nearest-first (radius never empties Closest)
2026-08-11 19:49:26 +01:00
FuelBoard Contributor
3cff677729
Distance change is local-only: no re-fetch (full-UK cache already covers 5/10/15 miles)
2026-08-11 19:41:46 +01:00
FuelBoard Contributor
cf9765be7b
Fetch full-UK dump (no radius/limit); stations in app-group defaults only; alert path keeps focused radius fetch
2026-08-11 19:30:02 +01:00
FuelBoard Contributor
3953c65a65
Show distances in miles (app + widget) to match the miles filter
2026-08-11 19:18:27 +01:00
FuelBoard Contributor
6eae42ff3d
STRICT radius enforcement: never fall back to out-of-radius stations in list, cheapest reference, or widget
2026-08-11 18:36:08 +01:00
FuelBoard Contributor
e0a5bb3d5d
Cheapest reference uses chosen miles radius (same pool as list) in app + widget; header shows 'within N miles'
2026-08-11 18:29:20 +01:00
FuelBoard Contributor
bcf4ea4f81
Enforce chosen miles radius client-side (cache may hold larger-radius stations); monospaced £ price + delta for decimal alignment
2026-08-11 18:07:17 +01:00
FuelBoard Contributor
213f93aa04
Results filter is now search radius in miles (5/10/15); relay fetch scoped to radius, limit 500; changing miles re-fetches; caption shows stations within N miles
2026-08-11 18:02:23 +01:00
FuelBoard Contributor
810cc2c006
Show full fetch in list (count picker respected); radius scope only for cheapest/RAG reference; row = logo | name/address/distance | £price + delta | star
2026-08-11 17:54:04 +01:00
FuelBoard Contributor
8230daa249
Cache-first refresh policy: auto-fetch at most twice a day (12h gate), no fetch on launch/foreground/location/fuel-switch, pull-to-refresh forces; geofences still follow location
2026-08-11 17:43:11 +01:00
FuelBoard Contributor
5a08a3a2fa
Revert station name to natural width (truncates, does not fill row); price stays on row below right-aligned
2026-08-11 17:29:13 +01:00
FuelBoard Contributor
2d95c4e1d6
Scope cheapest/RAG/TOP to alert trigger radius in app + widget; header shows 'within X km'; falls back to full fetch when radius pool empty
2026-08-11 17:21:36 +01:00
FuelBoard Contributor
cde51622a3
All fuel prices per station (E10/E5/Diesel from one fetch); re-fetch on fuel switch; fuel tabs populate instantly
2026-08-11 17:16:55 +01:00
FuelBoard Contributor
e8a82ce515
Preload cached stations at launch (all tabs populate instantly); alert handler falls back to cache on background wake, restores enabled/fuel/radius in monitor init, re-registers geofences on setEnabled
2026-08-11 16:50:45 +01:00
FuelBoard Contributor
c5050df445
Live location tracking: continuous foreground updates (250m filter) + significant-change background monitoring; list/widget refresh and geofences follow the user, re-fetch on every move
2026-08-11 16:16:46 +01:00
FuelBoard Contributor
75629b39b5
Price right-aligned on second row; word-capitalise station titles (keep BP/MFG/ASDA)
2026-08-11 15:40:19 +01:00
FuelBoard Contributor
d8f635fb41
Move price + RAG delta to second row; name line is name-only full width
2026-08-11 15:27:57 +01:00
FuelBoard Contributor
3da5de6da2
Station name fills row width (logo left, price pinned right, wraps); fix Favourites alert wording
2026-08-11 15:24:52 +01:00
FuelBoard Contributor
60d25164d6
Tabs (Stations/Favourites/Alerts): favourites with cheapest-first ranking, proximity geofence alerts (favourites priority, 3km default radius, 1h dedup), Always location + background mode
2026-08-11 15:17:26 +01:00
FuelBoard Contributor
54403ed4b3
Enlarge brand logo badges 34pt -> 46pt
2026-08-11 15:04:02 +01:00
FuelBoard Contributor
d220023917
Round brand logos in station rows: 11 bundled assets (Simple Icons + Wikimedia), fuel-pump fallback for unknown brands
2026-08-11 15:00:26 +01:00
FuelBoard Contributor
acb5c33578
Remove Location status section; add 10/25/50/75/100 station limit picker; refresh location every foreground
2026-08-11 14:41:39 +01:00
FuelBoard Contributor
2e2b189b69
Reorder: Fuel type → Stations (sort picker inside) → Key legend; drop emoji legend
2026-08-11 14:19:55 +01:00
FuelBoard Contributor
d9ec2f8c35
Sort toggle (cheapest/closest) + RAG value rating per station with TOP badge
2026-08-11 14:14:07 +01:00
FuelBoard Contributor
543212a721
Sort every fuel tab cheapest-first (distance only as tiebreaker) in app + widget
2026-08-11 14:09:14 +01:00
FuelBoard Contributor
4f5f1999a9
Location-driven results: widget fetches its own location (async, cache fallback), app auto-requests on first launch, Halifax sample stations
2026-08-11 14:03:41 +01:00
FuelBoard Contributor
b0a5b5a326
Scaffold FuelBoard: petrol price widget + app (sample data, Maps deep-links, provider seam for Fuel Finder API)
2026-08-11 13:54:56 +01:00