feat: 重构 Reminder Notification 系统并更新应用包名
This commit is contained in:
@@ -6,6 +6,7 @@ import '../../data/cache/cache_store.dart';
|
||||
import '../../features/calendar/data/repositories/calendar_repository.dart';
|
||||
import '../../features/contacts/data/repositories/friend_repository.dart';
|
||||
import '../../features/messages/data/repositories/inbox_repository.dart';
|
||||
import '../../core/inbox/inbox_sync_store.dart';
|
||||
import '../../features/contacts/data/repositories/user_repository.dart';
|
||||
import '../../core/auth/session_controller.dart';
|
||||
import '../../data/network/api_client.dart';
|
||||
@@ -36,6 +37,10 @@ import '../../features/todo/data/apis/todo_api.dart';
|
||||
import '../../features/todo/data/repositories/todo_repository.dart';
|
||||
import '../services/app_prewarm_orchestrator.dart';
|
||||
import '../services/auth_session_controller.dart';
|
||||
import '../../core/notification/services/reminder_scheduler_service.dart';
|
||||
import '../../core/notification/services/reminder_permission_service.dart';
|
||||
import '../../core/notification/services/reminder_reconcile_service.dart';
|
||||
import '../../core/notification/services/reminder_notification_router.dart';
|
||||
|
||||
final sl = GetIt.instance;
|
||||
|
||||
@@ -96,15 +101,31 @@ Future<void> configureDependencies() async {
|
||||
|
||||
final calendarApi = CalendarApi(apiClient);
|
||||
sl.registerSingleton<CalendarApi>(calendarApi);
|
||||
|
||||
final reminderScheduler = ReminderSchedulerService();
|
||||
sl.registerSingleton<ReminderSchedulerService>(reminderScheduler);
|
||||
sl.registerSingleton<ReminderPermissionService>(
|
||||
ReminderPermissionService(scheduler: reminderScheduler),
|
||||
);
|
||||
sl.registerSingleton<ReminderReconcileService>(
|
||||
ReminderReconcileService(scheduler: reminderScheduler),
|
||||
);
|
||||
sl.registerSingleton<ReminderNotificationRouter>(
|
||||
ReminderNotificationRouter(scheduler: reminderScheduler),
|
||||
dispose: (service) => service.dispose(),
|
||||
);
|
||||
|
||||
final calendarService = CalendarService(
|
||||
apiClient: apiClient,
|
||||
invalidator: sl<CacheInvalidator>(),
|
||||
reminderReconcileService: sl<ReminderReconcileService>(),
|
||||
);
|
||||
sl.registerSingleton<CalendarService>(calendarService);
|
||||
|
||||
final calendarRepository = CalendarRepository(
|
||||
store: hybridCacheStore,
|
||||
apiClient: apiClient,
|
||||
reminderReconcileService: sl<ReminderReconcileService>(),
|
||||
);
|
||||
sl.registerSingleton<CalendarRepository>(calendarRepository);
|
||||
|
||||
@@ -125,8 +146,14 @@ Future<void> configureDependencies() async {
|
||||
|
||||
final inboxApi = InboxApi(apiClient);
|
||||
sl.registerSingleton<InboxApi>(inboxApi);
|
||||
sl.registerSingleton<InboxRepository>(
|
||||
InboxRepositoryImpl(apiClient: apiClient, store: hybridCacheStore),
|
||||
final inboxRepository = InboxRepositoryImpl(
|
||||
apiClient: apiClient,
|
||||
store: hybridCacheStore,
|
||||
);
|
||||
sl.registerSingleton<InboxRepository>(inboxRepository);
|
||||
sl.registerSingleton<InboxSyncStore>(
|
||||
InboxSyncStore(repository: inboxRepository, inboxApi: inboxApi),
|
||||
dispose: (store) => store.dispose(),
|
||||
);
|
||||
|
||||
final chatApi = ChatApiImpl(apiClient);
|
||||
@@ -172,7 +199,21 @@ Future<void> configureDependencies() async {
|
||||
sl.registerSingleton<AuthBloc>(authBloc);
|
||||
sl.registerSingleton<SessionController>(AuthSessionController(authBloc));
|
||||
sl.registerSingleton<ChatBloc>(
|
||||
ChatBloc(chatApi: chatApi, historyRepository: chatHistoryRepository),
|
||||
ChatBloc(
|
||||
chatApi: chatApi,
|
||||
historyRepository: chatHistoryRepository,
|
||||
onCalendarMutated: () async {
|
||||
final calendarRepository = sl<CalendarRepository>();
|
||||
final selected = sl<CalendarStateManager>().selectedDate;
|
||||
await Future.wait([
|
||||
calendarRepository.getDayEvents(selected, forceRefresh: true),
|
||||
calendarRepository.getMonthEvents(
|
||||
DateTime(selected.year, selected.month, 1),
|
||||
forceRefresh: true,
|
||||
),
|
||||
]);
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
apiClient.setRefreshCallback((token) async {
|
||||
|
||||
Reference in New Issue
Block a user