2 Commits
2 changed files with 26 additions and 22 deletions
+4 -2
View File
@@ -33,8 +33,10 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED.
`FavouriteFuelPriceIntent`: TOP favourite per fuel (first in the manual
Favourites order — `SiriCheapestLookup.topFavourite`, refresh-vs-dump with
offline cached-snapshot fallback); no location required (distance shown only
when the saved fix exists). Also `DirectionsToFavouriteFuelIntent` (Maps
hand-off, station announced first). 4+4 App Shortcuts (generic + per-fuel).
when the saved fix exists). `DirectionsToFavouriteFuelIntent` (Maps
hand-off, station announced first) stays in code but carries no voice
phrases — every favourite price card has the interactive Directions button
(`6d7254e`), and the voice slots went to Directions-to-Cheapest (`8a4c472`).
*DONE — favourites already carried station snapshots, so no `StationEntity`
dependency.*
- [ ] **Siri: on-screen awareness (View Annotations + StationEntity)** — iOS
+22 -20
View File
@@ -578,41 +578,43 @@ struct FuelBoardShortcuts: AppShortcutsProvider {
systemImageName: "star.fill"
)
// Directions — only the FAVOURITE directions carry App Shortcut
// phrases: Apple caps app shortcuts at 10 (the metadata processor
// hard-fails past that), and the per-fuel cheapest-price + favourite
// price/directions entries cover the user's actual asks. The cheapest-
// directions and generic favourite intents below remain in code —
// still runnable from the Shortcuts action list, just without Siri
// phrases. Phrases use direction verbs ("directions to", "get
// directions") so they never collide with the price shortcut phrases.
// Directions — per-fuel CHEAPEST directions carry the App Shortcut
// phrases (the user's "directions to the cheapest X" asks). Apple caps
// app shortcuts at 10 (the metadata processor hard-fails past that);
// the favourite-directions path no longer needs phrases because every
// favourite price card carries the interactive Directions button
// (OpenDirectionsIntent, zero slots) — so the favourite directions
// intents below remain in code, still runnable from the Shortcuts
// action list and via the card button, just without Siri phrases.
// Phrases use direction verbs ("directions to", "get directions") so
// they never collide with the price shortcut phrases.
AppShortcut(
intent: DirectionsToFavouriteFuelIntent(fuel: .e10),
intent: DirectionsToCheapestFuelIntent(fuel: .e10),
phrases: [
"Ask \(.applicationName) for directions to my favourite unleaded station",
"Get directions to my favourite petrol station \(.applicationName)",
"Ask \(.applicationName) for directions to the cheapest unleaded near me",
"Get directions to the cheapest petrol near me \(.applicationName)",
],
shortTitle: "Directions to Favourite Unleaded",
shortTitle: "Directions to Cheapest Unleaded",
systemImageName: "map"
)
AppShortcut(
intent: DirectionsToFavouriteFuelIntent(fuel: .e5),
intent: DirectionsToCheapestFuelIntent(fuel: .e5),
phrases: [
"Ask \(.applicationName) for directions to my favourite premium station",
"Get directions to my favourite super unleaded station \(.applicationName)",
"Ask \(.applicationName) for directions to the cheapest premium near me",
"Get directions to the cheapest super unleaded near me \(.applicationName)",
],
shortTitle: "Directions to Favourite Premium",
shortTitle: "Directions to Cheapest Premium",
systemImageName: "map"
)
AppShortcut(
intent: DirectionsToFavouriteFuelIntent(fuel: .diesel),
intent: DirectionsToCheapestFuelIntent(fuel: .diesel),
phrases: [
"Ask \(.applicationName) for directions to my favourite diesel station",
"Get directions to my favourite diesel station \(.applicationName)",
"Ask \(.applicationName) for directions to the cheapest diesel near me",
"Get directions to the cheapest diesel near me \(.applicationName)",
],
shortTitle: "Directions to Favourite Diesel",
shortTitle: "Directions to Cheapest Diesel",
systemImageName: "map"
)
}