workouttest_app/lib/view/settings.dart
2020-08-17 12:38:47 +02:00

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)
);
}
}