diff options
Diffstat (limited to 'services/java/com/android/server/am/UriPermissionOwner.java')
-rw-r--r-- | services/java/com/android/server/am/UriPermissionOwner.java | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/services/java/com/android/server/am/UriPermissionOwner.java b/services/java/com/android/server/am/UriPermissionOwner.java index 68a2e0f..90ac88d 100644 --- a/services/java/com/android/server/am/UriPermissionOwner.java +++ b/services/java/com/android/server/am/UriPermissionOwner.java @@ -67,24 +67,16 @@ class UriPermissionOwner { if ((mode&Intent.FLAG_GRANT_READ_URI_PERMISSION) != 0 && readUriPermissions != null) { for (UriPermission perm : readUriPermissions) { - perm.readOwners.remove(this); - if (perm.readOwners.size() == 0 && (perm.globalModeFlags - &Intent.FLAG_GRANT_READ_URI_PERMISSION) == 0) { - perm.modeFlags &= ~Intent.FLAG_GRANT_READ_URI_PERMISSION; - service.removeUriPermissionIfNeededLocked(perm); - } + perm.removeReadOwner(this); + service.removeUriPermissionIfNeededLocked(perm); } readUriPermissions = null; } if ((mode&Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0 && writeUriPermissions != null) { for (UriPermission perm : writeUriPermissions) { - perm.writeOwners.remove(this); - if (perm.writeOwners.size() == 0 && (perm.globalModeFlags - &Intent.FLAG_GRANT_WRITE_URI_PERMISSION) == 0) { - perm.modeFlags &= ~Intent.FLAG_GRANT_WRITE_URI_PERMISSION; - service.removeUriPermissionIfNeededLocked(perm); - } + perm.removeWriteOwner(this); + service.removeUriPermissionIfNeededLocked(perm); } writeUriPermissions = null; } @@ -97,12 +89,8 @@ class UriPermissionOwner { while (it.hasNext()) { UriPermission perm = it.next(); if (uri.equals(perm.uri)) { - perm.readOwners.remove(this); - if (perm.readOwners.size() == 0 && (perm.globalModeFlags - &Intent.FLAG_GRANT_READ_URI_PERMISSION) == 0) { - perm.modeFlags &= ~Intent.FLAG_GRANT_READ_URI_PERMISSION; - service.removeUriPermissionIfNeededLocked(perm); - } + perm.removeReadOwner(this); + service.removeUriPermissionIfNeededLocked(perm); it.remove(); } } @@ -116,12 +104,8 @@ class UriPermissionOwner { while (it.hasNext()) { UriPermission perm = it.next(); if (uri.equals(perm.uri)) { - perm.writeOwners.remove(this); - if (perm.writeOwners.size() == 0 && (perm.globalModeFlags - &Intent.FLAG_GRANT_WRITE_URI_PERMISSION) == 0) { - perm.modeFlags &= ~Intent.FLAG_GRANT_WRITE_URI_PERMISSION; - service.removeUriPermissionIfNeededLocked(perm); - } + perm.removeWriteOwner(this); + service.removeUriPermissionIfNeededLocked(perm); it.remove(); } } |