Restore smart settings and sync watch favourites
This commit is contained in:
@@ -16,6 +16,7 @@ struct ContentView: View {
|
||||
|
||||
@State private var stations: [FuelStation] = FuelStore.loadStations()
|
||||
@State private var selectedFuel: FuelType = FuelStore.loadSelectedFuel()
|
||||
@State private var dataRefreshMode: DataRefreshMode = FuelStore.loadDataRefreshMode()
|
||||
@State private var sortMode: SortMode = FuelStore.loadSortMode()
|
||||
@State private var stationLimit: Int = FuelStore.loadStationLimit()
|
||||
@State private var distanceUnit: DistanceUnit = FuelStore.loadDistanceUnit()
|
||||
@@ -275,6 +276,7 @@ struct ContentView: View {
|
||||
}
|
||||
if !favs.isEmpty {
|
||||
FuelStore.saveFavourites(favs)
|
||||
WatchSyncManager.shared.pushSnapshot()
|
||||
}
|
||||
}
|
||||
if let i = args.firstIndex(of: "-tab"), i + 1 < args.count {
|
||||
@@ -396,6 +398,7 @@ struct ContentView: View {
|
||||
if let newLocation {
|
||||
location = newLocation
|
||||
FuelStore.saveLocation(lat: newLocation.lat, lng: newLocation.lng)
|
||||
WatchSyncManager.shared.pushSnapshot()
|
||||
WidgetCenter.shared.reloadAllTimelines()
|
||||
// Geofences follow the user's position, but the station list is
|
||||
// NOT re-fetched on every movement (cached, twice-a-day policy).
|
||||
@@ -414,6 +417,7 @@ struct ContentView: View {
|
||||
.onChange(of: selectedFuel) { _, _ in
|
||||
// No re-fetch needed — one response carries E5/E10/DIESEL prices.
|
||||
WidgetCenter.shared.reloadAllTimelines()
|
||||
WatchSyncManager.shared.pushSnapshot()
|
||||
}
|
||||
.onChange(of: stationLimit) { _, newValue in
|
||||
// Distance filter is LOCAL math now — the cache holds the full-UK
|
||||
@@ -790,6 +794,7 @@ struct ContentView: View {
|
||||
tipStore: tipStore,
|
||||
distanceUnit: $distanceUnit,
|
||||
priceDisplayStyle: $priceDisplayStyle,
|
||||
dataRefreshMode: $dataRefreshMode,
|
||||
alertsFuel: alertsFuel,
|
||||
alertsRadiusKM: alertsRadius,
|
||||
testAlertResult: monitor.lastTestResult,
|
||||
@@ -818,6 +823,7 @@ struct ContentView: View {
|
||||
favourites.append(key)
|
||||
}
|
||||
FuelStore.saveFavourites(favourites)
|
||||
WatchSyncManager.shared.pushSnapshot()
|
||||
WidgetCenter.shared.reloadAllTimelines()
|
||||
monitor.update(stations: stations, favourites: refreshedFavourites,
|
||||
fuel: alertsFuel, radiusKM: effectiveAlertsRadiusKM)
|
||||
@@ -829,6 +835,7 @@ struct ContentView: View {
|
||||
private func reorderFavourites(_ newOrder: [FavouriteEntry]) {
|
||||
favourites = newOrder
|
||||
FuelStore.saveFavourites(favourites)
|
||||
WatchSyncManager.shared.pushSnapshot()
|
||||
WidgetCenter.shared.reloadAllTimelines()
|
||||
monitor.update(stations: stations, favourites: refreshedFavourites,
|
||||
fuel: alertsFuel, radiusKM: effectiveAlertsRadiusKM)
|
||||
@@ -860,6 +867,7 @@ struct ContentView: View {
|
||||
if force, FuelStore.hasPendingWatchRefreshRequest {
|
||||
FuelStore.markWatchRefreshHandled()
|
||||
}
|
||||
WatchSyncManager.shared.pushSnapshot()
|
||||
// Persist envelope metadata (source, station count, GOV.UK
|
||||
// dataset update time) for the Settings → About section — the
|
||||
// live chain records whichever leg served the fetch.
|
||||
|
||||
Reference in New Issue
Block a user