From 906f8a8429708605c0f765150b8fcb8a782bdba4 Mon Sep 17 00:00:00 2001 From: FuelBoard Contributor Date: Thu, 13 Aug 2026 18:21:03 +0100 Subject: [PATCH] =?UTF-8?q?Small=20widget:=20declare=20config=20params=20i?= =?UTF-8?q?n=20display=20order=20for=20every=20summary=20branch.=20If=20iO?= =?UTF-8?q?S=20falls=20back=20to=20declaration=20order=20when=20re-renderi?= =?UTF-8?q?ng=20the=20sheet=20after=20a=20parameter=20change,=20the=20favo?= =?UTF-8?q?urites=20branch=20previously=20re-ordered=20to=20Sort=20by=20fi?= =?UTF-8?q?rst=20(sort=20was=20declared=20before=20favouriteFuel).=20Now?= =?UTF-8?q?=20favouriteFuel,=20fuel,=20sort,=20favourite,=20distance=20?= =?UTF-8?q?=E2=80=94=20Favourites=20mode=20reads=20Fuel=20=C2=B7=20Sort=20?= =?UTF-8?q?by=20=C2=B7=20Favourite=20under=20either=20ordering=20mechanism?= =?UTF-8?q?.=20No=20encoding=20change=20(config=20keys=20are=20identifiers?= =?UTF-8?q?,=20order-independent).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FuelBoardWidgets/WidgetConfigIntent.swift | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/FuelBoardWidgets/WidgetConfigIntent.swift b/FuelBoardWidgets/WidgetConfigIntent.swift index 7421b09..1dae805 100644 --- a/FuelBoardWidgets/WidgetConfigIntent.swift +++ b/FuelBoardWidgets/WidgetConfigIntent.swift @@ -248,21 +248,27 @@ struct FuelBoardSmallWidgetConfigurationIntent: WidgetConfigurationIntent, Widge static var title: LocalizedStringResource = "Fuel & Sort" 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) var fuel: WidgetFuel @Parameter(title: "Sort by", default: .cheapest) 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: "")) var favourite: WidgetFavourite + @Parameter(title: "Distance", default: WidgetDistance(id: 5)) + var distance: WidgetDistance + var favouriteChoice: WidgetFavourite? { favourite } var favouriteFuelChoice: FavouriteFuel? { favouriteFuel }