feat(04-01): Android config, NotificationService, DAO queries, timezone init, ARB strings

- Add flutter_local_notifications ^21.0.0, timezone ^0.11.0, flutter_timezone ^1.0.8 to pubspec.yaml
- Set compileSdk=35, enable core library desugaring in build.gradle.kts
- Add POST_NOTIFICATIONS, RECEIVE_BOOT_COMPLETED permissions and boot receivers to AndroidManifest.xml
- Create NotificationService singleton with initialize, requestPermission, scheduleDailyNotification, cancelAll
- Add getOverdueAndTodayTaskCount and getOverdueTaskCount one-shot queries to DailyPlanDao
- Initialize timezone and NotificationService in main.dart before runApp
- Add 7 notification-related ARB strings to app_de.arb
- All 72 existing tests pass
This commit is contained in:
2026-03-16 14:52:29 +01:00
parent abc56f032f
commit 878767138c
7 changed files with 155 additions and 3 deletions

View File

@@ -88,5 +88,23 @@
"dailyPlanAllClearTitle": "Alles erledigt! \ud83c\udf1f",
"dailyPlanAllClearMessage": "Keine Aufgaben f\u00fcr heute. Genie\u00dfe den Moment!",
"dailyPlanNoOverdue": "Keine \u00fcberf\u00e4lligen Aufgaben",
"dailyPlanNoTasks": "Noch keine Aufgaben angelegt"
"dailyPlanNoTasks": "Noch keine Aufgaben angelegt",
"settingsSectionNotifications": "Benachrichtigungen",
"notificationsEnabledLabel": "Tägliche Erinnerung",
"notificationsTimeLabel": "Uhrzeit",
"notificationsPermissionDeniedHint": "Benachrichtigungen sind in den Systemeinstellungen deaktiviert. Tippe hier, um sie zu aktivieren.",
"notificationTitle": "Dein Tagesplan",
"notificationBody": "{count} Aufgaben fällig",
"@notificationBody": {
"placeholders": {
"count": { "type": "int" }
}
},
"notificationBodyWithOverdue": "{count} Aufgaben fällig ({overdue} überfällig)",
"@notificationBodyWithOverdue": {
"placeholders": {
"count": { "type": "int" },
"overdue": { "type": "int" }
}
}
}