From f54a1370e2720f817dcbf2cc272e51b8b7900a82 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Thu, 1 Oct 2020 13:56:48 -0700 Subject: [PATCH] Prevent GenerateChallenge being dropped in some corner cases Fixes: 169387113 Test: Enter face settings, enroll, leave face settings, enter face settings, remove enrollment, re-enroll Change-Id: I323606dea6ea92599695466bbffeb4d1541e8c85 --- .../biometrics/sensors/face/Face10.java | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/services/core/java/com/android/server/biometrics/sensors/face/Face10.java b/services/core/java/com/android/server/biometrics/sensors/face/Face10.java index 49a4b7c4deb33..c2d4c152cba6b 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/Face10.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/Face10.java @@ -519,19 +519,17 @@ class Face10 implements IHwBinder.DeathRecipient { @NonNull String opPackageName) { mHandler.post(() -> { if (mCurrentChallengeOwner != null) { - Slog.w(TAG, "Current challenge owner: " + mCurrentChallengeOwner - + ", interrupted by: " + opPackageName); final ClientMonitorCallbackConverter listener = mCurrentChallengeOwner.getListener(); - if (listener == null) { - Slog.w(TAG, "Null listener, skip sending interruption callback"); - return; - } - - try { - listener.onChallengeInterrupted(mSensorId); - } catch (RemoteException e) { - Slog.e(TAG, "Unable to notify challenge interrupted", e); + Slog.w(TAG, "Current challenge owner: " + mCurrentChallengeOwner + + ", listener: " + listener + + ", interrupted by: " + opPackageName); + if (listener != null) { + try { + listener.onChallengeInterrupted(mSensorId); + } catch (RemoteException e) { + Slog.e(TAG, "Unable to notify challenge interrupted", e); + } } }