Исправлено падение приложения из-за попытки сделать запрос к бд, после закрытия соединения с ней

This commit is contained in:
Ivan Murashov
2017-09-26 11:35:30 +03:00
parent 9f2bf14199
commit 7a1dc84fa1
5 changed files with 40 additions and 40 deletions

View File

@@ -28,10 +28,7 @@ class MenuItem {
class SettingsState extends BaseState<SettingsScreen> {
List<MenuItem> menuItems = [
new MenuItem('', ''),
new MenuItem('', '')
];
List<MenuItem> menuItems;
bool returnToScanner;
@@ -42,14 +39,22 @@ class SettingsState extends BaseState<SettingsScreen> {
}
@override Widget build(BuildContext ctx) {
helper.getSettings().then((info) {
setState(() {
menuItems[0].title = StringsLocalization.currency();
menuItems[1].title = StringsLocalization.locale();
menuItems[0].selectedValue = info['currency'].toString();
menuItems[1].selectedValue = info['locale'] == null ? Intl.defaultLocale : info['locale'].toString();
if (menuItems == null) {
menuItems = [
new MenuItem('', ''),
new MenuItem('', '')
];
helper.getSettings().then((info) {
setState(() {
menuItems[0].title = StringsLocalization.currency();
menuItems[1].title = StringsLocalization.locale();
menuItems[0].selectedValue = info['currency'].toString();
menuItems[1].selectedValue =
info['locale'] == null ? Intl.defaultLocale : info['locale']
.toString();
});
});
});
}
return new WillPopScope(onWillPop: onWillPop, child: getMainWidget());
}
@@ -72,11 +77,16 @@ class SettingsState extends BaseState<SettingsScreen> {
List<Widget> getSettings() {
List<Widget> widgets = new List();
for (int i = 0; i < menuItems.length; i++) {
if (menuItems[i].selectedValue != '') {
widgets.add(getSettingsItem(() => onPressed(menuItems.indexOf(menuItems[i])),
menuItems[i].title,
i == 0 ? getCurrencyTitle(int.parse(menuItems[i].selectedValue)) : getLocaleTitle(menuItems[i].selectedValue)));
if (menuItems != null) {
for (int i = 0; i < menuItems.length; i++) {
if (menuItems[i].selectedValue != '') {
widgets.add(
getSettingsItem(() => onPressed(menuItems.indexOf(menuItems[i])),
menuItems[i].title,
i == 0 ? getCurrencyTitle(
int.parse(menuItems[i].selectedValue)) : getLocaleTitle(
menuItems[i].selectedValue)));
}
}
}
return widgets;
@@ -105,8 +115,10 @@ class SettingsState extends BaseState<SettingsScreen> {
void onPressed(int position) {
switch (position) {
case 0 :
menuItems = null;
return pushRoute(context, new CurrenciesScreen(helper, app));
case 1 :
menuItems = null;
return pushRoute(context, new LanguagesScreen(helper, app));
}
}