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
+62
View File
@@ -1637,4 +1637,66 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get alarmCardVacationPausedBadge => '因假期已暂停';
@override
String get alarmDiagnosticsExactAlarmsTitle => '精确闹钟排程';
@override
String get alarmDiagnosticsExactAlarmsHint => '即使手机处于休眠状态,也能让闹钟在设定的准确时间响起。';
@override
String get alarmDiagnosticsNotificationsTitle => '通知';
@override
String get alarmDiagnosticsNotificationsHint => '显示闹钟和提前提醒需要用到。';
@override
String get alarmDiagnosticsFullScreenTitle => '闹钟全屏显示';
@override
String get alarmDiagnosticsFullScreenHint => '即使手机已锁屏,也能让响铃界面自动出现。';
@override
String get alarmDiagnosticsBatteryTitle => '电池优化';
@override
String get alarmDiagnosticsBatteryHint => '防止系统在后台关闭PluriWave,让闹钟仍然可以响起。';
@override
String get alarmDiagnosticsNativeCountTitle => '已在Android系统注册的闹钟';
@override
String alarmDiagnosticsNativeCountValue(int count) {
return '当前已注册:$count';
}
@override
String get alarmDiagnosticsNativeCountAttentionHint =>
'你已开启一个闹钟,但目前还没有闹钟在系统中注册。请重新打开PluriWave,或先解决上面列出的问题。';
@override
String get alarmDiagnosticsManufacturerLabel => '制造商';
@override
String get alarmDiagnosticsSdkLabel => 'Android版本(SDK';
@override
String get alarmDiagnosticsNeedsAttentionStatus => '需要注意';
@override
String get alarmDiagnosticsAutostartTitle => '此手机还需要一步手动设置';
@override
String alarmDiagnosticsAutostartBody(String manufacturer) {
return '$manufacturer手机经常会关闭后台运行的应用以节省电量。没有任何设置可以让PluriWave自行开启——你需要自己为PluriWave开启自启动(有时也叫\"Autostart\"\"后台活动\")。请在设置中查找应用或电池选项,或者查看手机自带的安全应用。';
}
@override
String get alarmDiagnosticsFixAction => '解决';
@override
String get alarmDiagnosticsIntentUnavailable => '无法在此手机上打开该设置界面。请尝试在设置中手动查找。';
@override
String get alarmDiagnosticsUnavailableHint => '我们还无法检查你的闹钟设置。';
}