diff options
| author | 2020-06-25 21:33:56 +0000 | |
|---|---|---|
| committer | 2020-06-25 21:33:56 +0000 | |
| commit | 08e440cab2cfa665e4ccacbd8ff4e388bb99b943 (patch) | |
| tree | 48ab6d4fd032657070e9840234e89ef18f4d8947 | |
| parent | 9af8e3f155660635713fa3b9727478410f74ac8f (diff) | |
| parent | e6d0f7501734c37d0150aceafca99aaf1cf2c14b (diff) | |
Merge "Request keyguard dismissal from suspend dialog" into rvc-dev
| -rw-r--r-- | core/java/com/android/internal/app/SuspendedAppActivity.java | 24 |
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) { |