From 9429d6f98e9a9d75c464fb2d80041502836a0cf5 Mon Sep 17 00:00:00 2001 From: Ivan Murashov Date: Wed, 6 Sep 2017 18:02:42 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=82=D0=BA=D1=80=D1=8B=D1=82=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=81=D0=BA=D0=B0=D0=BD=D0=BD=D0=B5=D1=80=D0=B0,=20?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=D0=B0=D1=83=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/common.dart | 18 ++++++++++++------ lib/splash.dart | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/common.dart b/lib/common.dart index a616ca2..0191204 100644 --- a/lib/common.dart +++ b/lib/common.dart @@ -1,3 +1,4 @@ +import 'db.dart'; import 'package:flutter/services.dart'; import 'package:flutter/material.dart'; @@ -25,7 +26,11 @@ faq(BuildContext context, bool returnToScanner) { // В методе отправляется запрос на удаление токена кассы, очищаются SharedPreferences приложения. logout(BuildContext context) async { - String token = await sqliteHelper.getToken(); + + SqliteHelper helper = new SqliteHelper(); + await helper.open(); + String token = await helper.getToken(); + VoidCallback positiveCalback = () { if (token != null) { deleteToken(token).then((response) { @@ -47,8 +52,8 @@ logout(BuildContext context) async { showYesNoDialog(context, StringsLocalization.confirmation(), StringsLocalization.askChangeStore(), positiveCalback); } -forceLogout(BuildContext context) async { - String token = await sqliteHelper.getToken(); +forceLogout(SqliteHelper helper, BuildContext context) async { + String token = await helper.getToken(); deleteToken(token).then((response) { print(response.body); platform.invokeMethod('removeKeys').then((result) { @@ -62,9 +67,9 @@ forceLogout(BuildContext context) async { /// Запуск спецефичной для каждой платформы части приложения - сканера. /// Может производиться с нескольких экранов (splash, finish_registration). -startScanner(BuildContext context) async { +startScanner(SqliteHelper helper, BuildContext context) async { - String token = await sqliteHelper.getToken(); + String token = await helper.getToken(); // Канал ловит вызовы методов из "нативной" части приложения. // Могут быть вызваны либо logout либо faq, либо purchase. if (token != null) { @@ -72,7 +77,7 @@ startScanner(BuildContext context) async { print('call.method: ${call.method}'); if (call.method == 'logout') { - forceLogout(context); + forceLogout(helper, context); } else if (call.method == 'faq') { faq(context, true); } else { @@ -84,6 +89,7 @@ startScanner(BuildContext context) async { Navigator.of(context).pushReplacement(route); } }); + await platform.invokeMethod('startScanner', { 'token' : token, 'url': url, diff --git a/lib/splash.dart b/lib/splash.dart index 84323b0..25611b3 100644 --- a/lib/splash.dart +++ b/lib/splash.dart @@ -92,7 +92,7 @@ class SplashScreen extends StatelessWidget { bool active = status['active'] == null ? false : status['active']; if (active) { - startScanner(context); + startScanner(helper, context); } else { if (await platform.invokeMethod('isOnline')) { _createToken(context, helper);