Notrufnummern-Datenbasis, Ländererkennung, State-Management und Lokalisierung (AP1-AP7)

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>
This commit is contained in:
root
2026-07-24 11:29:38 +02:00
co-authored by Claude Sonnet 5
parent 40e95cc495
commit e3aa088bc2
54 changed files with 7550 additions and 145 deletions
+25
View File
@@ -0,0 +1,25 @@
import 'package:url_launcher/url_launcher.dart';
/// Öffnet die native Telefon-App mit vorgewählter Nummer.
///
/// Löst bewusst **kein** Auto-Dial aus (siehe `docs/plan.md`, Abschnitt 2):
/// Der Nutzer bestätigt den Anruf selbst im Wähler. Wirft keine Exceptions
/// wenn das `tel:`-Schema nicht geöffnet werden kann, liefert [call] `false`
/// zurück und überlässt der UI (AP3+), wie damit umgegangen wird.
class DialerService {
const DialerService();
/// Baut die `tel:`-URI für [number] und öffnet sie im Wähler.
///
/// Gibt `true` zurück, wenn der Wähler erfolgreich geöffnet wurde,
/// sonst `false`.
Future<bool> call(String number) async {
final uri = Uri(scheme: 'tel', path: number);
if (!await canLaunchUrl(uri)) {
return false;
}
return launchUrl(uri);
}
}