Fixes
This commit is contained in:
13
lib/db.dart
13
lib/db.dart
@@ -64,28 +64,33 @@ class SqliteHelper {
|
||||
}
|
||||
|
||||
/// Создается запись в таблице, содержащая данные, которые не зависят от сессии.
|
||||
Future createAppInfo(int currency) async {
|
||||
Future createAppInfo(int currency, String locale) async {
|
||||
List<Map> appInfo = await db.query(tableSettings);
|
||||
if (appInfo.length > 0) {
|
||||
return null;
|
||||
} else {
|
||||
return db.insert(tableSettings, {
|
||||
columnCurrency: currency
|
||||
columnCurrency: currency,
|
||||
columnLocale: locale
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Future<Map> 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<String> getToken() async {
|
||||
|
||||
@@ -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<StatefulWidget> createState() => new CheckerState(
|
||||
this.app,
|
||||
this.appName,
|
||||
this.locale,
|
||||
this.helper);
|
||||
}
|
||||
|
||||
@@ -84,11 +75,8 @@ class CheckerState extends State<Checker> {
|
||||
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) {
|
||||
|
||||
@@ -188,7 +188,6 @@ class PurchaseScreenState<T> extends BaseState<PurchaseScreen> {
|
||||
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(
|
||||
|
||||
@@ -122,8 +122,7 @@ class PurchaseSuccessScreenState<T> extends BaseState<PurchaseSuccessScreen> {
|
||||
|
||||
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<T> extends BaseState<PurchaseSuccessScreen> {
|
||||
)
|
||||
)
|
||||
))
|
||||
]);
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
getMessageTitle() {
|
||||
|
||||
@@ -43,6 +43,9 @@ class SettingsState extends BaseState<SettingsScreen> {
|
||||
@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();
|
||||
|
||||
@@ -78,6 +78,7 @@ class _SplashScreenState extends BaseState<SplashScreen> {
|
||||
|
||||
/// Запуск следующего экрана приложения.
|
||||
showNextScreen() async {
|
||||
|
||||
String token = await helper.getToken();
|
||||
|
||||
// В случае, если в приложении отсутствует токен,
|
||||
|
||||
Reference in New Issue
Block a user