import 'package:aitrainer_app/bloc/session/session_bloc.dart'; import 'package:aitrainer_app/bloc/settings/settings_bloc.dart'; import 'package:aitrainer_app/localization/app_language.dart'; import 'package:aitrainer_app/model/auth.dart'; import 'package:aitrainer_app/view/login.dart'; import 'package:aitrainer_app/view/menu_page.dart'; import 'package:aitrainer_app/view/registration.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'loading.dart'; class AitrainerHome extends StatefulWidget { _HomePageState _state; @override State createState() { _state = new _HomePageState(); return _state; } } class _HomePageState extends State { GlobalKey _scaffoldKey = new GlobalKey(); final AppLanguage appLanguage = AppLanguage(); @override void initState() { super.initState(); /// We require the initializers to run after the loading screen is rendered SchedulerBinding.instance.addPostFrameCallback((_) { runDelayedEvent(); }); } Future runDelayedEvent() async { await Future.delayed(Duration(seconds: 3), () async { if ( context != null) { // ignore: close_sinks SessionBloc sessionBloc = BlocProvider.of(context); if (sessionBloc.state != SessionReady()) { sessionBloc.add(SessionStart()); // ignore: close_sinks SettingsBloc settingsBloc = BlocProvider.of(context); settingsBloc.loadLang(); } } }); } @override Widget build(BuildContext context) { return Scaffold( key: _scaffoldKey, body: Container( child: BlocConsumer( listener: (context, state) { if ( state is SessionFailure) { } }, builder: (context, state) { if (state is SessionInitial) { return LoadingScreenMain(); } else if (state is SessionLoading) { print("loading"); return LoadingScreenMain(); } else if (state is SessionReady) { print("ready"); if (Auth().startPage == 'login') { return LoginPage(); } else if (Auth().startPage == 'registration') { return RegistrationPage(); } else { return MenuPage(parent: 0); } } else { print("else"); return MenuPage(parent: 0); } } ), ), //bottomNavigationBar: BottomNavigator(bottomNavIndex: 0), ); } }