diff options
author | Philip P. Moltmann <moltmann@google.com> | 2019-01-02 16:51:45 -0800 |
---|---|---|
committer | JP Sugarbroad <jpsugar@google.com> | 2019-01-14 14:56:04 -0800 |
commit | 8c0ef16adf0d20b7e821b375df1833c66cb758bc (patch) | |
tree | 7829445aacf7405a807c0fc6b76c294d77238bb5 | |
parent | 8c9f9bb80468156b835e5caef3ef4b4f84363f64 (diff) | |
download | android_packages_apps_PackageInstaller-8c0ef16adf0d20b7e821b375df1833c66cb758bc.tar.gz android_packages_apps_PackageInstaller-8c0ef16adf0d20b7e821b375df1833c66cb758bc.tar.bz2 android_packages_apps_PackageInstaller-8c0ef16adf0d20b7e821b375df1833c66cb758bc.zip |
Ask for PIN when granting permissions in front of lock screen
Test: - Revoked all permissions from camera
- Set lock screen PIN
- Opened camera app -> Camera app asks for permissions
- Locked screen
- Granted permission from in front of lock screen
Bug: 68777217, 65337954
Merged-In: I8358f1eba436786b25b2c2b0c12ac7dcfd334fec
Change-Id: I3f252e2c325bd638ea29d1ce63b12e391e13c8f0
(cherry picked from commit b5302e6789b7a0b8f5625e054fbb21d5916652be)
-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 ccb6aab4..c120daee 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; @@ -302,6 +303,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.mGroup != null) { if (granted) { |