Notification system audit: fix 6 defects, close 5 gaps, add rich notifications (v1.1.0)
Defects fixed: - D1: Fix notification ID range collision (report reminders 700k→2M+) - D2: Streak risk now checks both dzikir pagi & petang - D3: _cancelPrayerPending no longer kills non-prayer notifications - D4: Push notifications carry deeplink in payload for proper routing - D5: Add reconfigureTimeZoneIfNeeded() for TZ change detection - D6: Defer launch notification routing until widget tree is ready Gaps closed: - G1: Add streak risk + weekly summary toggles to settings UI - G2: Verified boot reschedule already in place (flutter_local_notifications v21) - G3: Remove unused mirrorAdzanToInbox field and legacy cleanup calls - G4: Add notif_push_opened analytics tracking - G5: Add notif_settings_changed analytics tracking Enhancements: - O1: Rich notification with Sudah Sholat action button on report reminders - O2: Permission check on app resume via WidgetsBindingObserver (30s throttle) - O2b: Fix stretched notification icon (white crescent moon vector drawable) - O3: Expired inbox cleanup in background sync - O4: Haptic feedback on notification bell quick actions Bump version 1.0.8+9 → 1.1.0+10
This commit is contained in:
@@ -8,6 +8,7 @@ import 'package:workmanager/workmanager.dart';
|
||||
import '../local/hive_boxes.dart';
|
||||
import '../local/models/app_settings.dart';
|
||||
import 'myquran_sholat_service.dart';
|
||||
import 'notification_inbox_service.dart';
|
||||
import 'notification_orchestrator_service.dart';
|
||||
import 'notification_service.dart';
|
||||
|
||||
@@ -45,6 +46,8 @@ class BackgroundSyncService {
|
||||
final settings = settingsBox.get('default') ?? AppSettings();
|
||||
final cityId = _resolveCityId(settings);
|
||||
|
||||
await NotificationInboxService.instance.removeExpired();
|
||||
|
||||
final schedulesByDate = await _buildWindowSchedules(cityId);
|
||||
if (schedulesByDate.isNotEmpty) {
|
||||
await NotificationService.instance.syncPrayerNotifications(
|
||||
|
||||
Reference in New Issue
Block a user