Small widget: declare config params in display order for every summary branch. If iOS falls back to declaration order when re-rendering the sheet after a parameter change, the favourites branch previously re-ordered to Sort by first (sort was declared before favouriteFuel). Now favouriteFuel, fuel, sort, favourite, distance — Favourites mode reads Fuel · Sort by · Favourite under either ordering mechanism. No encoding change (config keys are identifiers, order-independent).

This commit is contained in:
FuelBoard Contributor
2026-08-13 18:21:03 +01:00
parent 926317236a
commit 906f8a8429
+12 -6
View File
@@ -248,21 +248,27 @@ struct FuelBoardSmallWidgetConfigurationIntent: WidgetConfigurationIntent, Widge
static var title: LocalizedStringResource = "Fuel & Sort" static var title: LocalizedStringResource = "Fuel & Sort"
static var description = IntentDescription("Which fuel, ordering, radius and pinned favourite this small widget shows.") static var description = IntentDescription("Which fuel, ordering, radius and pinned favourite this small widget shows.")
// Declared in display order for EVERY summary branch: iOS may fall back to
// declaration order when re-rendering the sheet after a parameter change,
// so the relative order here must match the wanted layout in all modes:
// Favourites Fuel(favouriteFuel) · Sort by · Favourite
// Cheapest Fuel · Sort by · Distance
// Closest Fuel · Sort by
@Parameter(title: "Fuel", default: FavouriteFuel(fuel: .e10))
var favouriteFuel: FavouriteFuel
@Parameter(title: "Fuel", default: .e10) @Parameter(title: "Fuel", default: .e10)
var fuel: WidgetFuel var fuel: WidgetFuel
@Parameter(title: "Sort by", default: .cheapest) @Parameter(title: "Sort by", default: .cheapest)
var sort: WidgetSort var sort: WidgetSort
@Parameter(title: "Distance", default: WidgetDistance(id: 5))
var distance: WidgetDistance
@Parameter(title: "Fuel", default: FavouriteFuel(fuel: .e10))
var favouriteFuel: FavouriteFuel
@Parameter(title: "Favourite", default: WidgetFavourite(fuel: .e10, stationID: "", stationName: "")) @Parameter(title: "Favourite", default: WidgetFavourite(fuel: .e10, stationID: "", stationName: ""))
var favourite: WidgetFavourite var favourite: WidgetFavourite
@Parameter(title: "Distance", default: WidgetDistance(id: 5))
var distance: WidgetDistance
var favouriteChoice: WidgetFavourite? { favourite } var favouriteChoice: WidgetFavourite? { favourite }
var favouriteFuelChoice: FavouriteFuel? { favouriteFuel } var favouriteFuelChoice: FavouriteFuel? { favouriteFuel }