setup method

Future<void> setup()

Implementation

Future<void> setup() async {
  // SharedPreferences
  SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
  coreLocator.registerSingleton<SharedPreferences>(sharedPreferences);

  // preferences settings
  coreLocator.registerLazySingleton<PreferencesSettings>(
    () => PreferencesSettingsImpml(
      sharedPrefs: coreLocator.get<SharedPreferences>(),
    ),
    instanceName: 'preferences',
  );

  // repository
  coreLocator.registerFactory<PreferencesRepository>(
    () => PreferencesRepositoryImpl(
      settings:
          coreLocator.get<PreferencesSettings>(instanceName: 'preferences'),
    ),
  );

  // use cases
  coreLocator.registerFactory(
    () => ClearSelectedItemsUseCase(
      repository: coreLocator.get<PreferencesRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => ClearTokenUseCase(
      repository: coreLocator.get<PreferencesRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => ClearUserUseCase(
      repository: coreLocator.get(),
    ),
  );
  coreLocator.registerFactory(() => GetAppStateUseCase(coreLocator.get()));
  coreLocator.registerFactory(
    () => GetSelectedItemsStreamUseCase(
      repository: coreLocator.get<PreferencesRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => GetSelectedItemsUseCase(
      repository: coreLocator.get<PreferencesRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => UpdateSelectedItemUsecase(
      repository: coreLocator.get<PreferencesRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => GetRememberCredentialUseCase(
      repository: coreLocator.get<PreferencesRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => SetRememberCredentialUseCase(
      repository: coreLocator.get<PreferencesRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => ClearRememberCredentialUseCase(
      repository: coreLocator.get<PreferencesRepository>(),
    ),
  );
  coreLocator.registerFactory(
    () => ClearKeysPreferencesUseCase(
      repository: coreLocator.get<PreferencesRepository>(),
    ),
  );
}