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

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

@@ -2,7 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dinect.checker" package="com.dinect.checker"
android:versionCode="1" android:versionCode="1"
android:versionName="1.0.1"> android:versionName="1.0.2">
<uses-sdk <uses-sdk
android:minSdkVersion="16" android:minSdkVersion="16"

View File

@@ -99,7 +99,7 @@ abstract class BaseState<T extends StatefulWidget> extends State<T> {
void onOptionsItemClick(int index) { void onOptionsItemClick(int index) {
switch (index) { switch (index) {
case 0: { case 0: {
pushRoute(context, new SettingsScreen()); pushRoute(context, new SettingsScreen(helper, app));
break; break;
} }
case 1: { case 1: {

View File

@@ -1,10 +1,16 @@
import 'package:checker/base/base_state.dart'; import 'package:checker/base/base_state.dart';
import 'package:checker/consts.dart'; import 'package:checker/consts.dart';
import 'package:checker/db.dart';
import 'package:checker/strings.dart'; import 'package:checker/strings.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
abstract class SettingsBaseState<T extends StatefulWidget> extends BaseState<T> { abstract class SettingsBaseState<T extends StatefulWidget> extends BaseState<T> {
SettingsBaseState(SqliteHelper helper, String app) {
this.helper = helper;
this.app = app;
}
int selectedItem; int selectedItem;
@override @override

View File

@@ -1,16 +1,26 @@
import 'package:checker/base/settings_base_state.dart'; import 'package:checker/base/settings_base_state.dart';
import 'package:checker/db.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:checker/strings.dart'; import 'package:checker/strings.dart';
import 'package:checker/common.dart'; import 'package:checker/common.dart';
class CurrenciesScreen extends StatefulWidget { 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> { class _CurrenciesState extends SettingsBaseState<CurrenciesScreen> {
List<int> currencies = const [643, 840, 980]; List<int> currencies = const [643, 840, 980];
_CurrenciesState(SqliteHelper helper, String app) : super(helper, app);
@override @override
List<String> getOptions() { List<String> getOptions() {

View File

@@ -1,14 +1,23 @@
import 'package:checker/base/settings_base_state.dart'; import 'package:checker/base/settings_base_state.dart';
import 'package:checker/db.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:checker/consts.dart'; import 'package:checker/consts.dart';
import 'package:checker/strings.dart'; import 'package:checker/strings.dart';
import 'package:checker/common.dart'; import 'package:checker/common.dart';
class LanguagesScreen extends StatefulWidget { 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 @override
List<String> getOptions() { List<String> getOptions() {

View File

@@ -1,3 +1,4 @@
import 'package:checker/db.dart';
import 'package:checker/screens/currencies.dart'; import 'package:checker/screens/currencies.dart';
import 'package:checker/screens/languages.dart'; import 'package:checker/screens/languages.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -7,7 +8,13 @@ import 'package:checker/strings.dart';
import 'package:checker/base/base_state.dart'; import 'package:checker/base/base_state.dart';
class SettingsScreen extends StatefulWidget { 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 { class MenuItem {
@@ -18,22 +25,26 @@ class MenuItem {
MenuItem(this.title, this.selectedValue); MenuItem(this.title, this.selectedValue);
} }
class _SettingsState extends BaseState<SettingsScreen> { class SettingsState extends BaseState<SettingsScreen> {
List<MenuItem> menuItems; List<MenuItem> menuItems;
@override onStart() { SettingsState(SqliteHelper helper, String app) {
if (menuItems == null) { this.helper = helper;
this.app = app;
}
@override Widget build(BuildContext ctx) {
helper.getSettings().then((info) { helper.getSettings().then((info) {
setState(() { setState(() {
print("load settings"); print("load settings");
menuItems = [ menuItems = [
new MenuItem(StringsLocalization.locale(), getLocaleTitle(info["locale"])), // new MenuItem(StringsLocalization.locale(), getLocaleTitle(info["locale"])),
new MenuItem(StringsLocalization.currency(), getCurrencyTitle(info["currency"])) new MenuItem(StringsLocalization.currency(), getCurrencyTitle(info["currency"]))
]; ];
}); });
}); });
} return getMainWidget();
} }
@override @override
@@ -41,8 +52,8 @@ class _SettingsState extends BaseState<SettingsScreen> {
return menuItems == null return menuItems == null
? getBackground() ? getBackground()
: new Container( : new Container(
margin: new EdgeInsets.only(top: 16.0), margin: new EdgeInsets.only(top: 16.0),
child: new ListView(children: getSettings())); child: new ListView(children: getSettings()));
} }
@override @override
@@ -71,8 +82,8 @@ class _SettingsState extends BaseState<SettingsScreen> {
void onPressed(int position) { void onPressed(int position) {
switch (position) { switch (position) {
case 0 : return pushRoute(context, new LanguagesScreen()); // case 0 : return pushRoute(context, new LanguagesScreen());
case 1 : return pushRoute(context, new CurrenciesScreen()); case 0 : return pushRoute(context, new CurrenciesScreen(helper, app));
} }
} }

View File

@@ -28,9 +28,11 @@ class _SplashScreenState extends BaseState<SplashScreen> {
if (info == null) { if (info == null) {
platform.invokeMethod('getLocale').then((locale) { platform.invokeMethod('getLocale').then((locale) {
Intl.defaultLocale = locale; Intl.defaultLocale = locale;
platform.invokeMethod('getCurrency').then((currency) { StringsLocalization.load(locale).then((l) {
helper.createAppInfo(locale, currency).then((_) { platform.invokeMethod('getCurrency').then((currency) {
showNext(); helper.createAppInfo(locale, currency).then((_) {
showNext();
});
}); });
}); });
}); });