diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index cda80be..c3da8b2 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -2,7 +2,7 @@ + android:versionName="1.0.2"> extends State { void onOptionsItemClick(int index) { switch (index) { case 0: { - pushRoute(context, new SettingsScreen()); + pushRoute(context, new SettingsScreen(helper, app)); break; } case 1: { diff --git a/lib/base/settings_base_state.dart b/lib/base/settings_base_state.dart index bb857e2..b4c87c7 100644 --- a/lib/base/settings_base_state.dart +++ b/lib/base/settings_base_state.dart @@ -1,10 +1,16 @@ import 'package:checker/base/base_state.dart'; import 'package:checker/consts.dart'; +import 'package:checker/db.dart'; import 'package:checker/strings.dart'; import 'package:flutter/material.dart'; abstract class SettingsBaseState extends BaseState { + SettingsBaseState(SqliteHelper helper, String app) { + this.helper = helper; + this.app = app; + } + int selectedItem; @override diff --git a/lib/screens/currencies.dart b/lib/screens/currencies.dart index 737a54f..18dcbe7 100644 --- a/lib/screens/currencies.dart +++ b/lib/screens/currencies.dart @@ -1,16 +1,26 @@ import 'package:checker/base/settings_base_state.dart'; +import 'package:checker/db.dart'; import 'package:flutter/material.dart'; import 'package:checker/strings.dart'; import 'package:checker/common.dart'; class CurrenciesScreen extends StatefulWidget { - @override State createState() => new _CurrenciesState(); + + final SqliteHelper helper; + final String app; + + CurrenciesScreen(this.helper, this.app); + + @override State createState() => new _CurrenciesState(helper, app); } class _CurrenciesState extends SettingsBaseState { List currencies = const [643, 840, 980]; + _CurrenciesState(SqliteHelper helper, String app) : super(helper, app); + + @override List getOptions() { diff --git a/lib/screens/languages.dart b/lib/screens/languages.dart index 94eb3b4..ea0dadc 100644 --- a/lib/screens/languages.dart +++ b/lib/screens/languages.dart @@ -1,14 +1,23 @@ import 'package:checker/base/settings_base_state.dart'; +import 'package:checker/db.dart'; import 'package:flutter/material.dart'; import 'package:checker/consts.dart'; import 'package:checker/strings.dart'; import 'package:checker/common.dart'; class LanguagesScreen extends StatefulWidget { - @override State createState() => new _LanguagesState(); + + final SqliteHelper helper; + final String app; + + LanguagesScreen(this.helper, this.app); + @override State createState() => new LanguagesState(helper, app); } -class _LanguagesState extends SettingsBaseState { +class LanguagesState extends SettingsBaseState { + + LanguagesState(SqliteHelper helper, String app) : super(helper, app); + @override List getOptions() { diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index 7b39ebb..2aef273 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -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 { +class SettingsState extends BaseState { List 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 { 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 { 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)); } } diff --git a/lib/screens/splash.dart b/lib/screens/splash.dart index d116cdd..704eb6a 100644 --- a/lib/screens/splash.dart +++ b/lib/screens/splash.dart @@ -28,9 +28,11 @@ class _SplashScreenState extends BaseState { if (info == null) { platform.invokeMethod('getLocale').then((locale) { Intl.defaultLocale = locale; - platform.invokeMethod('getCurrency').then((currency) { - helper.createAppInfo(locale, currency).then((_) { - showNext(); + StringsLocalization.load(locale).then((l) { + platform.invokeMethod('getCurrency').then((currency) { + helper.createAppInfo(locale, currency).then((_) { + showNext(); + }); }); }); });