From 1f18d5d928d309d9333585d20adca3b3d43d6f81 Mon Sep 17 00:00:00 2001 From: "Serik.Uvaissov" Date: Sun, 23 Aug 2020 14:37:12 +0600 Subject: [PATCH] permissions add method MethodCallHandler --- .../kassa/handler/CardPaymentHandlerImpl.java | 6 ++++- .../aman/kassa/plugins/BankNfcPlugins.java | 26 ++++++++++++++----- lib/core/services/BankService.dart | 12 +++++++++ lib/views/bank_setting/bank_setting_view.dart | 10 ++----- lib/views/payment_nfc/payment_nfc_view.dart | 9 +++++++ 5 files changed, 47 insertions(+), 16 deletions(-) diff --git a/android/app/src/main/java/kz/com/aman/kassa/handler/CardPaymentHandlerImpl.java b/android/app/src/main/java/kz/com/aman/kassa/handler/CardPaymentHandlerImpl.java index ce9ca8b..8dd2d39 100644 --- a/android/app/src/main/java/kz/com/aman/kassa/handler/CardPaymentHandlerImpl.java +++ b/android/app/src/main/java/kz/com/aman/kassa/handler/CardPaymentHandlerImpl.java @@ -225,7 +225,11 @@ public class CardPaymentHandlerImpl implements CardPaymentCallbackHandler---->---->onTransactionExecutionStatusChanged: " + newStatus.name()); - plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), newStatus.name(), Toast.LENGTH_SHORT).show()); + plugin.getActivity().runOnUiThread(() -> { + if(newStatus!=null && newStatus.equals(TransactionExecutionStatus.TAP_CARD)) { + Toast.makeText(plugin.getActivity(), newStatus.name(), Toast.LENGTH_SHORT).show(); + } + }); } @Override diff --git a/android/app/src/main/java/kz/com/aman/kassa/plugins/BankNfcPlugins.java b/android/app/src/main/java/kz/com/aman/kassa/plugins/BankNfcPlugins.java index d946ab4..56e08e0 100644 --- a/android/app/src/main/java/kz/com/aman/kassa/plugins/BankNfcPlugins.java +++ b/android/app/src/main/java/kz/com/aman/kassa/plugins/BankNfcPlugins.java @@ -70,6 +70,9 @@ public class BankNfcPlugins implements MethodCallHandler { case "init": init(call, result); break; + case "permissions": + permissions(result); + break; case "connection": connection(result); break; @@ -116,18 +119,13 @@ public class BankNfcPlugins implements MethodCallHandler { } return Integer.parseInt(version); } - - private void init(MethodCall call, Result result) { - String serverUrl = call.argument("serverUrl"); + private void permissions(Result result) { try { PermissionsManager.PermissionsCheckResultHandler permissionsCheckResultHandler = new PermissionsManager.PermissionsCheckResultHandler() { @Override public void onPermissionsGranted() { - System.out.println("granted"); activity.runOnUiThread(() -> { - Toast.makeText(activity, "Granted", Toast.LENGTH_SHORT).show(); - start(serverUrl); AmanDao dao = new AmanDao<>(); dao.setSuccess(true); dao.setMsg("OK"); @@ -139,7 +137,10 @@ public class BankNfcPlugins implements MethodCallHandler { @Override public void onPermissionsDeclined() { - result.success("declined"); + AmanDao dao = new AmanDao<>(); + dao.setSuccess(false); + dao.setMsg("decline"); + result.success(gson.toJson(dao)); } }; permissionsManager = new PermissionsManagerImpl(this.activity); @@ -151,6 +152,17 @@ public class BankNfcPlugins implements MethodCallHandler { } } + + private void init(MethodCall call, Result result) { + String serverUrl = call.argument("serverUrl"); + start(serverUrl); + AmanDao dao = new AmanDao<>(); + dao.setSuccess(true); + dao.setMsg("OK"); + result.success(gson.toJson(dao)); + + } + //start after all permissions granted private void start(String serverUrl) { clientInterface = M4BankMposClient.getInstance( diff --git a/lib/core/services/BankService.dart b/lib/core/services/BankService.dart index 261dc15..ef9b277 100644 --- a/lib/core/services/BankService.dart +++ b/lib/core/services/BankService.dart @@ -58,6 +58,18 @@ class BankService extends BaseService { } } + Future permissions() async { + try { + String response = await _channel.invokeMethod("permissions"); + AmanDao dao = AmanDao.fromJson(json.decode(response)); + log.i('${dao.success} - ${dao.msg}'); + return dao.success; + } catch (e, stack) { + log.e("BankService", e, stack); + return false; + } + } + Future auth({String login, String password}) async { try { String response = await _channel.invokeMethod("auth", diff --git a/lib/views/bank_setting/bank_setting_view.dart b/lib/views/bank_setting/bank_setting_view.dart index d62176b..ea2ecf3 100644 --- a/lib/views/bank_setting/bank_setting_view.dart +++ b/lib/views/bank_setting/bank_setting_view.dart @@ -36,17 +36,11 @@ class _BankSettingViewState extends State { } Future initBankImeiState() async { - String imei; - try { - imei = await _bankService.imei(); + await _bankService.permissions(); } on PlatformException { - imei = 'Failed to get platform version.'; + } - if (!mounted) return; - setState(() { - _bankImei = imei; - }); } diff --git a/lib/views/payment_nfc/payment_nfc_view.dart b/lib/views/payment_nfc/payment_nfc_view.dart index 506fd19..ba7fb88 100644 --- a/lib/views/payment_nfc/payment_nfc_view.dart +++ b/lib/views/payment_nfc/payment_nfc_view.dart @@ -64,6 +64,15 @@ class _PaymentNfcViewState extends State { } void start() async { + //Инициализация + bool success = await _bankService.permissions(); + log.i(success); + if (!success) { + setState(() { + status = 4; + }); + return; + } //Инициализация bool initialized = await _bankService.init(); log.i(initialized);