diff --git a/library/src/main/java/moe/feng/support/biometricprompt/BiometricPromptApi23Impl.java b/library/src/main/java/moe/feng/support/biometricprompt/BiometricPromptApi23Impl.java index 6e8ddd0..60aa1d5 100644 --- a/library/src/main/java/moe/feng/support/biometricprompt/BiometricPromptApi23Impl.java +++ b/library/src/main/java/moe/feng/support/biometricprompt/BiometricPromptApi23Impl.java @@ -223,9 +223,17 @@ private class FingerprintManagerAuthenticationCallbackImpl public void onAuthenticationError(int errorCode, CharSequence errString) { animateHandler.removeMessages(AnimateHandler.WHAT_RESTORE_NORMAL_STATE); if (errString != null) { - dialog.getStatus().setText(errString); + dialog.getStatus().post(new Runnable() { + public void run () { + dialog.getStatus().setText(errString); + } + }); } - dialog.getFingerprintIcon().setState(FingerprintIconView.State.ERROR); + dialog.getFingerprintIcon().post(new Runnable() { + public void run () { + dialog.getFingerprintIcon().setState(FingerprintIconView.State.ERROR); + } + }); animateHandler.sendEmptyMessageDelayed(AnimateHandler.WHAT_RESTORE_NORMAL_STATE, 2000); callback.onAuthenticationError(errorCode, errString); } @@ -249,8 +257,16 @@ public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult re @Override public void onAuthenticationFailed() { animateHandler.removeMessages(AnimateHandler.WHAT_RESTORE_NORMAL_STATE); - dialog.getFingerprintIcon().setState(FingerprintIconView.State.ERROR); - dialog.getStatus().setText(R.string.not_recognized_fingerprint_hint); + dialog.getFingerprintIcon().post(new Runnable() { + public void run () { + dialog.getFingerprintIcon().setState(FingerprintIconView.State.ERROR); + } + }); + dialog.getStatus().post(new Runnable() { + public void run () { + dialog.getStatus().setText(R.string.not_recognized_fingerprint_hint); + } + }); animateHandler.sendEmptyMessageDelayed(AnimateHandler.WHAT_RESTORE_NORMAL_STATE, 2000); callback.onAuthenticationFailed(); } diff --git a/library/src/main/java/moe/feng/support/biometricprompt/FingerprintIconView.java b/library/src/main/java/moe/feng/support/biometricprompt/FingerprintIconView.java index 86e15b8..b5074d2 100644 --- a/library/src/main/java/moe/feng/support/biometricprompt/FingerprintIconView.java +++ b/library/src/main/java/moe/feng/support/biometricprompt/FingerprintIconView.java @@ -50,6 +50,7 @@ public void setState(State state, boolean animate) { if (icon == null) { icon = VectorDrawableCompat.create(getResources(), resId, getContext().getTheme()); } + setImageDrawable(icon); if (icon instanceof Animatable) {