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
+24
View File
@@ -1,4 +1,22 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Ländererkennung (docs/plan.md Abschnitt 6+7, AP4): GPS-Fallback,
falls die SIM-/Netz-Quelle nichts liefert. -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- Ländererkennung, Primärquelle SIM/Netz (`carrier_info`-Plugin, laut
dessen README/Beispiel-Manifest im pub-cache benötigt):
ACCESS_NETWORK_STATE für den Netzwerkstatus,
READ_PHONE_STATE/READ_BASIC_PHONE_STATE/READ_PHONE_NUMBERS für
TelephonyManager- bzw. SubscriptionManager-Zugriff auf
networkCountryIso/countryIso. Bewusst NICHT übernommen:
READ_PRIVILEGED_PHONE_STATE ist eine signature|privileged-Permission,
die eine normale Store-App ohnehin nie gewährt bekommt sie zu
deklarieren hätte keinen Nutzen, nur unnötige Store-Review-Fragen. -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_BASIC_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
<application
android:label="emergency"
android:name="${applicationName}"
@@ -41,5 +59,11 @@
<action android:name="android.intent.action.PROCESS_TEXT"/>
<data android:mimeType="text/plain"/>
</intent>
<!-- Ermöglicht canLaunchUrl()-Prüfung und Öffnen von tel:-Intents
ab Android 11 (Package Visibility), siehe docs/plan.md Abschnitt 7. -->
<intent>
<action android:name="android.intent.action.DIAL" />
<data android:scheme="tel" />
</intent>
</queries>
</manifest>