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>
41 lines
1.1 KiB
Dart
41 lines
1.1 KiB
Dart
import 'emergency_type.dart';
|
|
|
|
/// Eine einzelne Notrufnummer eines Landes (z. B. Polizei, Feuerwehr).
|
|
class EmergencyNumber {
|
|
const EmergencyNumber({
|
|
required this.type,
|
|
required this.number,
|
|
required this.labelDe,
|
|
required this.labelEn,
|
|
});
|
|
|
|
final EmergencyType type;
|
|
final String number;
|
|
final String labelDe;
|
|
final String labelEn;
|
|
|
|
factory EmergencyNumber.fromJson(Map<String, dynamic> json) {
|
|
return EmergencyNumber(
|
|
type: EmergencyType.fromJson(json['type'] as String),
|
|
number: json['number'] as String,
|
|
labelDe: json['label_de'] as String,
|
|
labelEn: json['label_en'] as String,
|
|
);
|
|
}
|
|
|
|
@override
|
|
String toString() => 'EmergencyNumber(type: $type, number: $number)';
|
|
|
|
@override
|
|
bool operator ==(Object other) =>
|
|
identical(this, other) ||
|
|
(other is EmergencyNumber &&
|
|
other.type == type &&
|
|
other.number == number &&
|
|
other.labelDe == labelDe &&
|
|
other.labelEn == labelEn);
|
|
|
|
@override
|
|
int get hashCode => Object.hash(type, number, labelDe, labelEn);
|
|
}
|