Переключение валют

This commit is contained in:
Ivan Murashov
2017-09-11 19:15:08 +03:00
parent bc092ca8f9
commit 9e4cbe200d
7 changed files with 56 additions and 18 deletions

View File

@@ -1,3 +1,4 @@
import 'package:checker/db.dart';
import 'package:checker/screens/currencies.dart';
import 'package:checker/screens/languages.dart';
import 'package:flutter/material.dart';
@@ -7,7 +8,13 @@ import 'package:checker/strings.dart';
import 'package:checker/base/base_state.dart';
class SettingsScreen extends StatefulWidget {
@override State createState() => new _SettingsState();
final SqliteHelper helper;
final String app;
SettingsScreen(this.helper, this.app);
@override State createState() => new SettingsState(helper, app);
}
class MenuItem {
@@ -18,22 +25,26 @@ class MenuItem {
MenuItem(this.title, this.selectedValue);
}
class _SettingsState extends BaseState<SettingsScreen> {
class SettingsState extends BaseState<SettingsScreen> {
List<MenuItem> menuItems;
@override onStart() {
if (menuItems == null) {
SettingsState(SqliteHelper helper, String app) {
this.helper = helper;
this.app = app;
}
@override Widget build(BuildContext ctx) {
helper.getSettings().then((info) {
setState(() {
print("load settings");
menuItems = [
new MenuItem(StringsLocalization.locale(), getLocaleTitle(info["locale"])),
// new MenuItem(StringsLocalization.locale(), getLocaleTitle(info["locale"])),
new MenuItem(StringsLocalization.currency(), getCurrencyTitle(info["currency"]))
];
});
});
}
return getMainWidget();
}
@override
@@ -41,8 +52,8 @@ class _SettingsState extends BaseState<SettingsScreen> {
return menuItems == null
? getBackground()
: new Container(
margin: new EdgeInsets.only(top: 16.0),
child: new ListView(children: getSettings()));
margin: new EdgeInsets.only(top: 16.0),
child: new ListView(children: getSettings()));
}
@override
@@ -71,8 +82,8 @@ class _SettingsState extends BaseState<SettingsScreen> {
void onPressed(int position) {
switch (position) {
case 0 : return pushRoute(context, new LanguagesScreen());
case 1 : return pushRoute(context, new CurrenciesScreen());
// case 0 : return pushRoute(context, new LanguagesScreen());
case 0 : return pushRoute(context, new CurrenciesScreen(helper, app));
}
}