diff options
author | Luca Stefani <luca.stefani.ge1@gmail.com> | 2019-03-08 09:45:53 +0100 |
---|---|---|
committer | Luca Stefani <luca.stefani.ge1@gmail.com> | 2019-03-08 09:45:53 +0100 |
commit | 8bc1ef8f1cb1da10ff7e9f08ba821b80c54fce57 (patch) | |
tree | afaa7a4ff7892ed7fa23b73578dd6c23c660a28a | |
parent | fccc143880fa6eeab6b01fb3a18408a19f87b710 (diff) | |
parent | 2d763bd5d06c08402d32a18260e56fee79c763df (diff) | |
download | android_packages_apps_PackageInstaller-8bc1ef8f1cb1da10ff7e9f08ba821b80c54fce57.tar.gz android_packages_apps_PackageInstaller-8bc1ef8f1cb1da10ff7e9f08ba821b80c54fce57.tar.bz2 android_packages_apps_PackageInstaller-8bc1ef8f1cb1da10ff7e9f08ba821b80c54fce57.zip |
Merge tag 'android-9.0.0_r34' into lineage-16.0-android-9.0.0_r34
Android 9.0.0 Release 34 (PQ2A.190305.002)
* tag 'android-9.0.0_r34':
Ask for PIN when granting permissions in front of lock screen
Change-Id: Ie1c1f6057a8009e7741951e37f12f04706e18088
-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) { |