75 lines
3.0 KiB
Dart
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());
|
|
}
|
|
}
|
|
}
|
|
}
|