// ignore_for_file: prefer_final_fields, file_names import 'dart:async'; import 'dart:developer'; import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:onesignal_flutter/onesignal_flutter.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:traderscircuit/resources/routes/route_name.dart'; import '../../Utils/Common/noInternet.dart'; bool OnBoard = false; class SplashScreen extends StatefulWidget { const SplashScreen({super.key}); @override State createState() => _SplashScreenState(); } class _SplashScreenState extends State with TickerProviderStateMixin { late AnimationController _scaleController; late Animation _scaleAnimation; late AnimationController _slideController; var _connectionStatus; Future checkInternet() async { final connectivityResult = await (Connectivity().checkConnectivity()); if (connectivityResult == ConnectivityResult.wifi || connectivityResult == ConnectivityResult.mobile) { setState(() { _connectionStatus = connectivityResult; }); } else { setState(() { _connectionStatus = connectivityResult; // Navigator.pushReplacementNamed(context, "/noInternet"); }); } } @override void initState() { super.initState(); checkInternet(); OneSignal.shared .setSubscriptionObserver((OSSubscriptionStateChanges changes) async { print(changes.to.userId!.toString()); }); Future.delayed(Duration(seconds: 2), () async { if (_connectionStatus == ConnectivityResult.none) { var result = await Get.to(NoInternet()); if (result != null && result) { Timer(const Duration(seconds: 1), () async { SharedPreferences prefs = await SharedPreferences.getInstance(); var token = prefs.getString('accessToken'); // myusername = prefs.getString('name'); // phonenumber = prefs.getString('contact_number'); OnBoard = prefs.getBool('OnBoard') ?? false; if (OnBoard == false) { Get.toNamed(RouteName.sliderscreen1); } else { if (token == null || token!.isEmpty) { Get.offAndToNamed(RouteName.loginscreen); } else { // GetProfile().GetProfileAPI().then((value) { // Get.toNamed(RouteName.mainScreen, arguments: 0); // }); Get.toNamed(RouteName.mainscreen); } } }); } } else { Timer(const Duration(seconds: 2), () async { SharedPreferences prefs = await SharedPreferences.getInstance(); var token = prefs.getString('accessToken'); // myusername = prefs.getString('name'); // phonenumber = prefs.getString('contact_number'); OnBoard = prefs.getBool('OnBoard') ?? false; if (OnBoard == false) { Get.toNamed(RouteName.sliderscreen1); } else { if (token == null || token!.isEmpty) { Get.offAndToNamed(RouteName.loginscreen); } else { // GetProfile().GetProfileAPI().then((value) { // Get.toNamed(RouteName.mainScreen, arguments: 0); // }); Get.toNamed(RouteName.mainscreen); } } }); } }); // for scaleTansition _scaleController = AnimationController( vsync: this, duration: const Duration(seconds: 2), ); _scaleAnimation = Tween(begin: 0.0, end: 1.0).animate(_scaleController); _scaleController.forward(); // for slideTansition _slideController = AnimationController( vsync: this, duration: const Duration(seconds: 1), ); Timer(const Duration(seconds: 3), () { _slideController.forward(); }); } @override void dispose() { _scaleController.dispose(); _slideController.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.black, body: SafeArea( child: Center( child: Padding( padding: EdgeInsets.all(16.w), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ ScaleTransition( scale: _scaleAnimation, child: Text( "Traders Circuit", style: TextStyle( fontFamily: 'hiragino', fontSize: 48.sp, fontWeight: FontWeight.w600, color: Colors.white), ), // Image.asset( // 'assets/images/logo.png', // width: 200, // height: 200, // ), ), ], ), ), ), ), ); } }