import 'package:didvan/config/design_config.dart'; import 'package:didvan/main.dart'; import 'package:didvan/providers/theme_provider.dart'; import 'package:didvan/providers/user_provider.dart'; import 'package:didvan/routes/routes.dart'; import 'package:didvan/services/app_initalizer.dart'; import 'package:didvan/services/network/request.dart'; import 'package:didvan/utils/actions_sheet.dart'; import 'package:didvan/widgets/logos/didvan_horizontal_logo.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; class Splash extends StatefulWidget { const Splash({Key? key}) : super(key: key); @override _SplashState createState() => _SplashState(); } class _SplashState extends State { bool _isGettingThemeData = true; @override void initState() { _initialize(); super.initState(); } Future _initialize() async { ActionSheetUtils.context = navigatorKey.currentContext!; await AppInitializer.setupServices(); final ThemeMode themeMode = await AppInitializer.initilizeSettings(); context.read().themeMode = themeMode; await Future.delayed( const Duration(milliseconds: 200), () => setState(() { _isGettingThemeData = false; }), ); final String? token = await context.read().setAndGetToken(); if (token != null) { RequestService.token = token; } await Future.delayed(const Duration(seconds: 2)); Navigator.of(context).pushReplacementNamed( token == null ? Routes.authenticaion : Routes.home, ); } @override Widget build(BuildContext context) { if (_isGettingThemeData) { return Container( color: Colors.black, height: double.infinity, width: double.infinity, ); } return AnnotatedRegion( value: DesignConfig.systemUiOverlayStyle.copyWith( systemNavigationBarColor: Theme.of(context).colorScheme.background, ), child: Scaffold( body: Container( alignment: Alignment.center, padding: const EdgeInsets.all(60), color: Theme.of(context).colorScheme.background, child: const DidvanVerticalLogo(), ), ), ); } }