diff options
author | Philip P. Moltmann <moltmann@google.com> | 2018-01-23 21:01:07 +0000 |
---|---|---|
committer | Philip P. Moltmann <moltmann@google.com> | 2018-01-23 21:07:27 +0000 |
commit | 1259f44fd9d90ad56ce71db643aee3554f1ec68b (patch) | |
tree | 417aab24cdcc1c846e005c48b92baf55305bec16 /src/com | |
parent | cdf84d3abc1df49ce632975814d96a982a08a5e7 (diff) | |
download | android_packages_apps_PackageInstaller-1259f44fd9d90ad56ce71db643aee3554f1ec68b.tar.gz android_packages_apps_PackageInstaller-1259f44fd9d90ad56ce71db643aee3554f1ec68b.tar.bz2 android_packages_apps_PackageInstaller-1259f44fd9d90ad56ce71db643aee3554f1ec68b.zip |
Revert "Skip grant dialog when permission are granted"
This reverts commit cdf84d3abc1df49ce632975814d96a982a08a5e7.
Reason for revert: Bugs 72387749 and 72384027
Bug: 72384027
Bug: 72387749
Test: Just a revert
Change-Id: I2077cc3205c3a71a641ed50219c3c5d8cd449958
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java | 121 |
1 files changed, 10 insertions, 111 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java index 9d95e554..a8096c26 100644 --- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java @@ -33,7 +33,6 @@ import android.os.Build; import android.os.Bundle; import android.text.Html; import android.text.Spanned; -import android.util.ArraySet; import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; @@ -73,13 +72,6 @@ public class GrantPermissionsActivity extends OverlayTouchActivity boolean mResultSet; - private PackageManager.OnPermissionsChangedListener mPermissionChangeListener; - - private int getPermissionPolicy() { - DevicePolicyManager devicePolicyManager = getSystemService(DevicePolicyManager.class); - return devicePolicyManager.getPermissionPolicy(null); - } - @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); @@ -120,13 +112,6 @@ public class GrantPermissionsActivity extends OverlayTouchActivity return; } - try { - mPermissionChangeListener = new PermissionChangeListener(); - } catch (NameNotFoundException e) { - setResultAndFinish(); - return; - } - PackageInfo callingPackageInfo = getCallingPackageInfo(); if (callingPackageInfo == null || callingPackageInfo.requestedPermissions == null @@ -144,7 +129,11 @@ public class GrantPermissionsActivity extends OverlayTouchActivity return; } - updateAlreadyGrantedPermissions(getCallingPackageInfo(), getPermissionPolicy()); + DevicePolicyManager devicePolicyManager = getSystemService(DevicePolicyManager.class); + final int permissionPolicy = devicePolicyManager.getPermissionPolicy(null); + + // If calling package is null we default to deny all. + updateDefaultResults(callingPackageInfo, permissionPolicy); mAppPermissions = new AppPermissions(this, callingPackageInfo, null, false, new Runnable() { @@ -172,7 +161,7 @@ public class GrantPermissionsActivity extends OverlayTouchActivity // We allow the user to choose only non-fixed permissions. A permission // is fixed either by device policy or the user denying with prejudice. if (!group.isUserFixed() && !group.isPolicyFixed()) { - switch (getPermissionPolicy()) { + switch (permissionPolicy) { case DevicePolicyManager.PERMISSION_POLICY_AUTO_GRANT: { if (!group.areRuntimePermissionsGranted()) { group.grantRuntimePermissions(false, computeAffectedPermissions( @@ -238,78 +227,6 @@ public class GrantPermissionsActivity extends OverlayTouchActivity } } - - /** - * Update the {@link #mRequestedPermissions} if the system reports them as granted. - * - * <p>This also updates the {@link #mAppPermissions} state and switches to the next group grant - * request if the current group becomes granted. - */ - private void updateIfPermissionsWereGranted() { - updateAlreadyGrantedPermissions(getCallingPackageInfo(), getPermissionPolicy()); - - ArraySet<String> grantedPermissionNames = new ArraySet<>(mRequestedPermissions.length); - for (int i = 0; i < mRequestedPermissions.length; i++) { - if (mGrantResults[i] == PERMISSION_GRANTED) { - grantedPermissionNames.add(mRequestedPermissions[i]); - } - } - - boolean mightShowNextGroup = true; - int numGroups = mAppPermissions.getPermissionGroups().size(); - for (int groupNum = 0; groupNum < numGroups; groupNum++) { - AppPermissionGroup group = mAppPermissions.getPermissionGroups().get(groupNum); - GroupState groupState = mRequestGrantPermissionGroups.get(group.getName()); - - if (groupState == null || groupState.mState != GroupState.STATE_UNKNOWN) { - // Group has already been approved / denied via the UI by the user - continue; - } - - boolean allAffectedPermissionsOfThisGroupAreGranted = true; - - for (int permNum = 0; permNum < groupState.affectedPermissions.length; - permNum++) { - if (!grantedPermissionNames.contains( - groupState.affectedPermissions[permNum])) { - allAffectedPermissionsOfThisGroupAreGranted = false; - break; - } - } - - if (allAffectedPermissionsOfThisGroupAreGranted) { - groupState.mState = GroupState.STATE_ALLOWED; - - if (mightShowNextGroup) { - // The UI currently displays the first group with - // mState == STATE_UNKNOWN. So we are switching to next group until we - // could not allow a group that was still unknown - if (!showNextPermissionGroupGrantRequest()) { - setResultAndFinish(); - } - } - } else { - mightShowNextGroup = false; - } - } - } - - @Override - protected void onStart() { - super.onStart(); - - getPackageManager().addOnPermissionsChangeListener(mPermissionChangeListener); - - updateIfPermissionsWereGranted(); - } - - @Override - protected void onStop() { - super.onStop(); - - getPackageManager().removeOnPermissionsChangeListener(mPermissionChangeListener); - } - @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); @@ -518,16 +435,13 @@ public class GrantPermissionsActivity extends OverlayTouchActivity } } - private void updateAlreadyGrantedPermissions(PackageInfo callingPackageInfo, - int permissionPolicy) { + private void updateDefaultResults(PackageInfo callingPackageInfo, int permissionPolicy) { final int requestedPermCount = mRequestedPermissions.length; for (int i = 0; i < requestedPermCount; i++) { String permission = mRequestedPermissions[i]; - - if (computePermissionGrantState(callingPackageInfo, permission, permissionPolicy) - == PERMISSION_GRANTED) { - mGrantResults[i] = PERMISSION_GRANTED; - } + mGrantResults[i] = callingPackageInfo != null + ? computePermissionGrantState(callingPackageInfo, permission, permissionPolicy) + : PERMISSION_DENIED; } } @@ -599,19 +513,4 @@ public class GrantPermissionsActivity extends OverlayTouchActivity mGroup = group; } } - - private class PermissionChangeListener implements PackageManager.OnPermissionsChangedListener { - final int mCallingPackageUid; - - PermissionChangeListener() throws NameNotFoundException { - mCallingPackageUid = getPackageManager().getPackageUid(getCallingPackage(), 0); - } - - @Override - public void onPermissionsChanged(int uid) { - if (uid == mCallingPackageUid) { - updateIfPermissionsWereGranted(); - } - } - } } |