feat(train): a route's map kept offline on request (ADR 0030, D45)

A saved route's page has Keep the map offline: the tiles within 2 km of
its way at zooms 10 to 16 (never above the source's own), shared between
routes, kept again as the route changes and let go with it. The style,
its sprites and the instance's map source are kept as last read, and
every map reads a kept tile before the network, so a map draws with no
network at all.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-29 10:28:36 +01:00
commit a2997e87af
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -2452,6 +2452,54 @@ abstract class AppLocalizations {
/// **'{distance} · {ascent}'**
String routeSummary(String distance, String ascent);
/// A switch on a saved route: its map kept on this device (ADR 0030, D45).
///
/// In en, this message translates to:
/// **'Keep the map offline'**
String get routeOffline;
/// No description provided for @routeOfflineOff.
///
/// In en, this message translates to:
/// **'Its map along the way, 2 km either side, on this device for when there\'s no network'**
String get routeOfflineOff;
/// No description provided for @routeOfflineLoading.
///
/// In en, this message translates to:
/// **'Keeping the map: {done} of {total} tiles'**
String routeOfflineLoading(int done, int total);
/// No description provided for @routeOfflineKept.
///
/// In en, this message translates to:
/// **'Kept on this device: {size} MB'**
String routeOfflineKept(String size);
/// No description provided for @routeOfflineMissing.
///
/// In en, this message translates to:
/// **'{missing} of {total} tiles didn\'t come: asked for again when the app next opens online'**
String routeOfflineMissing(int missing, int total);
/// No description provided for @routeOfflineNoMap.
///
/// In en, this message translates to:
/// **'The map can\'t be reached now: try again online'**
String get routeOfflineNoMap;
/// No description provided for @routeOfflineSaveFirst.
///
/// In en, this message translates to:
/// **'Save the route to keep its map offline'**
String get routeOfflineSaveFirst;
/// No description provided for @routeKeptOffline.
///
/// In en, this message translates to:
/// **'Map kept offline'**
String get routeKeptOffline;
/// No description provided for @routeSurfaces.
///
/// In en, this message translates to: