summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip P. Moltmann <moltmann@google.com>2019-01-02 16:51:45 -0800
committerKevin F. Haggerty <haggertk@lineageos.org>2019-03-04 18:32:17 -0700
commitd7a9170575f591f4768a88cc221761afeda8d520 (patch)
tree45300872e65a7a79b01a85ae9579bbb8d89c28a1
parent21a858e9188e6ffc405f16c29f9656ed578c73de (diff)
downloadandroid_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.java27
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) {