permissions add method MethodCallHandler

backend_nfc
Serik.Uvaissov 2020-08-23 14:37:12 +06:00
parent 273aba6ce8
commit 1f18d5d928
5 changed files with 47 additions and 16 deletions

View File

@ -225,7 +225,11 @@ public class CardPaymentHandlerImpl implements CardPaymentCallbackHandler<Result
@Override
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
System.out.println("----->---->---->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

View File

@ -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<String> 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<String> 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<String> 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(

View File

@ -58,6 +58,18 @@ class BankService extends BaseService {
}
}
Future<bool> 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<AmanDao> auth({String login, String password}) async {
try {
String response = await _channel.invokeMethod("auth",

View File

@ -36,17 +36,11 @@ class _BankSettingViewState extends State<BankSettingView> {
}
Future<void> 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;
});
}

View File

@ -64,6 +64,15 @@ class _PaymentNfcViewState extends State<PaymentNfcView> {
}
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);