diff options
author | Philip P. Moltmann <moltmann@google.com> | 2019-01-02 16:51:45 -0800 |
---|---|---|
committer | Kevin F. Haggerty <haggertk@lineageos.org> | 2019-03-04 18:32:17 -0700 |
commit | d7a9170575f591f4768a88cc221761afeda8d520 (patch) | |
tree | 45300872e65a7a79b01a85ae9579bbb8d89c28a1 | |
parent | 21a858e9188e6ffc405f16c29f9656ed578c73de (diff) | |
download | android_packages_apps_PackageInstaller-d7a9170575f591f4768a88cc221761afeda8d520.tar.gz android_packages_apps_PackageInstaller-d7a9170575f591f4768a88cc221761afeda8d520.tar.bz2 android_packages_apps_PackageInstaller-d7a9170575f591f4768a88cc221761afeda8d520.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) { |