feat(04-02): wire notification settings UI, permission flow, scheduling, and tap navigation
- Convert SettingsScreen from ConsumerWidget to ConsumerStatefulWidget
- Add Benachrichtigungen section between Darstellung and Uber sections
- SwitchListTile with permission request on toggle ON (Android 13+)
- Toggle reverts to OFF on permission denial with SnackBar hint
- AnimatedSize progressive disclosure for time picker row when enabled
- _scheduleNotification() queries DailyPlanDao for task/overdue counts
- Skip notification scheduling when task count is 0
- Notification body includes overdue split when overdue > 0
- _onPickTime() shows Material 3 showTimePicker dialog then reschedules
- Wire router.go('/') in NotificationService._onTap for tap navigation
- Regenerate AppLocalizations with 7 new notification strings from Plan 01 ARB
This commit is contained in:
@@ -471,6 +471,48 @@ abstract class AppLocalizations {
|
||||
/// In de, this message translates to:
|
||||
/// **'Noch keine Aufgaben angelegt'**
|
||||
String get dailyPlanNoTasks;
|
||||
|
||||
/// No description provided for @settingsSectionNotifications.
|
||||
///
|
||||
/// In de, this message translates to:
|
||||
/// **'Benachrichtigungen'**
|
||||
String get settingsSectionNotifications;
|
||||
|
||||
/// No description provided for @notificationsEnabledLabel.
|
||||
///
|
||||
/// In de, this message translates to:
|
||||
/// **'Tägliche Erinnerung'**
|
||||
String get notificationsEnabledLabel;
|
||||
|
||||
/// No description provided for @notificationsTimeLabel.
|
||||
///
|
||||
/// In de, this message translates to:
|
||||
/// **'Uhrzeit'**
|
||||
String get notificationsTimeLabel;
|
||||
|
||||
/// No description provided for @notificationsPermissionDeniedHint.
|
||||
///
|
||||
/// In de, this message translates to:
|
||||
/// **'Benachrichtigungen sind in den Systemeinstellungen deaktiviert. Tippe hier, um sie zu aktivieren.'**
|
||||
String get notificationsPermissionDeniedHint;
|
||||
|
||||
/// No description provided for @notificationTitle.
|
||||
///
|
||||
/// In de, this message translates to:
|
||||
/// **'Dein Tagesplan'**
|
||||
String get notificationTitle;
|
||||
|
||||
/// No description provided for @notificationBody.
|
||||
///
|
||||
/// In de, this message translates to:
|
||||
/// **'{count} Aufgaben fällig'**
|
||||
String notificationBody(int count);
|
||||
|
||||
/// No description provided for @notificationBodyWithOverdue.
|
||||
///
|
||||
/// In de, this message translates to:
|
||||
/// **'{count} Aufgaben fällig ({overdue} überfällig)'**
|
||||
String notificationBodyWithOverdue(int count, int overdue);
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
||||
Reference in New Issue
Block a user