summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Chyn <kchyn@google.com>2019-07-11 22:34:47 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-07-11 22:34:47 -0700
commit26f2c379d0c5e6f6f37419ed06d57f252b9501e7 (patch)
treee011a2fd114c9a3ae45de9ef2ca320444a259dcb
parent69ef22d8ca62932b6d5e72f4bbc11799b4429709 (diff)
parent048f6a4ebbeb9f2fe8a6de110c5601fa0de497af (diff)
Merge changes Ia3307593,I43126ce1 into qt-r1-dev am: bd698b99ca
am: 048f6a4ebb Change-Id: I50389abf4272b92356045b787882e5070caac117
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java10
-rw-r--r--services/core/java/com/android/server/biometrics/BiometricServiceBase.java15
2 files changed, 21 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 05e14a779a17..2eb93d3a6075 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -2203,6 +2203,15 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
if (DEBUG) Log.d(TAG, "handleKeyguardBouncerChanged(" + bouncer + ")");
boolean isBouncer = (bouncer == 1);
mBouncer = isBouncer;
+
+ if (isBouncer) {
+ // If the bouncer is shown, always clear this flag. This can happen in the following
+ // situations: 1) Default camera with SHOW_WHEN_LOCKED is not chosen yet. 2) Secure
+ // camera requests dismiss keyguard (tapping on photos for example). When these happen,
+ // face auth should resume.
+ mSecureCameraLaunched = false;
+ }
+
for (int i = 0; i < mCallbacks.size(); i++) {
KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
if (cb != null) {
@@ -2649,6 +2658,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
pw.println(" strongAuthFlags=" + Integer.toHexString(strongAuthFlags));
pw.println(" trustManaged=" + getUserTrustIsManaged(userId));
pw.println(" enabledByUser=" + mFaceSettingEnabledForUser);
+ pw.println(" mSecureCameraLaunched=" + mSecureCameraLaunched);
}
}
}
diff --git a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
index 0c4f0bd0edc6..f08423eb2016 100644
--- a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
+++ b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
@@ -497,9 +497,9 @@ public abstract class BiometricServiceBase extends SystemService
}
}
- private final class BiometricTaskStackListener extends TaskStackListener {
+ private final Runnable mOnTaskStackChangedRunnable = new Runnable() {
@Override
- public void onTaskStackChanged() {
+ public void run() {
try {
if (!(mCurrentClient instanceof AuthenticationClient)) {
return;
@@ -514,8 +514,8 @@ public abstract class BiometricServiceBase extends SystemService
final String topPackage = runningTasks.get(0).topActivity.getPackageName();
if (!topPackage.contentEquals(currentClient)
&& !mCurrentClient.isAlreadyDone()) {
- Slog.e(getTag(), "Stopping background authentication, top: " + topPackage
- + " currentClient: " + currentClient);
+ Slog.e(getTag(), "Stopping background authentication, top: "
+ + topPackage + " currentClient: " + currentClient);
mCurrentClient.stop(false /* initiatedByClient */);
}
}
@@ -523,6 +523,13 @@ public abstract class BiometricServiceBase extends SystemService
Slog.e(getTag(), "Unable to get running tasks", e);
}
}
+ };
+
+ private final class BiometricTaskStackListener extends TaskStackListener {
+ @Override
+ public void onTaskStackChanged() {
+ mHandler.post(mOnTaskStackChangedRunnable);
+ }
}
private final class ResetClientStateRunnable implements Runnable {