Implementiert den kompletten Kern-Flow der Emergency App gemäß docs/plan.md: - Notrufnummern-Datenbasis für 199 Länder + Modelle/Repository (AP1) - DialerService für tel:-Notrufe ohne Auto-Dial (AP2) - Statisches UI mit Panik-Button-Fallback (AP3) - Priorisierte Ländererkennung: SIM/Netz -> GPS/Geocoding -> Cache (AP4) - EmergencyProvider verdrahtet Repository/LocationService mit der UI (AP5) - Manuelle Länderauswahl als Fallback samt eigener Priorität (AP6) - UI-Lokalisierung (de/en/fr/es), an erkanntes Land gekoppelt (AP7) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
37 lines
1.5 KiB
Dart
37 lines
1.5 KiB
Dart
/// Zustände der Ländererkennungs-/Notrufnummern-Ermittlung
|
||
/// (`docs/plan.md`, Abschnitt 5 + 8, AP5).
|
||
///
|
||
/// Siehe [EmergencyProvider] für die Zustandsübergänge.
|
||
enum EmergencyStatus {
|
||
/// [EmergencyProvider.init] wurde gerade gestartet, die Notrufnummern-
|
||
/// Datenbasis wird geladen.
|
||
initializing,
|
||
|
||
/// Die Datenbasis ist geladen, die Ländererkennungskette
|
||
/// (SIM → GPS → Cache) läuft gerade.
|
||
locating,
|
||
|
||
/// Ermittlung abgeschlossen. `country` ist gesetzt, wenn das ermittelte
|
||
/// Land in der Datenbasis vorhanden ist; ist es `null`, wurde zwar ein
|
||
/// Ländercode ermittelt, aber kein Eintrag dafür gefunden (Plan
|
||
/// Abschnitt 7, "Land nicht in Datenbasis") – die UI zeigt dann nur den
|
||
/// globalen Panik-Button.
|
||
ready,
|
||
|
||
/// Aktuell unbenutzt (siehe Doc-Kommentar in [EmergencyProvider]): Die
|
||
/// Standortberechtigung wurde verweigert. Dieser Fall wird zur Laufzeit
|
||
/// bewusst nicht von [countryUnknown] unterschieden, ist als Status aber
|
||
/// für eine spätere, gezieltere UI-Behandlung (z. B. Banner mit
|
||
/// Berechtigungs-Hinweis) bereits vorbereitet.
|
||
permissionDenied,
|
||
|
||
/// Kein Ländercode ermittelbar (alle Quellen der Ermittlungskette lieferten
|
||
/// `null`, Plan Abschnitt 7, "Land nicht ermittelbar").
|
||
countryUnknown,
|
||
|
||
/// Laden der Notrufnummern-Datenbasis ist fehlgeschlagen (z. B. kaputtes
|
||
/// JSON-Asset). Sollte im Normalbetrieb nicht auftreten, siehe Doc-Kommentar
|
||
/// in `EmergencyNumberRepository.load()`.
|
||
error,
|
||
}
|