summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Kevin Chyn <kchyn@google.com> 2019-07-12 05:14:04 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-07-12 05:14:04 +0000
commitbd698b99cae52f1b326fb2bc167d5dfd4d47573e (patch)
tree356d961fcf60c2e81511417821f4e1ffd9a619c5
parent6173ba74755b4f1b860c576717f87221df18657c (diff)
parentd038189709427aecffb84a3e83086f09f46bc714 (diff)
Merge changes Ia3307593,I43126ce1 into qt-r1-dev
* changes: Reset mSecureCameraLaunched when bouncer is shown Do task stack work on handler to ensure in-order execution
-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 {