-
-
Notifications
You must be signed in to change notification settings - Fork 47
/
injection.dart
42 lines (34 loc) · 2.04 KB
/
injection.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import 'package:genshindb/domain/services/calculator_service.dart';
import 'package:genshindb/domain/services/data_service.dart';
import 'package:genshindb/domain/services/device_info_service.dart';
import 'package:genshindb/domain/services/game_code_service.dart';
import 'package:genshindb/domain/services/genshin_service.dart';
import 'package:genshindb/domain/services/locale_service.dart';
import 'package:genshindb/domain/services/logging_service.dart';
import 'package:genshindb/domain/services/network_service.dart';
import 'package:genshindb/domain/services/settings_service.dart';
import 'package:genshindb/domain/services/telemetry_service.dart';
import 'package:genshindb/infrastructure/infrastructure.dart';
import 'package:get_it/get_it.dart';
final GetIt getIt = GetIt.instance;
Future<void> initInjection() async {
getIt.registerSingleton<NetworkService>(NetworkServiceImpl());
final deviceInfoService = DeviceInfoServiceImpl();
getIt.registerSingleton<DeviceInfoService>(deviceInfoService);
await deviceInfoService.init();
final telemetryService = TelemetryServiceImpl(deviceInfoService);
getIt.registerSingleton<TelemetryService>(telemetryService);
await telemetryService.initTelemetry();
final loggingService = LoggingServiceImpl(getIt<TelemetryService>(), deviceInfoService);
getIt.registerSingleton<LoggingService>(loggingService);
final settingsService = SettingsServiceImpl(loggingService);
await settingsService.init();
getIt.registerSingleton<SettingsService>(settingsService);
getIt.registerSingleton<LocaleService>(LocaleServiceImpl(getIt<SettingsService>()));
getIt.registerSingleton<GenshinService>(GenshinServiceImpl(getIt<LocaleService>()));
getIt.registerSingleton<CalculatorService>(CalculatorServiceImpl(getIt<GenshinService>()));
final dataService = DataServiceImpl(getIt<GenshinService>(), getIt<CalculatorService>());
await dataService.init();
getIt.registerSingleton<DataService>(dataService);
getIt.registerSingleton<GameCodeService>(GameCodeServiceImpl(getIt<LoggingService>(), getIt<GenshinService>()));
}