Переключение валют
This commit is contained in:
@@ -99,7 +99,7 @@ abstract class BaseState<T extends StatefulWidget> extends State<T> {
|
||||
void onOptionsItemClick(int index) {
|
||||
switch (index) {
|
||||
case 0: {
|
||||
pushRoute(context, new SettingsScreen());
|
||||
pushRoute(context, new SettingsScreen(helper, app));
|
||||
break;
|
||||
}
|
||||
case 1: {
|
||||
|
||||
@@ -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<T extends StatefulWidget> extends BaseState<T> {
|
||||
|
||||
SettingsBaseState(SqliteHelper helper, String app) {
|
||||
this.helper = helper;
|
||||
this.app = app;
|
||||
}
|
||||
|
||||
int selectedItem;
|
||||
|
||||
@override
|
||||
|
||||
@@ -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() {
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user