feat(alarmas): replace one-line reliability button with full diagnostics screen

Surface all six DiagnosticoAlarmasAndroid fields instead of three: the
battery-optimization exemption and native pending-alarm count were
already collected but silently dropped by the old widget. Each failing
signal now offers a "Fix this" action that opens the right system
settings screen (exact alarms, notifications, full-screen intent,
battery optimization), guarded by SDK level and never crashing when a
ROM lacks that screen. Manufacturers known for aggressive background
killing (Xiaomi/Redmi/POCO, Huawei, Oppo, Vivo, OnePlus, Samsung) get
an honest explanation that Autostart must be enabled manually, since
there is no API to detect or grant it.

Notifications now deep-links straight to
ACTION_APP_NOTIFICATION_SETTINGS via a new openNotificationSettings
native method, instead of reusing the runtime permission popup meant
for first-time alarm creation.

New copy is added to all 13 ARB locales with real per-language
translations (not Spanish copies), verified by the ARB parity and
anti-copy tests plus the corruption scanner.
This commit is contained in:
2026-07-31 19:10:52 +02:00
parent ef9705a30e
commit 049ab78acb
35 changed files with 2262 additions and 79 deletions
+70
View File
@@ -1712,4 +1712,74 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get alarmCardVacationPausedBadge => 'Wegen Urlaub pausiert';
@override
String get alarmDiagnosticsExactAlarmsTitle => 'Genaue Alarmplanung';
@override
String get alarmDiagnosticsExactAlarmsHint =>
'Lässt den Alarm genau zur eingestellten Minute klingeln, auch wenn das Telefon im Ruhezustand ist.';
@override
String get alarmDiagnosticsNotificationsTitle => 'Benachrichtigungen';
@override
String get alarmDiagnosticsNotificationsHint =>
'Nötig, um den Alarm und den Vorab-Hinweis anzuzeigen.';
@override
String get alarmDiagnosticsFullScreenTitle => 'Alarmanzeige im Vollbildmodus';
@override
String get alarmDiagnosticsFullScreenHint =>
'Lässt den Klingelbildschirm automatisch erscheinen, auch wenn das Telefon gesperrt ist.';
@override
String get alarmDiagnosticsBatteryTitle => 'Akku-Optimierung';
@override
String get alarmDiagnosticsBatteryHint =>
'Verhindert, dass das System PluriWave im Hintergrund beendet, damit der Alarm trotzdem klingeln kann.';
@override
String get alarmDiagnosticsNativeCountTitle =>
'Bei Android registrierte Alarme';
@override
String alarmDiagnosticsNativeCountValue(int count) {
return 'Aktuell registriert: $count';
}
@override
String get alarmDiagnosticsNativeCountAttentionHint =>
'Du hast einen Alarm aktiviert, aber es ist noch keiner beim System registriert. Öffne PluriWave erneut oder behebe zuerst die Punkte oben.';
@override
String get alarmDiagnosticsManufacturerLabel => 'Hersteller';
@override
String get alarmDiagnosticsSdkLabel => 'Android-Version (SDK)';
@override
String get alarmDiagnosticsNeedsAttentionStatus => 'Erfordert Aufmerksamkeit';
@override
String get alarmDiagnosticsAutostartTitle =>
'Noch ein manueller Schritt auf diesem Telefon';
@override
String alarmDiagnosticsAutostartBody(String manufacturer) {
return '$manufacturer-Telefone schließen oft Apps im Hintergrund, um Akku zu sparen. Es gibt keine Einstellung, die PluriWave selbst aktivieren kann — du musst den Autostart (manchmal auch \"Auto-Start\" oder \"Hintergrundaktivität\" genannt) für PluriWave selbst einschalten. Schau in den Einstellungen unter Apps oder Akku, oder in der Sicherheits-App des Telefons nach.';
}
@override
String get alarmDiagnosticsFixAction => 'Beheben';
@override
String get alarmDiagnosticsIntentUnavailable =>
'Diese Einstellungsseite konnte auf diesem Telefon nicht geöffnet werden. Suche sie manuell in den Einstellungen.';
@override
String get alarmDiagnosticsUnavailableHint =>
'Wir konnten deine Alarmeinstellungen noch nicht prüfen.';
}