Merge "Don't reset review state until no permission requires a review."
This commit is contained in:
committed by
Android (Google) Code Review
commit
7cb10dd76e
@@ -427,7 +427,7 @@ public final class PermissionsState {
|
||||
mPermissionReviewRequired.put(userId, true);
|
||||
} else if ((oldFlags & PackageManager.FLAG_PERMISSION_REVIEW_REQUIRED) != 0
|
||||
&& (newFlags & PackageManager.FLAG_PERMISSION_REVIEW_REQUIRED) == 0) {
|
||||
if (mPermissionReviewRequired != null) {
|
||||
if (mPermissionReviewRequired != null && !hasPermissionRequiringReview(userId)) {
|
||||
mPermissionReviewRequired.delete(userId);
|
||||
if (mPermissionReviewRequired.size() <= 0) {
|
||||
mPermissionReviewRequired = null;
|
||||
@@ -438,6 +438,18 @@ public final class PermissionsState {
|
||||
return updated;
|
||||
}
|
||||
|
||||
private boolean hasPermissionRequiringReview(int userId) {
|
||||
final int permissionCount = mPermissions.size();
|
||||
for (int i = 0; i < permissionCount; i++) {
|
||||
final PermissionData permission = mPermissions.valueAt(i);
|
||||
if ((permission.getFlags(userId)
|
||||
& PackageManager.FLAG_PERMISSION_REVIEW_REQUIRED) != 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean updatePermissionFlagsForAllPermissions(
|
||||
int userId, int flagMask, int flagValues) {
|
||||
enforceValidUserId(userId);
|
||||
|
||||
Reference in New Issue
Block a user