import 'dart:async'; import 'dart:developer'; import 'package:driver/app/auth_screen/login_screen.dart'; import 'package:driver/app/cab_screen/cab_dashboard_screen.dart'; import 'package:driver/app/dash_board_screen/dash_board_screen.dart'; import 'package:driver/app/maintenance_mode_screen/maintenance_mode_screen.dart'; import 'package:driver/app/on_boarding_screen.dart'; import 'package:driver/app/owner_screen/owner_dashboard_screen.dart'; import 'package:driver/app/parcel_screen/parcel_dashboard_screen.dart'; import 'package:driver/app/rental_service/rental_dashboard_screen.dart'; import 'package:driver/constant/constant.dart'; import 'package:driver/models/user_model.dart'; import 'package:driver/utils/fire_store_utils.dart'; import 'package:driver/utils/notification_service.dart'; import 'package:driver/utils/preferences.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:get/get.dart'; class SplashController extends GetxController { @override void onInit() { Timer(const Duration(seconds: 3), () => redirectScreen()); super.onInit(); } Future redirectScreen() async { if (Constant.isMaintenanceModeForDriver == true) { Get.offAll(const MaintenanceModeScreen()); return; } if (Preferences.getBoolean(Preferences.isFinishOnBoardingKey) == false) { Get.offAll(const OnboardingScreen()); } else { bool isLogin = await FireStoreUtils.isLogin(); if (isLogin == true) { await FireStoreUtils.getUserProfile(FireStoreUtils.getCurrentUid()).then((value) async { if (value != null) { UserModel userModel = value; log(userModel.toJson().toString()); if (userModel.role == Constant.userRoleDriver) { if (userModel.active == true) { userModel.fcmToken = await NotificationService.getToken(); await FireStoreUtils.updateUser(userModel); if (userModel.isOwner == true) { Get.offAll(OwnerDashboardScreen()); } else { if (userModel.serviceType == "delivery-service") { Get.offAll(const DashBoardScreen()); } else if (userModel.serviceType == "cab-service") { Get.offAll(const CabDashboardScreen()); } else if (userModel.serviceType == "parcel_delivery") { Get.offAll(const ParcelDashboardScreen()); } else if (userModel.serviceType == "rental-service") { Get.offAll(const RentalDashboardScreen()); } } } else { await FirebaseAuth.instance.signOut(); Get.offAll(const LoginScreen()); } } else { await FirebaseAuth.instance.signOut(); Get.offAll(const LoginScreen()); } } }); } else { await FirebaseAuth.instance.signOut(); Get.offAll(const LoginScreen()); } } } }