// import 'package:firebase_crashlytics/firebase_crashlytics.dart'; // import 'package:flutter/material.dart'; import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:flutter/services.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/logger_service.dart'; import 'package:hmg_qline/services/text_to_speech_service.dart'; import 'package:hmg_qline/utilities/native_method_handler.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:logger/logger.dart'; import 'package:shared_preferences/shared_preferences.dart'; final getIt = GetIt.instance; class AppDependencies { static Future addDependencies() async { final logger = Logger( printer: PrettyPrinter( printEmojis: false, colors: true, dateTimeFormat: DateTimeFormat.none, ), ); //api client getIt.registerSingleton(LoggerServiceImp(logger: logger)); getIt.registerSingleton(ApiClientImp(loggerService: getIt.get())); //repos getIt.registerSingleton(SignalrRepoImp(loggerService: getIt.get())); getIt.registerSingleton(ScreenDetailsRepoImp(apiClientInstance: getIt.get(), loggerService: getIt.get())); //repos getIt.registerSingleton(NativeMethodChannelServiceImp(loggerService: getIt.get())); //ThirdPartyServices getIt.registerSingleton(ConnectivityServiceImp(connectivityInstance: Connectivity())); getIt.registerSingleton(CacheServiceImp(preferencesInstance: await SharedPreferences.getInstance())); getIt.registerSingleton(AudioServiceImp(audioPlayerInstance: AudioPlayer())); getIt.registerSingleton(TextToSpeechServiceImp(textToSpeechInstance: FlutterTts(), loggerService: getIt.get())); //ViewModels getIt.registerSingleton( ScreenConfigViewModel( screenDetailsRepo: getIt.get(), cacheService: getIt.get(), connectivityService: getIt.get(), loggerService: getIt.get(), nativeMethodChannelService: getIt.get(), ), ); getIt.registerSingleton( QueuingViewModel( loggerService: getIt.get(), screenDetailsRepo: getIt.get(), cacheService: getIt.get(), textToSpeechService: getIt.get(), audioService: getIt.get(), signalrRepo: getIt.get(), ), ); } }