84 lines
2.2 KiB
Dart
84 lines
2.2 KiB
Dart
import 'package:checker/screens/currencies.dart';
|
|
import 'package:checker/screens/languages.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:checker/common.dart';
|
|
import 'package:checker/consts.dart';
|
|
import 'package:checker/strings.dart';
|
|
import 'package:checker/base/base_state.dart';
|
|
|
|
class SettingsScreen extends StatefulWidget {
|
|
@override State createState() => new _SettingsState();
|
|
}
|
|
|
|
class MenuItem {
|
|
|
|
// Заголовок пункта меню и выбранное значение.
|
|
String title, selectedValue;
|
|
|
|
MenuItem(this.title, this.selectedValue);
|
|
}
|
|
|
|
class _SettingsState extends BaseState<SettingsScreen> {
|
|
|
|
List<MenuItem> menuItems;
|
|
|
|
@override onStart() {
|
|
if (menuItems == null) {
|
|
helper.getSettings().then((info) {
|
|
setState(() {
|
|
print("load settings");
|
|
menuItems = [
|
|
new MenuItem(StringsLocalization.locale(), getLocaleTitle(info["locale"])),
|
|
new MenuItem(StringsLocalization.currency(), getCurrencyTitle(info["currency"]))
|
|
];
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
@override
|
|
Widget getScreenContent() {
|
|
return menuItems == null
|
|
? getBackground()
|
|
: new ListView(children: getSettings());
|
|
}
|
|
|
|
@override
|
|
List<Widget> getMenuButtons() {
|
|
return null;
|
|
}
|
|
|
|
List<Widget> getSettings() {
|
|
List<Widget> widgets = new List();
|
|
for (MenuItem item in menuItems) {
|
|
widgets.add(getSettingsItem(item));
|
|
}
|
|
return widgets;
|
|
}
|
|
|
|
Widget getSettingsItem(MenuItem item) {
|
|
return new Container(
|
|
height: 56.0,
|
|
child: (new FlatButton(onPressed: () => onPressed(menuItems.indexOf(item)),
|
|
child: new Row(children: <Widget>[
|
|
new Expanded(child: new Container(child: new Text(item.title))),
|
|
new Text(item.selectedValue),
|
|
getArrow()]))));
|
|
}
|
|
|
|
void onPressed(int position) {
|
|
switch (position) {
|
|
case 0 : return pushRoute(context, new LanguagesScreen());
|
|
case 1 : return pushRoute(context, new CurrenciesScreen());
|
|
}
|
|
}
|
|
|
|
Widget getArrow() {
|
|
return new Image.asset(settings_arrow_png);
|
|
}
|
|
|
|
@override
|
|
String getTitle() {
|
|
return StringsLocalization.settings();
|
|
}
|
|
} |