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

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,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<CurrenciesScreen> {
List<int> currencies = const [643, 840, 980];
_CurrenciesState(SqliteHelper helper, String app) : super(helper, app);
@override
List<String> getOptions() {

View File

@@ -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<LanguagesScreen> {
class LanguagesState extends SettingsBaseState<LanguagesScreen> {
LanguagesState(SqliteHelper helper, String app) : super(helper, app);
@override
List<String> getOptions() {

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

View File

@@ -28,9 +28,11 @@ class _SplashScreenState extends BaseState<SplashScreen> {
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();
});
});
});
});