summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2020-06-25 21:33:56 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-06-25 21:33:56 +0000
commit08e440cab2cfa665e4ccacbd8ff4e388bb99b943 (patch)
tree48ab6d4fd032657070e9840234e89ef18f4d8947
parent9af8e3f155660635713fa3b9727478410f74ac8f (diff)
parente6d0f7501734c37d0150aceafca99aaf1cf2c14b (diff)
Merge "Request keyguard dismissal from suspend dialog" into rvc-dev
-rw-r--r--core/java/com/android/internal/app/SuspendedAppActivity.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/core/java/com/android/internal/app/SuspendedAppActivity.java b/core/java/com/android/internal/app/SuspendedAppActivity.java
index 0589baa76b8a..d8eaeda2b549 100644
--- a/core/java/com/android/internal/app/SuspendedAppActivity.java
+++ b/core/java/com/android/internal/app/SuspendedAppActivity.java
@@ -26,6 +26,7 @@ import android.Manifest;
import android.annotation.Nullable;
import android.app.AlertDialog;
import android.app.AppGlobals;
+import android.app.KeyguardManager;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentSender;
@@ -208,9 +209,32 @@ public class SuspendedAppActivity extends AlertActivity
ap.mPositiveButtonText = getString(android.R.string.ok);
ap.mNeutralButtonText = resolveNeutralButtonText();
ap.mPositiveButtonListener = ap.mNeutralButtonListener = this;
+
+ requestDismissKeyguardIfNeeded(ap.mMessage);
+
setupAlert();
}
+ private void requestDismissKeyguardIfNeeded(CharSequence dismissMessage) {
+ final KeyguardManager km = getSystemService(KeyguardManager.class);
+ if (km.isKeyguardLocked()) {
+ km.requestDismissKeyguard(this, dismissMessage,
+ new KeyguardManager.KeyguardDismissCallback() {
+ @Override
+ public void onDismissError() {
+ Slog.e(TAG, "Error while dismissing keyguard."
+ + " Keeping the dialog visible.");
+ }
+
+ @Override
+ public void onDismissCancelled() {
+ Slog.w(TAG, "Keyguard dismiss was cancelled. Finishing.");
+ SuspendedAppActivity.this.finish();
+ }
+ });
+ }
+ }
+
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {