feat: add app lifecycle refresh coordinator
This commit is contained in:
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
|
||||
import 'core/constants/app_constants.dart';
|
||||
import 'core/cache/cache_refresh_coordinator.dart';
|
||||
import 'core/di/injection.dart';
|
||||
import 'core/notifications/local_notification_service.dart';
|
||||
import 'core/notifications/reminder_notification_callbacks.dart';
|
||||
@@ -14,9 +15,13 @@ import 'features/auth/presentation/bloc/auth_bloc.dart';
|
||||
import 'features/auth/presentation/bloc/auth_event.dart';
|
||||
import 'features/auth/presentation/bloc/auth_state.dart';
|
||||
import 'features/calendar/data/services/calendar_service.dart';
|
||||
import 'features/calendar/data/services/calendar_repository.dart';
|
||||
import 'features/calendar/reminders/reminder_action_executor.dart';
|
||||
import 'features/calendar/reminders/ui/reminder_foreground_presenter.dart';
|
||||
import 'features/calendar/ui/calendar_state_manager.dart';
|
||||
import 'features/chat/presentation/bloc/chat_bloc.dart';
|
||||
import 'features/settings/data/services/settings_user_cache.dart';
|
||||
import 'features/todo/data/todo_repository.dart';
|
||||
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
@@ -44,6 +49,25 @@ void main() async {
|
||||
final authBloc = sl<AuthBloc>();
|
||||
authBloc.add(AuthStarted());
|
||||
|
||||
final cacheRefreshCoordinator = CacheRefreshCoordinator(
|
||||
minInterval: const Duration(minutes: 5),
|
||||
onRefresh: () {
|
||||
final selected = sl<CalendarStateManager>().selectedDate;
|
||||
unawaited(
|
||||
sl<CalendarRepository>().getDayEvents(selected, forceRefresh: true),
|
||||
);
|
||||
unawaited(
|
||||
sl<CalendarRepository>().getMonthEvents(
|
||||
DateTime(selected.year, selected.month, 1),
|
||||
forceRefresh: true,
|
||||
),
|
||||
);
|
||||
unawaited(sl<TodoRepository>().getPendingTodos(forceRefresh: true));
|
||||
unawaited(sl<SettingsUserCache>().getProfile(forceRefresh: true));
|
||||
},
|
||||
);
|
||||
WidgetsBinding.instance.addObserver(cacheRefreshCoordinator);
|
||||
|
||||
runApp(
|
||||
LinksyApp(
|
||||
authBloc: authBloc,
|
||||
|
||||
Reference in New Issue
Block a user