import 'dart:async'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:ride/views/auth/login_page.dart'; import '../../constant/box_name.dart'; import '../../main.dart'; import '../../onbording_page.dart'; import '../../views/auth/captin/login_captin.dart'; import '../../views/home/Captin/home_captin.dart'; import '../../views/home/map_page.dart'; class SplashScreenController extends GetxController with SingleGetTickerProviderMixin { late AnimationController animationController; late Animation zoomInAnimation; late Animation zoomOutAnimation; @override void onInit() { super.onInit(); animationController = AnimationController( vsync: this, duration: const Duration(seconds: 7), ); zoomInAnimation = Tween(begin: 1.0, end: 1.5).animate( CurvedAnimation( parent: animationController, curve: Curves.easeInOut, ), ); zoomOutAnimation = Tween(begin: 1.5, end: 1.0).animate( CurvedAnimation( parent: animationController, curve: Curves.easeInOut, ), ); animationController.repeat(reverse: true); startTimer(); } void startTimer() { Timer(const Duration(seconds: 7), () { box.read(BoxName.onBoarding) == null ? Get.off(() => OnBoardingPage()) : box.read(BoxName.email) != null ? Get.off(() => const MapPage()) : box.read(BoxName.emailDriver) == null ? Get.off(() => LoginPage()) : box.read(BoxName.emailDriver) != null ? Get.off(() => const HomeCaptain()) : Get.off(() => LoginCaptin()); }); } @override void onClose() { animationController.dispose(); super.onClose(); } }