Экраны настроек
This commit is contained in:
@@ -42,42 +42,14 @@ android {
|
||||
|
||||
productFlavors {
|
||||
|
||||
autobonus_en {
|
||||
applicationId 'com.dinect.autobonus'
|
||||
buildConfigField "String", "locale", "\"en\""
|
||||
buildConfigField "String", "flavor", "\"autobonus\""
|
||||
buildConfigField "int", "currency", "643"
|
||||
}
|
||||
|
||||
autobonus_ru {
|
||||
autobonus {
|
||||
applicationId 'com.dinect.autobonus'
|
||||
buildConfigField "String", "locale", "\"ru\""
|
||||
buildConfigField "String", "flavor", "\"autobonus\""
|
||||
buildConfigField "int", "currency", "643"
|
||||
}
|
||||
|
||||
autobonus_ua {
|
||||
applicationId 'com.dinect.autobonus'
|
||||
buildConfigField "String", "locale", "\"ua\""
|
||||
buildConfigField "String", "flavor", "\"autobonus\""
|
||||
buildConfigField "int", "currency", "643"
|
||||
}
|
||||
|
||||
pip_en {
|
||||
applicationId 'com.dinect.pip'
|
||||
buildConfigField "String", "locale", "\"en\""
|
||||
buildConfigField "String", "flavor", "\"pip\""
|
||||
buildConfigField "int", "currency", "980"
|
||||
}
|
||||
|
||||
pip_ru {
|
||||
applicationId 'com.dinect.pip'
|
||||
buildConfigField "String", "locale", "\"ru\""
|
||||
buildConfigField "String", "flavor", "\"pip\""
|
||||
buildConfigField "int", "currency", "980"
|
||||
}
|
||||
|
||||
pip_ua {
|
||||
pip {
|
||||
applicationId 'com.dinect.pip'
|
||||
buildConfigField "String", "locale", "\"ua\""
|
||||
buildConfigField "String", "flavor", "\"pip\""
|
||||
@@ -90,20 +62,11 @@ android {
|
||||
|
||||
main.jniLibs.srcDir 'jniLibs'
|
||||
|
||||
pip_ua {
|
||||
pip {
|
||||
res.srcDirs = ['src/pip/res']
|
||||
manifest.srcFile 'src/pip/AndroidManifest.xml'
|
||||
}
|
||||
|
||||
pip_ru {
|
||||
res.srcDirs = ['src/pip/res']
|
||||
manifest.srcFile 'src/pip/AndroidManifest.xml'
|
||||
}
|
||||
|
||||
pip_en {
|
||||
res.srcDirs = ['src/pip/res']
|
||||
manifest.srcFile 'src/pip/AndroidManifest.xml'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BIN
assets/check.png
Normal file
BIN
assets/check.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
46
lib/base/settings_base_state.dart
Normal file
46
lib/base/settings_base_state.dart
Normal file
@@ -0,0 +1,46 @@
|
||||
import 'package:checker/base/base_state.dart';
|
||||
import 'package:checker/consts.dart';
|
||||
import 'package:checker/strings.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
abstract class SettingsBaseState<T extends StatefulWidget> extends BaseState<T> {
|
||||
|
||||
@override
|
||||
Widget getScreenContent() {
|
||||
|
||||
List<Widget> widgets = new List();
|
||||
|
||||
for (String option in getOptions()) {
|
||||
widgets.add(getItem(option));
|
||||
}
|
||||
|
||||
return new ListView(children: widgets);
|
||||
}
|
||||
|
||||
List<String> getOptions();
|
||||
|
||||
@override
|
||||
List<Widget> getMenuButtons() {
|
||||
return null;
|
||||
}
|
||||
|
||||
Widget getItem(String option) {
|
||||
return new Container(
|
||||
height: 56.0,
|
||||
child: (new FlatButton(onPressed: null,
|
||||
child: new Row(children: <Widget>[
|
||||
new Expanded(child: new Text(option)),
|
||||
getCheckMark()]))));
|
||||
}
|
||||
|
||||
Widget getCheckMark() {
|
||||
return new Image.asset(check_png,
|
||||
width: 28.0,
|
||||
height: 28.0);
|
||||
}
|
||||
|
||||
@override
|
||||
String getTitle() {
|
||||
return StringsLocalization.settings();
|
||||
}
|
||||
}
|
||||
@@ -137,8 +137,8 @@ getCurrencyTitle(int code) {
|
||||
|
||||
getLocaleTitle(String code) {
|
||||
switch(code) {
|
||||
case 'ru': return StringsLocalization.russian();
|
||||
case 'en': return StringsLocalization.english();
|
||||
case 'ua': return StringsLocalization.ukrainian();
|
||||
case 'ru': return languages[0];
|
||||
case 'en': return languages[1];
|
||||
case 'ua': return languages[2];
|
||||
}
|
||||
}
|
||||
@@ -11,15 +11,12 @@ const String logout_png = 'assets/logout.png';
|
||||
const String help_png = 'assets/help.png';
|
||||
const String settings_png = 'assets/settings.png';
|
||||
const String settings_arrow_png = 'assets/settings_arrow.png';
|
||||
|
||||
const String check_png = 'assets/check.png';
|
||||
const String activate_token_bg_png = 'assets/activate_token_message_background.png';
|
||||
const String active_token_bg_png = 'assets/active_token_message_background.png';
|
||||
|
||||
const String expansion_icon_png = 'assets/faq_expansion_icon.png';
|
||||
|
||||
const String powered_by_dinect_splash_png = 'assets/powered_by_dinect_splash.png';
|
||||
const String powered_by_dinect_png = 'assets/powered_by_dinect.png';
|
||||
|
||||
const String splash_text_png = 'assets/splash_text.png';
|
||||
|
||||
const Color greyTextColor = const Color(0xffa5a5a5);
|
||||
@@ -35,3 +32,10 @@ const Color inputFieldBackground = const Color(0xffefefef);
|
||||
const double verticalMargin = 28.0;
|
||||
const double buttonHeight = 48.0;
|
||||
const double iconHeight = 20.0;
|
||||
|
||||
List<String> languages = const [
|
||||
'Русский',
|
||||
'English',
|
||||
'Український',
|
||||
'Español'
|
||||
];
|
||||
@@ -40,13 +40,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"user_name" : MessageLookupByLibrary.simpleMessage("User name"),
|
||||
"yes" : MessageLookupByLibrary.simpleMessage("Yes"),
|
||||
"settings" : MessageLookupByLibrary.simpleMessage("Settings"),
|
||||
"help " : MessageLookupByLibrary.simpleMessage("FAQ"),
|
||||
"logout" : MessageLookupByLibrary.simpleMessage("Logout"),
|
||||
"help" : MessageLookupByLibrary.simpleMessage("Help"),
|
||||
"logout" : MessageLookupByLibrary.simpleMessage("Exit"),
|
||||
"currency" : MessageLookupByLibrary.simpleMessage("Currency"),
|
||||
"locale" : MessageLookupByLibrary.simpleMessage("Locale"),
|
||||
"russian" : MessageLookupByLibrary.simpleMessage("Russian"),
|
||||
"english" : MessageLookupByLibrary.simpleMessage("English"),
|
||||
"ukrainian" : MessageLookupByLibrary.simpleMessage("Ukrainian"),
|
||||
"locale" : MessageLookupByLibrary.simpleMessage("Language"),
|
||||
"rubles" : MessageLookupByLibrary.simpleMessage("Ruble"),
|
||||
"dollars" : MessageLookupByLibrary.simpleMessage("Dollar"),
|
||||
"hryvna" : MessageLookupByLibrary.simpleMessage("Hryvna")
|
||||
|
||||
@@ -39,12 +39,11 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"update_activ_status" : MessageLookupByLibrary.simpleMessage("Actualizar la condición de activación"),
|
||||
"user_name" : MessageLookupByLibrary.simpleMessage("Un nombre de usario"),
|
||||
"yes" : MessageLookupByLibrary.simpleMessage("Si"),
|
||||
"logout" : MessageLookupByLibrary.simpleMessage("Logout"),
|
||||
"currency" : MessageLookupByLibrary.simpleMessage("Currency"),
|
||||
"locale" : MessageLookupByLibrary.simpleMessage("Locale"),
|
||||
"russian" : MessageLookupByLibrary.simpleMessage("Russian"),
|
||||
"english" : MessageLookupByLibrary.simpleMessage("English"),
|
||||
"ukrainian" : MessageLookupByLibrary.simpleMessage("Ukrainian"),
|
||||
"settings" : MessageLookupByLibrary.simpleMessage("Las configuraciones"),
|
||||
"help" : MessageLookupByLibrary.simpleMessage("La Ayuda"),
|
||||
"logout" : MessageLookupByLibrary.simpleMessage("Salir"),
|
||||
"currency" : MessageLookupByLibrary.simpleMessage("La Moneda"),
|
||||
"locale" : MessageLookupByLibrary.simpleMessage("La lengua"),
|
||||
"rubles" : MessageLookupByLibrary.simpleMessage("Ruble"),
|
||||
"dollars" : MessageLookupByLibrary.simpleMessage("Dollar"),
|
||||
"hryvna" : MessageLookupByLibrary.simpleMessage("Hryvna")
|
||||
|
||||
@@ -40,13 +40,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"user_name" : MessageLookupByLibrary.simpleMessage("ФИО"),
|
||||
"yes" : MessageLookupByLibrary.simpleMessage("Да"),
|
||||
"settings" : MessageLookupByLibrary.simpleMessage("Настройки"),
|
||||
"help " : MessageLookupByLibrary.simpleMessage("Справка"),
|
||||
"help" : MessageLookupByLibrary.simpleMessage("Справка"),
|
||||
"logout" : MessageLookupByLibrary.simpleMessage("Выход"),
|
||||
"currency" : MessageLookupByLibrary.simpleMessage("Валюта"),
|
||||
"locale" : MessageLookupByLibrary.simpleMessage("Язык"),
|
||||
"russian" : MessageLookupByLibrary.simpleMessage("Русский"),
|
||||
"english" : MessageLookupByLibrary.simpleMessage("Английский"),
|
||||
"ukrainian" : MessageLookupByLibrary.simpleMessage("Украинский"),
|
||||
"rubles" : MessageLookupByLibrary.simpleMessage("Рубль"),
|
||||
"dollars" : MessageLookupByLibrary.simpleMessage("Доллар"),
|
||||
"hryvna" : MessageLookupByLibrary.simpleMessage("Гривна")
|
||||
|
||||
@@ -39,12 +39,11 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"update_activ_status" : MessageLookupByLibrary.simpleMessage("Оновити статус активації"),
|
||||
"user_name" : MessageLookupByLibrary.simpleMessage("ПІБ"),
|
||||
"yes" : MessageLookupByLibrary.simpleMessage("Так"),
|
||||
"logout" : MessageLookupByLibrary.simpleMessage("Logout"),
|
||||
"currency" : MessageLookupByLibrary.simpleMessage("Currency"),
|
||||
"locale" : MessageLookupByLibrary.simpleMessage("Locale"),
|
||||
"russian" : MessageLookupByLibrary.simpleMessage("Russian"),
|
||||
"english" : MessageLookupByLibrary.simpleMessage("English"),
|
||||
"ukrainian" : MessageLookupByLibrary.simpleMessage("Ukrainian"),
|
||||
"help" : MessageLookupByLibrary.simpleMessage("Допомога"),
|
||||
"settings" : MessageLookupByLibrary.simpleMessage("Налаштування"),
|
||||
"logout" : MessageLookupByLibrary.simpleMessage("Вихід"),
|
||||
"currency" : MessageLookupByLibrary.simpleMessage("Валюта"),
|
||||
"locale" : MessageLookupByLibrary.simpleMessage("Мова"),
|
||||
"rubles" : MessageLookupByLibrary.simpleMessage("Ruble"),
|
||||
"dollars" : MessageLookupByLibrary.simpleMessage("Dollar"),
|
||||
"hryvna" : MessageLookupByLibrary.simpleMessage("Hryvna")
|
||||
|
||||
27
lib/screens/currencies.dart
Normal file
27
lib/screens/currencies.dart
Normal file
@@ -0,0 +1,27 @@
|
||||
import 'package:checker/base/settings_base_state.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:checker/consts.dart';
|
||||
import 'package:checker/strings.dart';
|
||||
import 'package:checker/base/base_state.dart';
|
||||
|
||||
class CurrenciesScreen extends StatefulWidget {
|
||||
@override State createState() => new _CurrenciesState();
|
||||
}
|
||||
|
||||
class _CurrenciesState extends SettingsBaseState<CurrenciesScreen> {
|
||||
|
||||
@override
|
||||
List<String> getOptions() {
|
||||
|
||||
String ruble = StringsLocalization.ruble();
|
||||
String dollar = StringsLocalization.dollar();
|
||||
String hryvna = StringsLocalization.hryvna();
|
||||
|
||||
return [ruble, dollar, hryvna];
|
||||
}
|
||||
|
||||
@override
|
||||
String getTitle() {
|
||||
return StringsLocalization.settings();
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:checker/base_state.dart';
|
||||
import 'package:checker/base/base_state.dart';
|
||||
import 'package:checker/consts.dart';
|
||||
import 'package:checker/common.dart';
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'dart:convert'; // Пакет для обработки json с отве
|
||||
import 'package:checker/common.dart';
|
||||
import 'package:checker/consts.dart';
|
||||
import 'package:checker/network.dart';
|
||||
import 'package:checker/base_state.dart';
|
||||
import 'package:checker/base/base_state.dart';
|
||||
import 'package:checker/strings.dart';
|
||||
|
||||
class FinishRegistrationScreen extends StatefulWidget {
|
||||
|
||||
21
lib/screens/languages.dart
Normal file
21
lib/screens/languages.dart
Normal file
@@ -0,0 +1,21 @@
|
||||
import 'package:checker/base/settings_base_state.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:checker/consts.dart';
|
||||
import 'package:checker/strings.dart';
|
||||
|
||||
class LanguagesScreen extends StatefulWidget {
|
||||
@override State createState() => new _LanguagesState();
|
||||
}
|
||||
|
||||
class _LanguagesState extends SettingsBaseState<LanguagesScreen> {
|
||||
|
||||
@override
|
||||
List<String> getOptions() {
|
||||
return languages;
|
||||
}
|
||||
|
||||
@override
|
||||
String getTitle() {
|
||||
return StringsLocalization.locale();
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@ import 'package:checker/strings.dart';
|
||||
import 'package:checker/common.dart';
|
||||
import 'package:checker/consts.dart';
|
||||
import 'package:checker/network.dart';
|
||||
import 'package:checker/base_state.dart';
|
||||
import 'package:checker/base/base_state.dart';
|
||||
import 'package:checker/screens/purchase_success.dart';
|
||||
|
||||
/// Экран проведения покупки.
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:checker/common.dart';
|
||||
import 'package:checker/consts.dart';
|
||||
import 'package:checker/strings.dart';
|
||||
import 'package:checker/base_state.dart';
|
||||
import 'package:checker/base/base_state.dart';
|
||||
|
||||
/// Экран проведения покупки.
|
||||
class PurchaseSuccessScreen extends StatefulWidget {
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'dart:convert'; // Пакет для обработки json с отве
|
||||
import 'package:checker/common.dart';
|
||||
import 'package:checker/consts.dart';
|
||||
import 'package:checker/network.dart';
|
||||
import 'package:checker/base_state.dart';
|
||||
import 'package:checker/base/base_state.dart';
|
||||
import 'package:checker/strings.dart';
|
||||
|
||||
/// Экран регистрации магазина и кассы.
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
import 'package:checker/screens/currencies.dart';
|
||||
import 'package:checker/screens/languages.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:http/http.dart';
|
||||
import 'dart:convert';
|
||||
import 'dart:async';
|
||||
import 'package:checker/common.dart';
|
||||
import 'package:checker/network.dart';
|
||||
import 'package:checker/consts.dart';
|
||||
import 'package:checker/db.dart';
|
||||
import 'package:checker/strings.dart';
|
||||
import 'package:checker/base_state.dart';
|
||||
import 'package:checker/screens/registration.dart';
|
||||
import 'package:checker/screens/finish_registration.dart';
|
||||
import 'package:checker/base/base_state.dart';
|
||||
|
||||
class SettingsScreen extends StatefulWidget {
|
||||
@override State createState() => new _SettingsState();
|
||||
@@ -63,18 +58,23 @@ class _SettingsState extends BaseState<SettingsScreen> {
|
||||
|
||||
Widget getSettingsItem(MenuItem item) {
|
||||
return new Container(
|
||||
margin: const EdgeInsets.all(16.0),
|
||||
child: new Row(children: <Widget>[
|
||||
new Expanded(child: new Text(item.title)),
|
||||
new Text(item.selectedValue),
|
||||
getArrow()])
|
||||
);
|
||||
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,
|
||||
width: 28.0,
|
||||
height: 28.0);
|
||||
return new Image.asset(settings_arrow_png);
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:checker/network.dart';
|
||||
import 'package:checker/consts.dart';
|
||||
import 'package:checker/resources.dart';
|
||||
import 'package:checker/db.dart';
|
||||
import 'package:checker/base_state.dart';
|
||||
import 'package:checker/base/base_state.dart';
|
||||
import 'package:checker/screens/registration.dart';
|
||||
import 'package:checker/screens/finish_registration.dart';
|
||||
|
||||
@@ -27,6 +27,7 @@ class _SplashScreenState extends BaseState<SplashScreen> {
|
||||
helper.getSettings().then((info) {
|
||||
if (info == null) {
|
||||
platform.invokeMethod('getLocale').then((locale) {
|
||||
Intl.defaultLocale = locale;
|
||||
platform.invokeMethod('getCurrency').then((currency) {
|
||||
helper.createAppInfo(locale, currency).then((_) {
|
||||
showNext();
|
||||
|
||||
@@ -40,16 +40,11 @@ class StringsLocalization {
|
||||
static String buyer() => Intl.message('buyer', name: 'buyer', locale: Intl.defaultLocale);
|
||||
static String idNotFound() => Intl.message('ID_not_found', name: 'ID_not_found', locale: Intl.defaultLocale);
|
||||
static String settings() => Intl.message('settings', name: 'settings', locale: Intl.defaultLocale);
|
||||
static String help() => Intl.message('help ', name: 'help ', locale: Intl.defaultLocale);
|
||||
static String help() => Intl.message('help', name: 'help', locale: Intl.defaultLocale);
|
||||
static String logout() => Intl.message('logout', name: 'logout', locale: Intl.defaultLocale);
|
||||
static String currency() => Intl.message('currency', name: 'currency', locale: Intl.defaultLocale);
|
||||
static String locale() => Intl.message('locale', name: 'locale', locale: Intl.defaultLocale);
|
||||
|
||||
// Языки
|
||||
static String russian() => Intl.message('russian', name: 'russian', locale: Intl.defaultLocale);
|
||||
static String english() => Intl.message('english', name: 'english', locale: Intl.defaultLocale);
|
||||
static String ukrainian() => Intl.message('ukrainian', name: 'ukrainian', locale: Intl.defaultLocale);
|
||||
|
||||
// Валюты
|
||||
static String ruble() => Intl.message('rubles', name: 'rubles', locale: Intl.defaultLocale);
|
||||
static String dollar() => Intl.message('dollars', name: 'dollars', locale: Intl.defaultLocale);
|
||||
|
||||
@@ -35,6 +35,7 @@ flutter:
|
||||
- assets/settings.png
|
||||
- assets/settings_arrow.png
|
||||
- assets/help.png
|
||||
- assets/check.png
|
||||
- assets/logout.png
|
||||
- assets/activate_token_message_background.png
|
||||
- assets/active_token_message_background.png
|
||||
|
||||
Reference in New Issue
Block a user