From 33420bef498b17040f86f9fabf8601359682f04f Mon Sep 17 00:00:00 2001 From: Michael Kalt Date: Mon, 19 Mar 2018 16:21:45 +0100 Subject: [PATCH] Use proper event handling for activity result on Android --- src/fingerprint-auth.android.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/fingerprint-auth.android.ts b/src/fingerprint-auth.android.ts index 39e1b27..6c2f832 100755 --- a/src/fingerprint-auth.android.ts +++ b/src/fingerprint-auth.android.ts @@ -1,5 +1,6 @@ import * as app from "tns-core-modules/application"; import * as utils from "tns-core-modules/utils/utils"; +import { AndroidActivityResultEventData } from "tns-core-modules/application"; import { BiometricIDAvailableResult, ERROR_CODES, FingerprintAuthApi, @@ -142,9 +143,10 @@ export class FingerprintAuth implements FingerprintAuthApi { this.verifyWithCustomAndroidUI(resolve, reject, callback); } else { - this.getActivity().onActivityResult = (requestCode, resultCode, data) => { - if (requestCode === REQUEST_CODE_CONFIRM_DEVICE_CREDENTIALS) { - if (resultCode === android.app.Activity.RESULT_OK) { // OK = -1 + + const onActivityResult = (data: AndroidActivityResultEventData) => { + if (data.requestCode === REQUEST_CODE_CONFIRM_DEVICE_CREDENTIALS) { + if (data.resultCode === android.app.Activity.RESULT_OK) { // OK = -1 // the user has just authenticated via the ConfirmDeviceCredential activity resolve(); } else { @@ -155,8 +157,11 @@ export class FingerprintAuth implements FingerprintAuthApi { }); } } + app.android.off(app.AndroidApplication.activityResultEvent, onActivityResult); }; + app.android.on(app.AndroidApplication.activityResultEvent, onActivityResult); + if (!this.keyguardManager) { reject({ code: ERROR_CODES.NOT_AVAILABLE,