Добавил локализацию FAQ. Добавил номера телефонов и url сайтов.

This commit is contained in:
Ivan Murashov
2017-09-19 18:55:34 +03:00
parent 6f76ea7b2a
commit 4890bb4065
12 changed files with 233 additions and 91 deletions

View File

@@ -1,9 +1,11 @@
import 'package:checker/resources.dart';
import 'package:checker/strings.dart';
import 'package:flutter/material.dart';
import 'package:checker/base/base_state.dart';
import 'package:checker/consts.dart';
import 'package:checker/common.dart';
import 'package:checker/db.dart';
/// Класс содержит заголовки и текст блоков FAQ.
class Entry {
@@ -13,20 +15,44 @@ class Entry {
}
class EntryItem extends StatelessWidget {
const EntryItem(this.entry);
final Entry entry;
Widget _buildTiles(BuildContext context, Entry root) {
EdgeInsets margin = new EdgeInsets.only(left: 20.0, right: 20.0);
TextStyle titleStyle = Theme.of(context).textTheme.button.copyWith(fontWeight: FontWeight.bold, color: faqTitlesColor);
return new Container(margin: margin, child: new Card(child: new ExpansionTile(
key: new PageStorageKey<Entry>(root),
title:new Text(root.title, style: titleStyle),
children: [new Container(margin: margin, padding: new EdgeInsets.only(top: 12.0, bottom: 20.0),
child: new Text(root.text, style: new TextStyle(fontWeight: FontWeight.w300, color: faqGrey, fontSize: 14.0)),
decoration: new BoxDecoration(border: new Border(top: new BorderSide(color: greyTextColor, width: 0.5))))]
)));
TextStyle titleStyle = Theme.of(context).textTheme.button.copyWith(
fontWeight: FontWeight.bold,
color: faqTitlesColor);
return new Container(margin: margin, child: new Card(
child: new ExpansionTile(
key: new PageStorageKey<Entry>(root),
title:new Text(
root.title,
style: titleStyle),
children: [
new Container(
margin: margin,
padding: new EdgeInsets.only(top: 12.0, bottom: 20.0),
child: new Text(
root.text,
style: new TextStyle(
fontWeight: FontWeight.w300,
color: faqGrey,
fontSize: 14.0)
),
decoration: new BoxDecoration(
border: new Border(
top: new BorderSide(
color: greyTextColor,
width: 0.5)
)
)
)
]
)
)
);
}
@override
@@ -46,14 +72,16 @@ class FAQScreen extends StatefulWidget {
class FAQScreenState<T> extends BaseState<FAQScreen> {
FAQScreenState(this.returnToScanner);
final bool returnToScanner;
String app;
bool returnToScanner;
List<Entry> data;
@override String getTitle() {
return StringsLocalization.help();
}
@override String getHint() {
@override String getHintString() {
return null;
}
@@ -62,10 +90,32 @@ class FAQScreenState<T> extends BaseState<FAQScreen> {
platform.invokeMethod('getFlavor').then((flavor) {
setState(() {
app = flavor;
initPhoneAndUrl();
});
});
}
return new Scaffold(appBar: getAppBar(),body: getScreenContent());
return new Scaffold(appBar: getAppBar(), body: getScreenContent());
}
void initPhoneAndUrl() {
String phone, url;
if (app == 'pip') {
phone = 'Tel: +38 080 030 9997\nTel: +38 044 390 1697';
url = 'http://discount.kiev.ua/';
} else if (app == 'autobonus') {
phone = '8-800-234-6064';
url = 'https://www.auto-club.biz';
}
initHelp(phone, url);
}
void initHelp(String phone, String url) {
data = <Entry>[
new Entry(StringsLocalization.registration(), StringsLocalization.registrationGuide()),
new Entry(StringsLocalization.usage(), StringsLocalization.usageGuide()),
new Entry(StringsLocalization.support(), StringsLocalization.supportGuide(phone, url)),
new Entry(StringsLocalization.common(), StringsLocalization.commonGuide())
];
}
@override List<Widget> getMenuButtons() {
@@ -74,71 +124,25 @@ class FAQScreenState<T> extends BaseState<FAQScreen> {
/// Метод возвращает ListView с блоками faq.
@override Widget getScreenContent() {
return new WillPopScope(onWillPop: onWillPop, child: new ListView.builder(
itemBuilder: (BuildContext context, int index) => new EntryItem(data[index]),
itemCount: data.length));
if (data == null) {
return new Container(
decoration: new BoxDecoration(
image: new DecorationImage(
image: new ExactAssetImage(Resources.getSplash(app)),
fit: BoxFit.cover)));
} else {
return new WillPopScope(onWillPop: onWillPop, child: new ListView.builder(
itemBuilder: (BuildContext context, int index) =>
new EntryItem(data[index]),
itemCount: data.length));
}
}
onWillPop() {
onWillPop() {
if(returnToScanner) {
return startScanner(context, app, helper);
} else {
return true;
}
}
/// Список с контентом
final List<Entry> data = <Entry>[
new Entry('РЕГИСТРАЦИЯ', registrationGuide),
new Entry('ИСПОЛЬЗОВАНИЕ', usageGuide),
new Entry('КОНТАКТЫ ПОДДЕРЖКИ', supportGuide),
new Entry('ОБЩАЯ ИНФОРМАЦИЯ', commonGuide)
];
static const String registrationGuide = '''
После запуска приложения вы окажетесь на странице регистрации магазина.
Введите DIN код магазина (выдается партнером/менеджером International Auto Club, дублируется на почту)
Кликните по кнопке: «Зарегистрировать»
Дождитесь подтверждение активации программы, кликом по кнопке «Обновите статус активации» обновите статус.
После подтверждения запроса на активацию программы Партнером/менеджером кликните по кнопке «Завершить регистрацию», приложение готово к использованию.
При желании изменить номер кассы, необходимо кликнуть на «значок» верхнем правом углу и вернуться на шаг регистрации.
''';
static const String usageGuide = '''
Действие 1:
При предъявлении покупателем штрих-кода участника системы лояльности, запустите данное приложение.
На экране появится сканер штрих кодов. Отсканируйте предъявленный штрих-код сканером.
При успешном сканировании на вашем экране появятся данные партнера.
Действие 2:
Необходимо ввести сумму покупки данного покупателя и кликнуть по кнопке «Зафиксировать».
Всплывет окно подтверждения правильности ввода суммы». В случае правильного ввода суммы, кликните «ДА», сумма будет проведена и вознаграждение будет начислено участнику системы лояльности.
Если сумма введена с ошибкой, кликните «НЕТ» и Вы вернетесь на шаг ввода суммы и сможете её скорректировать.
''';
static const String supportGuide = '''
При некорректной работе приложения AUTO BONUS просьба сразу обратиться по телефону нашей технической поддержки: 8-800-234-6064 (звонок бесплатный) и Вас свяжут с менеджером.
При звонке приготовьтесь назвать ИНН и наименование вашей организации.
Рекомендуйте покупателям установить мобильное приложение дисконтной системы International Auto Club AUTO CLUB и получайте новых лояльных покупателей.
Наш сайт https://www.auto-club.biz
''';
static const String commonGuide = '''
Для эффективного считывания штрих-кода участника системы лояльности необходимо камеру сканера поднести так, чтобы в неё не попадали вертикальные полосы рамки.
Увеличение времени сканирования может произойти из-за черной рамки, в которую помещен штрих-код, так как вертикальные полосы этой рамки расцениваются сканером как часть штрих-кода.
''';
}