import 'dart:async'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:relationship_saver/core/config/app_config.dart'; import 'package:relationship_saver/features/reminders/scheduling/reminder_notification_intent_bus.dart'; import 'package:relationship_saver/features/reminders/scheduling/reminder_scheduler.dart'; import 'package:relationship_saver/features/reminders/scheduling/reminder_scheduler_local_notifications.dart'; /// Broadcasts reminder notification tap intents to interested UI listeners. final Provider reminderNotificationIntentBusProvider = Provider( (Ref ref) { final ReminderNotificationIntentBus bus = ReminderNotificationIntentBus(); ref.onDispose(() { unawaited(bus.close()); }); return bus; }, ); /// Provides reminder delivery scheduler implementation. final Provider reminderSchedulerProvider = Provider((Ref ref) { if (AppConfig.enableLocalNotifications) { return LocalNotificationsReminderScheduler( intentBus: ref.watch(reminderNotificationIntentBusProvider), ); } return const NoopReminderScheduler(); });