100 lines
3.8 KiB
Dart
100 lines
3.8 KiB
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/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<SettingsBloc>(context);
|
|
settingsBloc.context = context;
|
|
return Scaffold(
|
|
appBar: AppBar(
|
|
title: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: <Widget>[
|
|
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<SettingsBloc, SettingsState>(
|
|
listener: (context, state) {
|
|
if ( state is SettingsError ) {
|
|
|
|
}
|
|
},
|
|
// ignore: missing_return
|
|
builder: (context, state) {
|
|
if ( state is SettingsLoading ) {
|
|
return LoadingDialog();
|
|
} else if ( state is SettingsReady || state is SettingsInitial) {
|
|
return ListView(
|
|
padding: EdgeInsets.only(top: 150),
|
|
children: <Widget>[
|
|
ListTile(
|
|
leading: Icon(Icons.language),
|
|
subtitle: Text(
|
|
AppLocalizations.of(context).translate(
|
|
"Change App Language")),
|
|
title: DropdownButton(
|
|
|
|
value: state.props[0] == Locale('en')
|
|
? AppLocalizations.of(context).translate(
|
|
"English")
|
|
: AppLocalizations.of(context).translate(
|
|
"Hungarian"),
|
|
items: [AppLocalizations.of(context).translate(
|
|
"English"), AppLocalizations.of(context)
|
|
.translate("Hungarian")
|
|
]
|
|
.map<DropdownMenuItem<String>>((String value) {
|
|
return DropdownMenuItem<String>(
|
|
value: value,
|
|
child: Text(value),
|
|
);
|
|
}).toList(),
|
|
onChanged: (String lang) =>
|
|
settingsBloc.add(
|
|
SettingsChangeLanguage(language: lang)
|
|
),
|
|
)
|
|
|
|
),
|
|
]
|
|
);
|
|
} else {
|
|
return Container();
|
|
}
|
|
}
|
|
),
|
|
),
|
|
),
|
|
bottomNavigationBar: BottomNavigator(bottomNavIndex: 3)
|
|
|
|
);
|
|
}
|
|
} |