You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
HMG_QLine/lib/config/dependency_injection.dart

57 lines
2.3 KiB
Dart

10 months ago
// import 'package:firebase_crashlytics/firebase_crashlytics.dart';
// import 'package:flutter/material.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter_tts/flutter_tts.dart';
import 'package:get_it/get_it.dart';
import 'package:hmg_qline/api/api_client.dart';
import 'package:hmg_qline/repositories/screen_details_repo.dart';
import 'package:hmg_qline/repositories/signalR_repo.dart';
import 'package:hmg_qline/services/audio_service.dart';
import 'package:hmg_qline/services/cache_service.dart';
import 'package:hmg_qline/services/connectivity_service.dart';
import 'package:hmg_qline/services/text_to_speech_service.dart';
import 'package:hmg_qline/view_models/queuing_view_model.dart';
import 'package:hmg_qline/view_models/screen_config_view_model.dart';
import 'package:just_audio/just_audio.dart';
import 'package:shared_preferences/shared_preferences.dart';
final getIt = GetIt.instance;
class AppDependencies {
static Future<void> addDependencies() async {
//api client
getIt.registerSingleton<ApiClient>(ApiClientImp());
//repos
getIt.registerSingleton<SignalrRepo>(SignalrRepoImp());
getIt.registerSingleton<ScreenDetailsRepo>(ScreenDetailsRepoImp(apiClientInstance: getIt.get<ApiClient>()));
//ThirdPartyServices
getIt.registerSingleton<ConnectivityService>(ConnectivityServiceImp(connectivityInstance: Connectivity()));
getIt.registerSingleton<CacheService>(CacheServiceImp(preferencesInstance: await SharedPreferences.getInstance()));
getIt.registerSingleton<AudioService>(AudioServiceImp(audioPlayerInstance: AudioPlayer()));
getIt.registerSingleton<TextToSpeechService>(TextToSpeechServiceImp(textToSpeechInstance: FlutterTts()));
//ViewModels
getIt.registerSingleton<ScreenConfigViewModel>(
ScreenConfigViewModel(
screenDetailsRepo: getIt.get<ScreenDetailsRepo>(),
cacheService: getIt.get<CacheService>(),
connectivityService: getIt.get<ConnectivityService>(),
),
);
getIt.registerSingleton<QueuingViewModel>(
QueuingViewModel(
screenDetailsRepo: getIt.get<ScreenDetailsRepo>(),
cacheService: getIt.get<CacheService>(),
textToSpeechService: getIt.get<TextToSpeechService>(),
audioService: getIt.get<AudioService>(),
signalrRepo: getIt.get<SignalrRepo>(),
),
);
}
}