// 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/Utils/base_manager.dart'; import 'package:traderscircuit/resources/routes/route_name.dart'; import 'package:traderscircuit/view/login/VerifyOtp.dart'; import 'package:traderscircuit/view_model/ProfileAPI/GetProfileApi.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(); isProfileUpdated = prefs.getInt('isProfileUpdated'); isriskProfileUpdated = prefs.getInt('isriskProfileUpdated'); isSecuredAccess = prefs.getInt('isSecuredAccess'); isSecuredAccess = prefs.getInt('isSecuredAccess'); isSecuredAccess = prefs.getInt('isSecuredAccess'); 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 { final response = await GetProfile().GetProfileAPI(); if (response.status == ResponseStatus.SUCCESS) { SharedPreferences prefs = await SharedPreferences.getInstance(); int? isProfileUpdated; int? isriskProfileUpdated; int? isSecuredAccess; // await prefs.setString( // 'accessToken', response.data["data"]["access-token"]); await prefs.setInt('isProfileUpdated', response.data['data']["profile_updated"]); await prefs.setInt('isriskProfileUpdated', response.data['data']["risk_profile_updated"]); await prefs.setInt('isSecuredAccess', response.data['data']["secured_access"]); isProfileUpdated = prefs.getInt('isProfileUpdated'); isriskProfileUpdated = prefs.getInt('isriskProfileUpdated'); isSecuredAccess = prefs.getInt('isSecuredAccess'); isProfileUpdated == 0 ? Get.toNamed(RouteName.adddetails) : // isKycUpdated == 0 // ? Get.toNamed(RouteName.kyc) // : isriskProfileUpdated == 0 ? Get.toNamed(RouteName.updateriskprofile, arguments: { "fromScreen": "login-flow", }) : Get.toNamed(RouteName.mainscreen); print('signup: ${prefs.getString('token')}'); // Get.toNamed(RouteName.adddetails); } else { Get.toNamed(RouteName.loginscreen); } // isProfileUpdated == 0 // ? Get.toNamed(RouteName.adddetails) // : // // isKycUpdated == 0 // // ? Get.toNamed(RouteName.kyc) // // : // isriskProfileUpdated == 0 // ? Get.toNamed(RouteName.updateriskprofile, arguments: { // "fromScreen": "login-flow", // }) // : Get.toNamed(RouteName.mainscreen); // // 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 { final response = await GetProfile().GetProfileAPI(); if (response.status == ResponseStatus.SUCCESS) { SharedPreferences prefs = await SharedPreferences.getInstance(); int? isProfileUpdated; int? isriskProfileUpdated; int? isSecuredAccess; // await prefs.setString( // 'accessToken', response.data["data"]["access-token"]); await prefs.setInt('isProfileUpdated', response.data['data']["profile_updated"]); await prefs.setInt('isriskProfileUpdated', response.data['data']["risk_profile_updated"]); await prefs.setInt( 'isSecuredAccess', response.data['data']["secured_access"]); isProfileUpdated = prefs.getInt('isProfileUpdated'); isriskProfileUpdated = prefs.getInt('isriskProfileUpdated'); isSecuredAccess = prefs.getInt('isSecuredAccess'); isProfileUpdated == 0 ? Get.toNamed(RouteName.adddetails) : // isKycUpdated == 0 // ? Get.toNamed(RouteName.kyc) // : isriskProfileUpdated == 0 ? Get.toNamed(RouteName.updateriskprofile, arguments: { "fromScreen": "login-flow", }) : Get.toNamed(RouteName.mainscreen); print('signup: ${prefs.getString('token')}'); // Get.toNamed(RouteName.adddetails); } else { Get.toNamed(RouteName.loginscreen); } // GetProfile().GetProfileAPI().then((value) { // Get.toNamed(RouteName.mainScreen, arguments: 0); // }); // bool? isUserExist; // int? isProfileUpdated; // int? isriskProfileUpdated; // int? isKycUpdated; // int? isSecuredAccess; // SharedPreferences prefs = await SharedPreferences.getInstance(); // isProfileUpdated = prefs.getInt('isProfileUpdated'); // isriskProfileUpdated = prefs.getInt('isriskProfileUpdated'); // isSecuredAccess = prefs.getInt('isSecuredAccess'); // isProfileUpdated == 0 // ? Get.toNamed(RouteName.adddetails) // : // // isKycUpdated == 0 // // ? Get.toNamed(RouteName.kyc) // // : // isriskProfileUpdated == 0 // ? Get.toNamed(RouteName.updateriskprofile, arguments: { // "fromScreen": "login-flow", // }) // : Get.toNamed(RouteName.mainscreen);c // // 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, // ), ), ], ), ), ), ), ); } }