initUNavInjection<T> function

void initUNavInjection<T>(
  1. String env
)

Registration of dependencies independent of user settings, except for generic.

Implementation

void initUNavInjection<T>(String env) {
  getIt.registerFactory<BehaviorSubject<T>>(() => BehaviorSubject<T>());
  getIt.registerFactory<BehaviorSubject<NavigationTabArguments>>(
      () => BehaviorSubject<NavigationTabArguments>());
  getIt.registerFactory<BehaviorSubject<NavigationArguments>>(
      () => BehaviorSubject<NavigationArguments>());

  getIt.registerSingleton<EventNotifier<T>>(
      CoreEventNotifier<T>(getIt<BehaviorSubject<T>>()));
  getIt.registerSingleton<BottomNavKey>(
      BottomNavKey(GlobalKey<NavigatorState>()));
  getIt.registerSingleton<GlobalNavKey>(
      GlobalNavKey(GlobalKey<NavigatorState>()));

  final navControllerEvents = NavigationControllerEvents<T>(
    getIt<BehaviorSubject<NavigationTabArguments>>(),
    getIt<BehaviorSubject<NavigationArguments>>(),
    getIt<EventNotifier<T>>(),
  );

  getIt.registerSingleton<NavigationController<T>>(navControllerEvents);
  getIt.registerSingleton<NavigationEvents>(navControllerEvents);
}