import 'package:flutter/material.dart'; import 'package:get_it/get_it.dart'; import 'package:muaawana/providers/bookmark_provider.dart'; import 'package:muaawana/providers/notif/notification_provider.dart'; import 'package:muaawana/providers/notif/notification_singleton.dart'; import 'package:muaawana/providers/technician_provider.dart'; import 'package:muaawana/providers/urgent_request_provider.dart'; import 'package:muaawana/services/bookmark_services.dart'; import 'package:muaawana/services/chat_v2/chat_socket.dart'; import 'package:muaawana/services/push_notification_service.dart'; import 'package:muaawana/services/rating_services.dart'; import 'package:muaawana/services/technician_services.dart'; import 'package:muaawana/services/urgent_request_services.dart'; import '../providers/ThemeProvider.dart'; import '../providers/addresses_provider.dart'; import '../providers/chat_v2/chat_socket_stream_provider.dart'; import '../providers/chat_v2/user_conversation.dart'; import '../providers/notif/notification_socket.dart'; import '../views/client_view/Web View/Store/StoreRequestProvider.dart'; import 'address_services.dart'; import 'home_service.dart'; import 'request_status_service.dart'; import 'service_request_service.dart'; import 'utils_services.dart'; import 'package:provider/provider.dart'; import '../providers/home_provider.dart'; import '../providers/auth_provider.dart'; import '../providers/booking_provider.dart'; import '../providers/client_picker_provider.dart'; import '../providers/language_provider.dart'; import '../providers/map_provider.dart'; import '../providers/navbar_provider/bottom_navigation_provider.dart'; import '../providers/navbar_provider/bottomnavbar_visibility_provider.dart'; import '../providers/navbar_provider/client_bottom_nav_provider.dart'; import '../providers/order_status_provider.dart'; import '../providers/rating_provider.dart'; import '../providers/request_status_provider.dart'; import '../providers/service_details_provider.dart'; import '../providers/utils_provider.dart'; import '../utils/utils_singleton.dart'; import 'auth_services.dart'; import 'map_services/map_services.dart'; class DependencyInjector { static DependencyInjector? _instance; static DependencyInjector get instance { _instance ??= DependencyInjector._init(); return _instance!; } DependencyInjector._init() { GetIt.I.registerLazySingleton(() => AuthServices()); GetIt.I.registerLazySingleton(() => HomeService()); // GetIt.I.registerLazySingleton(() => MessageService()); GetIt.I.registerLazySingleton(() => UtilsServices()); GetIt.I.registerLazySingleton(() => MapServices()); GetIt.I.registerLazySingleton(() => ServiceRequestService()); GetIt.I.registerLazySingleton(() => UserRequestStatus()); GetIt.I.registerLazySingleton(() => RatingServices()); GetIt.I.registerLazySingleton(() => TechnicianService()); GetIt.I.registerLazySingleton(() => AddressServices()); GetIt.I.registerLazySingleton(() => UrgentRequestService()); GetIt.I.registerLazySingleton(() => BookmarkService()); GetIt.I.registerLazySingleton(() => PushNotificationService()); } List> get providers => [ ChangeNotifierProvider( create: (context) => util), ChangeNotifierProvider( create: (context) => UtilsProvider()), ChangeNotifierProvider( create: (context) => AuthProvider()), ChangeNotifierProvider( create: (context) => ChatSocket()), ChangeNotifierProvider( create: (context) => NotificationSocket()), ChangeNotifierProvider( create: (context) => ChatSocketStreamProvider()), ChangeNotifierProvider( create: (context) => LanguageProvider()), ChangeNotifierProvider( create: (context) => ClientPickerProvider()), ChangeNotifierProvider( create: (context) => BottomNavBarVisibilityProvider()), ChangeNotifierProvider( create: (context) => ClientBottomNavigationProvider()), ChangeNotifierProvider( create: (context) => BottomNavigationProvider()), ChangeNotifierProvider( create: (context) => HomeScreenProvider()), ChangeNotifierProvider( create: (context) => LocationProvider()), ChangeNotifierProvider( create: (context) => userConversationSingleton), ChangeNotifierProvider( create: (context) => ServiceDetailsProvider(0)), ChangeNotifierProvider( create: (context) => OrderStatusProvider()), ChangeNotifierProvider( create: (context) => RequestStatusProvider()), ChangeNotifierProvider( create: (context) => RatingDialogBoxProvider(), ), // ChangeNotifierProvider( // create: (context) => MessagesScreenProvider(), // ), ChangeNotifierProvider( create: (context) => ServiceDetailsProvider(1)), ChangeNotifierProvider( create: (context) => BookingProvider()), ChangeNotifierProvider( create: (context) => TechnicianProvider()), ChangeNotifierProvider( create: (context) => UrgentRequestProvider()), ChangeNotifierProvider( create: (context) => AddressProvider()), ChangeNotifierProvider( create: (context) => BookmarkProvider()), ChangeNotifierProvider( create: (context) => NotificationsProvider()), ChangeNotifierProvider( create: (context) => NotificationSingleton()), ChangeNotifierProvider( create: (context) => StoreRequestProvider()), ChangeNotifierProvider( create: (context) => ThemeProvider()), ]; }