Экран переключения валюты открывается с первого раза, соединение с базой данных не открывается на тех экранах, на которых это не требуется
This commit is contained in:
@@ -1,18 +1,15 @@
|
||||
import 'package:checker/db.dart';
|
||||
import 'package:checker/screens/currencies.dart';
|
||||
import 'package:checker/screens/languages.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:checker/base/base_screen.dart';
|
||||
import 'package:checker/base/base_state.dart';
|
||||
import 'package:checker/common.dart';
|
||||
import 'package:checker/consts.dart';
|
||||
import 'package:checker/db.dart';
|
||||
import 'package:checker/screens/currencies.dart';
|
||||
import 'package:checker/strings.dart';
|
||||
import 'package:checker/base/base_state.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SettingsScreen extends StatefulWidget {
|
||||
class SettingsScreen extends BaseScreen {
|
||||
|
||||
final SqliteHelper helper;
|
||||
final String app;
|
||||
|
||||
SettingsScreen(this.helper, this.app);
|
||||
SettingsScreen(helper, app) : super(helper, app);
|
||||
|
||||
@override State createState() => new SettingsState(helper, app);
|
||||
}
|
||||
@@ -27,7 +24,7 @@ class MenuItem {
|
||||
|
||||
class SettingsState extends BaseState<SettingsScreen> {
|
||||
|
||||
List<MenuItem> menuItems;
|
||||
List<MenuItem> menuItems = [new MenuItem(StringsLocalization.currency(), '')];
|
||||
|
||||
SettingsState(SqliteHelper helper, String app) {
|
||||
this.helper = helper;
|
||||
@@ -35,15 +32,15 @@ class SettingsState extends BaseState<SettingsScreen> {
|
||||
}
|
||||
|
||||
@override Widget build(BuildContext ctx) {
|
||||
helper.getSettings().then((info) {
|
||||
setState(() {
|
||||
print("load settings");
|
||||
menuItems = [
|
||||
// new MenuItem(StringsLocalization.locale(), getLocaleTitle(info["locale"])),
|
||||
new MenuItem(StringsLocalization.currency(), getCurrencyTitle(info["currency"]))
|
||||
];
|
||||
});
|
||||
});
|
||||
helper.getSettings().then((info) {
|
||||
if (menuItems != null) {
|
||||
if (menuItems[0].selectedValue != info['currency'].toString()) {
|
||||
setState(() {
|
||||
menuItems[0].selectedValue = info['currency'].toString();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
return getMainWidget();
|
||||
}
|
||||
|
||||
@@ -73,16 +70,21 @@ class SettingsState extends BaseState<SettingsScreen> {
|
||||
return new Container(
|
||||
height: 56.0,
|
||||
padding: new EdgeInsets.only(left: 8.0),
|
||||
child: (new FlatButton(onPressed: () => onPressed(menuItems.indexOf(item)),
|
||||
child: (new FlatButton(
|
||||
onPressed: () => onPressed(menuItems.indexOf(item)),
|
||||
child: new Row(children: <Widget>[
|
||||
new Expanded(child: new Text(item.title, style: new TextStyle(fontWeight: FontWeight.w600, color: faqGrey, fontSize: 14.0))),
|
||||
new Text(item.selectedValue, style: new TextStyle(fontWeight: FontWeight.w400, color: faqGrey, fontSize: 14.0)),
|
||||
getArrow()]))));
|
||||
new Expanded(child: new Text(item.title, style: new TextStyle(
|
||||
fontWeight: FontWeight.w600,
|
||||
color: faqGrey,
|
||||
fontSize: 14.0))),
|
||||
new Text(getCurrencyTitle(int.parse(item.selectedValue)), style: new TextStyle(
|
||||
fontWeight: FontWeight.w400, color: faqGrey, fontSize: 14.0)),
|
||||
getArrow()
|
||||
]))));
|
||||
}
|
||||
|
||||
void onPressed(int position) {
|
||||
switch (position) {
|
||||
// case 0 : return pushRoute(context, new LanguagesScreen());
|
||||
case 0 : return pushRoute(context, new CurrenciesScreen(helper, app));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user