feat(train): a recording follows a route, its turns told (ADR 0030, D45)
The Record sheet offers the routes with a way planned; the recorder's service follows the one chosen offline (RouteGuide.kt): turns told 50 m before them (100 m on a bike) after a tone, off the route past 40 m for 10 s a cue with the way back, told again on rejoining, the end told. The recording file keeps the route and the guidance; the recording screen shows the next turn or the way back, and swipes to a map of the route, the track and the position, north or the heading up. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
aea99c68ca
commit
b0c0eeb3d5
5 changed files with 2153 additions and 171 deletions
|
|
@ -416,5 +416,40 @@
|
|||
"routeDelete": "Löschen",
|
||||
"routeDeleteTitle": "Diese Route löschen?",
|
||||
"routeDeleteMessage": "Sie wird auf all deinen Geräten gelöscht.",
|
||||
"routeDeleted": "Route gelöscht"
|
||||
"routeDeleted": "Route gelöscht",
|
||||
"turnStraight": "Geradeaus",
|
||||
"turnLeft": "Links abbiegen",
|
||||
"turnSlightLeft": "Leicht links",
|
||||
"turnSharpLeft": "Scharf links",
|
||||
"turnRight": "Rechts abbiegen",
|
||||
"turnSlightRight": "Leicht rechts",
|
||||
"turnSharpRight": "Scharf rechts",
|
||||
"turnKeepLeft": "Links halten",
|
||||
"turnKeepRight": "Rechts halten",
|
||||
"turnAround": "Wenden",
|
||||
"turnRoundabout": "Im Kreisverkehr die {exit}. Ausfahrt nehmen",
|
||||
"turnExitLeft": "Die Ausfahrt links nehmen",
|
||||
"turnExitRight": "Die Ausfahrt rechts nehmen",
|
||||
"routeSayIn": "In {metres} Metern: {turn}",
|
||||
"routeSayOff": "Abseits der Route. Sie liegt {metres} Meter {direction}.",
|
||||
"routeSayOn": "Zurück auf der Route",
|
||||
"routeSayArrived": "Ende der Route",
|
||||
"directionNorth": "nördlich",
|
||||
"directionNorthEast": "nordöstlich",
|
||||
"directionEast": "östlich",
|
||||
"directionSouthEast": "südöstlich",
|
||||
"directionSouth": "südlich",
|
||||
"directionSouthWest": "südwestlich",
|
||||
"directionWest": "westlich",
|
||||
"directionNorthWest": "nordwestlich",
|
||||
"recordRoute": "Route",
|
||||
"recordNoRoute": "Keine",
|
||||
"recordingNextTurn": "In {distance}",
|
||||
"recordingOffRoute": "Abseits der Route: {distance} {direction}",
|
||||
"recordingRouteEnd": "Ende der Route",
|
||||
"recordingFollowRoute": "Route: {name}",
|
||||
"recordingMapHint": "Wischen für die Karte",
|
||||
"recordingFiguresHint": "Zurückwischen für die Werte",
|
||||
"recordingNorthUp": "Norden oben",
|
||||
"recordingHeadingUp": "Bewegungsrichtung oben"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -524,5 +524,46 @@
|
|||
"routeDelete": "Delete",
|
||||
"routeDeleteTitle": "Delete this route?",
|
||||
"routeDeleteMessage": "It's deleted on all your devices.",
|
||||
"routeDeleted": "Route deleted"
|
||||
"routeDeleted": "Route deleted",
|
||||
"turnStraight": "Go straight on",
|
||||
"turnLeft": "Turn left",
|
||||
"turnSlightLeft": "Bear left",
|
||||
"turnSharpLeft": "Turn sharp left",
|
||||
"turnRight": "Turn right",
|
||||
"turnSlightRight": "Bear right",
|
||||
"turnSharpRight": "Turn sharp right",
|
||||
"turnKeepLeft": "Keep left",
|
||||
"turnKeepRight": "Keep right",
|
||||
"turnAround": "Turn around",
|
||||
"turnRoundabout": "At the roundabout, take exit {exit}",
|
||||
"@turnRoundabout": {"placeholders": {"exit": {"type": "int"}}},
|
||||
"turnExitLeft": "Take the exit on the left",
|
||||
"turnExitRight": "Take the exit on the right",
|
||||
"routeSayIn": "In {metres} metres: {turn}",
|
||||
"@routeSayIn": {"description": "Spoken before a turn while following a route.", "placeholders": {"metres": {"type": "int"}, "turn": {"type": "String", "example": "Turn left"}}},
|
||||
"routeSayOff": "Off the route. It lies {metres} metres {direction}.",
|
||||
"@routeSayOff": {"description": "Spoken off the route; the recorder puts the figures in.", "placeholders": {"metres": {"type": "String", "example": "80"}, "direction": {"type": "String", "example": "to the north-east"}}},
|
||||
"routeSayOn": "Back on the route",
|
||||
"routeSayArrived": "End of the route",
|
||||
"directionNorth": "to the north",
|
||||
"directionNorthEast": "to the north-east",
|
||||
"directionEast": "to the east",
|
||||
"directionSouthEast": "to the south-east",
|
||||
"directionSouth": "to the south",
|
||||
"directionSouthWest": "to the south-west",
|
||||
"directionWest": "to the west",
|
||||
"directionNorthWest": "to the north-west",
|
||||
"recordRoute": "Route",
|
||||
"recordNoRoute": "None",
|
||||
"recordingNextTurn": "In {distance}",
|
||||
"@recordingNextTurn": {"placeholders": {"distance": {"type": "String", "example": "320 m"}}},
|
||||
"recordingOffRoute": "Off the route: {distance} {direction}",
|
||||
"@recordingOffRoute": {"placeholders": {"distance": {"type": "String", "example": "80 m"}, "direction": {"type": "String", "example": "to the north-east"}}},
|
||||
"recordingRouteEnd": "End of the route",
|
||||
"recordingFollowRoute": "Following {name}",
|
||||
"@recordingFollowRoute": {"placeholders": {"name": {"type": "String"}}},
|
||||
"recordingMapHint": "Swipe for the map",
|
||||
"recordingFiguresHint": "Swipe back for the figures",
|
||||
"recordingNorthUp": "North up",
|
||||
"recordingHeadingUp": "Heading up"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2523,6 +2523,216 @@ abstract class AppLocalizations {
|
|||
/// In en, this message translates to:
|
||||
/// **'Route deleted'**
|
||||
String get routeDeleted;
|
||||
|
||||
/// No description provided for @turnStraight.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Go straight on'**
|
||||
String get turnStraight;
|
||||
|
||||
/// No description provided for @turnLeft.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Turn left'**
|
||||
String get turnLeft;
|
||||
|
||||
/// No description provided for @turnSlightLeft.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Bear left'**
|
||||
String get turnSlightLeft;
|
||||
|
||||
/// No description provided for @turnSharpLeft.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Turn sharp left'**
|
||||
String get turnSharpLeft;
|
||||
|
||||
/// No description provided for @turnRight.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Turn right'**
|
||||
String get turnRight;
|
||||
|
||||
/// No description provided for @turnSlightRight.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Bear right'**
|
||||
String get turnSlightRight;
|
||||
|
||||
/// No description provided for @turnSharpRight.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Turn sharp right'**
|
||||
String get turnSharpRight;
|
||||
|
||||
/// No description provided for @turnKeepLeft.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Keep left'**
|
||||
String get turnKeepLeft;
|
||||
|
||||
/// No description provided for @turnKeepRight.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Keep right'**
|
||||
String get turnKeepRight;
|
||||
|
||||
/// No description provided for @turnAround.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Turn around'**
|
||||
String get turnAround;
|
||||
|
||||
/// No description provided for @turnRoundabout.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'At the roundabout, take exit {exit}'**
|
||||
String turnRoundabout(int exit);
|
||||
|
||||
/// No description provided for @turnExitLeft.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Take the exit on the left'**
|
||||
String get turnExitLeft;
|
||||
|
||||
/// No description provided for @turnExitRight.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Take the exit on the right'**
|
||||
String get turnExitRight;
|
||||
|
||||
/// Spoken before a turn while following a route.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'In {metres} metres: {turn}'**
|
||||
String routeSayIn(int metres, String turn);
|
||||
|
||||
/// Spoken off the route; the recorder puts the figures in.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Off the route. It lies {metres} metres {direction}.'**
|
||||
String routeSayOff(String metres, String direction);
|
||||
|
||||
/// No description provided for @routeSayOn.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Back on the route'**
|
||||
String get routeSayOn;
|
||||
|
||||
/// No description provided for @routeSayArrived.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'End of the route'**
|
||||
String get routeSayArrived;
|
||||
|
||||
/// No description provided for @directionNorth.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'to the north'**
|
||||
String get directionNorth;
|
||||
|
||||
/// No description provided for @directionNorthEast.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'to the north-east'**
|
||||
String get directionNorthEast;
|
||||
|
||||
/// No description provided for @directionEast.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'to the east'**
|
||||
String get directionEast;
|
||||
|
||||
/// No description provided for @directionSouthEast.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'to the south-east'**
|
||||
String get directionSouthEast;
|
||||
|
||||
/// No description provided for @directionSouth.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'to the south'**
|
||||
String get directionSouth;
|
||||
|
||||
/// No description provided for @directionSouthWest.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'to the south-west'**
|
||||
String get directionSouthWest;
|
||||
|
||||
/// No description provided for @directionWest.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'to the west'**
|
||||
String get directionWest;
|
||||
|
||||
/// No description provided for @directionNorthWest.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'to the north-west'**
|
||||
String get directionNorthWest;
|
||||
|
||||
/// No description provided for @recordRoute.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Route'**
|
||||
String get recordRoute;
|
||||
|
||||
/// No description provided for @recordNoRoute.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'None'**
|
||||
String get recordNoRoute;
|
||||
|
||||
/// No description provided for @recordingNextTurn.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'In {distance}'**
|
||||
String recordingNextTurn(String distance);
|
||||
|
||||
/// No description provided for @recordingOffRoute.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Off the route: {distance} {direction}'**
|
||||
String recordingOffRoute(String distance, String direction);
|
||||
|
||||
/// No description provided for @recordingRouteEnd.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'End of the route'**
|
||||
String get recordingRouteEnd;
|
||||
|
||||
/// No description provided for @recordingFollowRoute.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Following {name}'**
|
||||
String recordingFollowRoute(String name);
|
||||
|
||||
/// No description provided for @recordingMapHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Swipe for the map'**
|
||||
String get recordingMapHint;
|
||||
|
||||
/// No description provided for @recordingFiguresHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Swipe back for the figures'**
|
||||
String get recordingFiguresHint;
|
||||
|
||||
/// No description provided for @recordingNorthUp.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'North up'**
|
||||
String get recordingNorthUp;
|
||||
|
||||
/// No description provided for @recordingHeadingUp.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Heading up'**
|
||||
String get recordingHeadingUp;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
|
|
|||
|
|
@ -1499,4 +1499,121 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get routeDeleted => 'Route gelöscht';
|
||||
|
||||
@override
|
||||
String get turnStraight => 'Geradeaus';
|
||||
|
||||
@override
|
||||
String get turnLeft => 'Links abbiegen';
|
||||
|
||||
@override
|
||||
String get turnSlightLeft => 'Leicht links';
|
||||
|
||||
@override
|
||||
String get turnSharpLeft => 'Scharf links';
|
||||
|
||||
@override
|
||||
String get turnRight => 'Rechts abbiegen';
|
||||
|
||||
@override
|
||||
String get turnSlightRight => 'Leicht rechts';
|
||||
|
||||
@override
|
||||
String get turnSharpRight => 'Scharf rechts';
|
||||
|
||||
@override
|
||||
String get turnKeepLeft => 'Links halten';
|
||||
|
||||
@override
|
||||
String get turnKeepRight => 'Rechts halten';
|
||||
|
||||
@override
|
||||
String get turnAround => 'Wenden';
|
||||
|
||||
@override
|
||||
String turnRoundabout(int exit) {
|
||||
return 'Im Kreisverkehr die $exit. Ausfahrt nehmen';
|
||||
}
|
||||
|
||||
@override
|
||||
String get turnExitLeft => 'Die Ausfahrt links nehmen';
|
||||
|
||||
@override
|
||||
String get turnExitRight => 'Die Ausfahrt rechts nehmen';
|
||||
|
||||
@override
|
||||
String routeSayIn(int metres, String turn) {
|
||||
return 'In $metres Metern: $turn';
|
||||
}
|
||||
|
||||
@override
|
||||
String routeSayOff(String metres, String direction) {
|
||||
return 'Abseits der Route. Sie liegt $metres Meter $direction.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get routeSayOn => 'Zurück auf der Route';
|
||||
|
||||
@override
|
||||
String get routeSayArrived => 'Ende der Route';
|
||||
|
||||
@override
|
||||
String get directionNorth => 'nördlich';
|
||||
|
||||
@override
|
||||
String get directionNorthEast => 'nordöstlich';
|
||||
|
||||
@override
|
||||
String get directionEast => 'östlich';
|
||||
|
||||
@override
|
||||
String get directionSouthEast => 'südöstlich';
|
||||
|
||||
@override
|
||||
String get directionSouth => 'südlich';
|
||||
|
||||
@override
|
||||
String get directionSouthWest => 'südwestlich';
|
||||
|
||||
@override
|
||||
String get directionWest => 'westlich';
|
||||
|
||||
@override
|
||||
String get directionNorthWest => 'nordwestlich';
|
||||
|
||||
@override
|
||||
String get recordRoute => 'Route';
|
||||
|
||||
@override
|
||||
String get recordNoRoute => 'Keine';
|
||||
|
||||
@override
|
||||
String recordingNextTurn(String distance) {
|
||||
return 'In $distance';
|
||||
}
|
||||
|
||||
@override
|
||||
String recordingOffRoute(String distance, String direction) {
|
||||
return 'Abseits der Route: $distance $direction';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingRouteEnd => 'Ende der Route';
|
||||
|
||||
@override
|
||||
String recordingFollowRoute(String name) {
|
||||
return 'Route: $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingMapHint => 'Wischen für die Karte';
|
||||
|
||||
@override
|
||||
String get recordingFiguresHint => 'Zurückwischen für die Werte';
|
||||
|
||||
@override
|
||||
String get recordingNorthUp => 'Norden oben';
|
||||
|
||||
@override
|
||||
String get recordingHeadingUp => 'Bewegungsrichtung oben';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1491,6 +1491,123 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get routeDeleted => 'Route deleted';
|
||||
|
||||
@override
|
||||
String get turnStraight => 'Go straight on';
|
||||
|
||||
@override
|
||||
String get turnLeft => 'Turn left';
|
||||
|
||||
@override
|
||||
String get turnSlightLeft => 'Bear left';
|
||||
|
||||
@override
|
||||
String get turnSharpLeft => 'Turn sharp left';
|
||||
|
||||
@override
|
||||
String get turnRight => 'Turn right';
|
||||
|
||||
@override
|
||||
String get turnSlightRight => 'Bear right';
|
||||
|
||||
@override
|
||||
String get turnSharpRight => 'Turn sharp right';
|
||||
|
||||
@override
|
||||
String get turnKeepLeft => 'Keep left';
|
||||
|
||||
@override
|
||||
String get turnKeepRight => 'Keep right';
|
||||
|
||||
@override
|
||||
String get turnAround => 'Turn around';
|
||||
|
||||
@override
|
||||
String turnRoundabout(int exit) {
|
||||
return 'At the roundabout, take exit $exit';
|
||||
}
|
||||
|
||||
@override
|
||||
String get turnExitLeft => 'Take the exit on the left';
|
||||
|
||||
@override
|
||||
String get turnExitRight => 'Take the exit on the right';
|
||||
|
||||
@override
|
||||
String routeSayIn(int metres, String turn) {
|
||||
return 'In $metres metres: $turn';
|
||||
}
|
||||
|
||||
@override
|
||||
String routeSayOff(String metres, String direction) {
|
||||
return 'Off the route. It lies $metres metres $direction.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get routeSayOn => 'Back on the route';
|
||||
|
||||
@override
|
||||
String get routeSayArrived => 'End of the route';
|
||||
|
||||
@override
|
||||
String get directionNorth => 'to the north';
|
||||
|
||||
@override
|
||||
String get directionNorthEast => 'to the north-east';
|
||||
|
||||
@override
|
||||
String get directionEast => 'to the east';
|
||||
|
||||
@override
|
||||
String get directionSouthEast => 'to the south-east';
|
||||
|
||||
@override
|
||||
String get directionSouth => 'to the south';
|
||||
|
||||
@override
|
||||
String get directionSouthWest => 'to the south-west';
|
||||
|
||||
@override
|
||||
String get directionWest => 'to the west';
|
||||
|
||||
@override
|
||||
String get directionNorthWest => 'to the north-west';
|
||||
|
||||
@override
|
||||
String get recordRoute => 'Route';
|
||||
|
||||
@override
|
||||
String get recordNoRoute => 'None';
|
||||
|
||||
@override
|
||||
String recordingNextTurn(String distance) {
|
||||
return 'In $distance';
|
||||
}
|
||||
|
||||
@override
|
||||
String recordingOffRoute(String distance, String direction) {
|
||||
return 'Off the route: $distance $direction';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingRouteEnd => 'End of the route';
|
||||
|
||||
@override
|
||||
String recordingFollowRoute(String name) {
|
||||
return 'Following $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingMapHint => 'Swipe for the map';
|
||||
|
||||
@override
|
||||
String get recordingFiguresHint => 'Swipe back for the figures';
|
||||
|
||||
@override
|
||||
String get recordingNorthUp => 'North up';
|
||||
|
||||
@override
|
||||
String get recordingHeadingUp => 'Heading up';
|
||||
}
|
||||
|
||||
/// The translations for English, as used in the United Kingdom (`en_GB`).
|
||||
|
|
|
|||
Loading…
Reference in a new issue