diff options
author | Philip P. Moltmann <moltmann@google.com> | 2019-01-08 14:01:36 -0800 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-01-08 14:01:36 -0800 |
commit | 754c430d70728edc7f11dc13de011a334d2bde59 (patch) | |
tree | 7f6528d5cceb42f98f4dfd31078dc63149c97c35 | |
parent | 8d0d90df53451887f20013c7d85f650789297a0c (diff) | |
parent | 7afcf0330829d4a446eee720a5fb96cda06bf966 (diff) | |
download | android_packages_apps_PackageInstaller-754c430d70728edc7f11dc13de011a334d2bde59.tar.gz android_packages_apps_PackageInstaller-754c430d70728edc7f11dc13de011a334d2bde59.tar.bz2 android_packages_apps_PackageInstaller-754c430d70728edc7f11dc13de011a334d2bde59.zip |
Ask for PIN when granting permissions in front of lock screen am: b5302e6789 am: 55c96e9be4
am: 7afcf03308
Change-Id: I13b21e5ce919c482e616cb40b7d65dc42a540d07
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java index 21503573..e182655a 100644 --- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java @@ -20,6 +20,7 @@ import static android.content.pm.PackageManager.PERMISSION_DENIED; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import android.app.admin.DevicePolicyManager; +import android.app.KeyguardManager; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; @@ -447,6 +448,32 @@ public class GrantPermissionsActivity extends OverlayTouchActivity @Override public void onPermissionGrantResult(String name, boolean granted, boolean doNotAskAgain) { + KeyguardManager kgm = getSystemService(KeyguardManager.class); + + if (kgm.isDeviceLocked()) { + kgm.requestDismissKeyguard(this, new KeyguardManager.KeyguardDismissCallback() { + @Override + public void onDismissError() { + Log.e(LOG_TAG, "Cannot dismiss keyguard perm=" + name + " granted=" + + granted + " doNotAskAgain=" + doNotAskAgain); + } + + @Override + public void onDismissCancelled() { + // do nothing (i.e. stay at the current permission group) + } + + @Override + public void onDismissSucceeded() { + // Now the keyguard is dismissed, hence the device is not locked + // anymore + onPermissionGrantResult(name, granted, doNotAskAgain); + } + }); + + return; + } + GroupState groupState = mRequestGrantPermissionGroups.get(name); if (groupState != null && groupState.mGroup != null) { if (granted) { |