Widget: per-widget distance, sanitised names, £ prices
- New Distance picker in Edit Widget (5/10/15 miles), independent of the app's distance filter; used for both the relay fetch radius and the strict in-widget filter. - Brand text is now title-cased via sanitizedStationTitle (relay sends all-caps brands like SHELL/TESCO/MORRISONS). - Prices now show as £1.399 (monospaced) matching the app, instead of 139.9p. - Directions deep-link (mapsDirectionsURL) already per-row on medium and whole-widget on small; unchanged. 35 tests pass.
This commit is contained in:
@@ -33,13 +33,38 @@ enum WidgetSort: String, AppEnum, CaseIterable, Codable {
|
||||
]
|
||||
}
|
||||
|
||||
enum WidgetDistance: String, AppEnum, CaseIterable, Codable {
|
||||
case five
|
||||
case ten
|
||||
case fifteen
|
||||
|
||||
static var typeDisplayRepresentation: TypeDisplayRepresentation = "Distance"
|
||||
|
||||
static var caseDisplayRepresentations: [WidgetDistance: DisplayRepresentation] = [
|
||||
.five: "5 miles",
|
||||
.ten: "10 miles",
|
||||
.fifteen: "15 miles",
|
||||
]
|
||||
|
||||
var miles: Int {
|
||||
switch self {
|
||||
case .five: return 5
|
||||
case .ten: return 10
|
||||
case .fifteen: return 15
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct FuelBoardWidgetConfigurationIntent: WidgetConfigurationIntent {
|
||||
static var title: LocalizedStringResource = "Fuel & Sort"
|
||||
static var description = IntentDescription("Which fuel and ordering this widget shows.")
|
||||
static var description = IntentDescription("Which fuel, ordering and search radius this widget shows.")
|
||||
|
||||
@Parameter(title: "Fuel", default: .e10)
|
||||
var fuel: WidgetFuel
|
||||
|
||||
@Parameter(title: "Sort by", default: .cheapest)
|
||||
var sort: WidgetSort
|
||||
|
||||
@Parameter(title: "Distance", default: .five)
|
||||
var distance: WidgetDistance
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user