import 'package:aitrainer_app/bloc/menu/menu_bloc.dart'; import 'package:aitrainer_app/bloc/settings/settings_bloc.dart'; import 'package:aitrainer_app/localization/app_language.dart'; import 'package:aitrainer_app/localization/app_localization.dart'; import 'package:aitrainer_app/model/cache.dart'; import 'package:aitrainer_app/widgets/bottom_nav.dart'; import 'package:aitrainer_app/widgets/splash.dart'; import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; class SettingsPage extends StatelessWidget{ @override Widget build(BuildContext context) { // ignore: close_sinks SettingsBloc settingsBloc = BlocProvider.of(context); settingsBloc.setLocale(AppLanguage().appLocal); settingsBloc.context = context; MenuBloc menuBloc = BlocProvider.of(context); return Scaffold( appBar: AppBar( title: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text(AppLocalizations.of(context).translate('Settings')), Image.asset( 'asset/image/WT_long_logo.png', fit: BoxFit.cover, height: 65.0, ), ], ), //title: Text(AppLocalizations.of(context).translate('Settings')), backgroundColor: Colors.transparent, ), body: Container( decoration: BoxDecoration( image: DecorationImage( image: AssetImage('asset/image/WT_light_background.png'), fit: BoxFit.cover, alignment: Alignment.center, ), ), child: Form( child: BlocConsumer( listener: (context, state) { if ( state is SettingsError ) { } else if ( state is SettingsReady ) { menuBloc.add(MenuRecreateTree()); } }, // ignore: missing_return builder: (context, state) { if ( state is SettingsLoading ) { return LoadingDialog(); } else if ( state is SettingsInitial) { return settingsUI(context, settingsBloc, menuBloc); } else if ( state is SettingsReady ) { return settingsUI(context, settingsBloc, menuBloc); } else { return Container(); } } ), ), ), bottomNavigationBar: BottomNavigator(bottomNavIndex: 3) ); } ListView settingsUI(BuildContext context, SettingsBloc settingsBloc, MenuBloc menuBloc) { return ListView( padding: EdgeInsets.only(top: 150), children: [ ListTile( leading: Icon(Icons.language), subtitle: Text( AppLocalizations.of(context).translate( "Change App Language")), title: DropdownButton( value: settingsBloc.getLocale() == Locale('en') ? AppLocalizations.of(context).translate( "English") : AppLocalizations.of(context).translate( "Hungarian"), items: [AppLocalizations.of(context).translate( "English"), AppLocalizations.of(context) .translate("Hungarian") ] .map>((String value) { return DropdownMenuItem( value: value, child: Text(value), ); }).toList(), onChanged: (String lang) => { settingsBloc.add( SettingsChangeLanguage(language: lang) ), } ) ), ] ); } }