175 lines
5.6 KiB
Dart
175 lines
5.6 KiB
Dart
// 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 'package:traderscircuit/view/login/VerifyOtp.dart';
|
|
|
|
import '../../Utils/Common/noInternet.dart';
|
|
|
|
bool OnBoard = false;
|
|
|
|
class SplashScreen extends StatefulWidget {
|
|
const SplashScreen({super.key});
|
|
|
|
@override
|
|
State<SplashScreen> createState() => _SplashScreenState();
|
|
}
|
|
|
|
class _SplashScreenState extends State<SplashScreen>
|
|
with TickerProviderStateMixin {
|
|
late AnimationController _scaleController;
|
|
late Animation<double> _scaleAnimation;
|
|
late AnimationController _slideController;
|
|
var _connectionStatus;
|
|
|
|
Future<void> 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);
|
|
// });
|
|
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 {
|
|
// 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<double>(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,
|
|
// ),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|