diff --git a/lib/db.dart b/lib/db.dart index 704cca3..8236693 100644 --- a/lib/db.dart +++ b/lib/db.dart @@ -64,28 +64,33 @@ class SqliteHelper { } /// Создается запись в таблице, содержащая данные, которые не зависят от сессии. - Future createAppInfo(int currency) async { + Future createAppInfo(int currency, String locale) async { List appInfo = await db.query(tableSettings); if (appInfo.length > 0) { return null; } else { return db.insert(tableSettings, { - columnCurrency: currency + columnCurrency: currency, + columnLocale: locale }); } } Future getSettings(bool withSession) async { + + Map results = new Map(); Map settings = await selectAll(tableSettings); + results.addAll(settings); + if (withSession) { Map session = await selectAll(tableSession); if (settings != null && session != null) { - settings.addAll(session); + results.addAll(session); } } - return settings; + return results; } Future getToken() async { diff --git a/lib/main.dart b/lib/main.dart index b02e40a..11477f3 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -30,52 +30,43 @@ main() { } initWithSystemValue(String app, String name, SqliteHelper helper) { - platform.invokeMethod('getLocale').then((locale) { - helper.getSettings(false).then((settings) { - if (settings == null) { - createSettingsTable(app, name, locale, helper); - } else { - start(app, name, locale, helper); - } - }); + helper.getSettings(false).then((settings) { + if (settings == null) { + createSettingsTable(app, name, helper); + } else { + start(app, name, locale, helper); + } }); } -createSettingsTable(String app, String name, String locale, SqliteHelper helper) { - platform.invokeMethod('getCurrency').then((currency) { - helper.createAppInfo(currency).then(() { - start(app, name, locale, helper); +createSettingsTable(String app, String name, SqliteHelper helper) { + platform.invokeMethod('getLocale').then((locale) { + platform.invokeMethod('getCurrency').then((currency) { + helper.createAppInfo(currency, locale).then((_) { + start(app, name, locale, helper); + }); }); }); } start(String app, String name, String locale, SqliteHelper helper) { StringsLocalization.load(locale).then((_) { - runApp(new Checker(app, name, locale, helper)); + runApp(new Checker(app, name, helper)); }); } class Checker extends StatefulWidget { - /// Класс для работы с бд final SqliteHelper helper; - - /// Тип сборки. Определяет, какие брать ресурсы (цвета, картинки) final String app; - - /// Отображаемое в заголовке приложения названия (когда показывается список запущенных приложений) final String appName; - /// Локаль приложения - final String locale; - - Checker(this.app, this.appName, this.locale, this.helper); + Checker(this.app, this.appName, this.helper); @override State createState() => new CheckerState( this.app, this.appName, - this.locale, this.helper); } @@ -84,11 +75,8 @@ class CheckerState extends State { SqliteHelper helper; String app; String appName; - String locale; - String token; - - CheckerState(this.app, this.appName, this.locale, this.helper); + CheckerState(this.app, this.appName, this.helper); @override Widget build(BuildContext context) { diff --git a/lib/screens/purchase.dart b/lib/screens/purchase.dart index 411df05..2cebabb 100644 --- a/lib/screens/purchase.dart +++ b/lib/screens/purchase.dart @@ -188,7 +188,6 @@ class PurchaseScreenState extends BaseState { height: buttonHeight, child: new FlatButton( child: new Text(title, style: new TextStyle(color: textColor)), - // FIXME: onPressed: () => startScanner(context, app, helper)), onPressed: () => Navigator.of(context).pop(true)), decoration: new BoxDecoration( border: new Border.all( diff --git a/lib/screens/purchase_success.dart b/lib/screens/purchase_success.dart index ba84915..dbd9e48 100644 --- a/lib/screens/purchase_success.dart +++ b/lib/screens/purchase_success.dart @@ -122,8 +122,7 @@ class PurchaseSuccessScreenState extends BaseState { getScanButton() { String title = StringsLocalization.scan(); - // FIXME: return buildRaisedButton(title, () => startScanner(context, app, helper)); - return buildRaisedButton(title, () => print('startScanner')); + return buildRaisedButton(title, () => Navigator.of(context).pop(true)); } @@ -149,7 +148,8 @@ class PurchaseSuccessScreenState extends BaseState { ) ) )) - ]); + ] + ); } getMessageTitle() { diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index 08c074c..3de9b2c 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -43,6 +43,9 @@ class SettingsState extends BaseState { @override Widget build(BuildContext ctx) { helper.getSettings(true).then((info) { setState(() { + print('currency: ${info['currency']}'); + print('locale: ${info['locale']}'); + print('token: ${info['token']}'); menuItems[0].title = StringsLocalization.currency(); menuItems[1].title = StringsLocalization.locale(); menuItems[2].title = StringsLocalization.logout(); diff --git a/lib/screens/splash.dart b/lib/screens/splash.dart index 797794b..5776cc1 100644 --- a/lib/screens/splash.dart +++ b/lib/screens/splash.dart @@ -78,6 +78,7 @@ class _SplashScreenState extends BaseState { /// Запуск следующего экрана приложения. showNextScreen() async { + String token = await helper.getToken(); // В случае, если в приложении отсутствует токен,