Files
Fondex-Driver/lib/controllers/splash_controller.dart
2025-12-08 23:25:00 +05:00

75 lines
3.0 KiB
Dart

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<void> 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());
}
}
}
}