fython / BiometricPromptCompat

A Thrid-party BiometricPrompt compat library.
Apache License 2.0
263 stars 23 forks source link

Compat dialog shows previously cancelled error #10

Open nealsanche opened 5 years ago

nealsanche commented 5 years ago

To replicate:

1) Show dialog, but hit cancel. 2) Show dialog again (on a device that needs compat, like API27 emulator), will see the cancelled error from the previous invocation.

Here's a video that demonstrates what we see:

2018-09-10_11-26-17

Creation code looks like:

val prompt = BiometricPromptCompat.Builder(context)
                .setTitle(context.getString(R.string.biometrics_enroll_title))
                .setDescription(context.getString(R.string.biometrics_enroll_subtitle))
                .setNegativeButton(context.getString(R.string.biometrics_cancel)) { dialogInterface, _ ->
                    dialogInterface?.let {
                        dialogInterface.cancel()
                        dialogInterface.dismiss()
                    }
                    emitter.onError(DomainException(DomainError.BIOMETRICS_CANCELLED_BY_USER))
                }
                .build()

Maybe it's my negative button handling there, which calls cancel and then dismiss?

fython commented 5 years ago

Maybe I need to write some code to clear the status (of FingerprintManager) each BiometricPrompt's beginning.