Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cc4e6d13 authored by Justin Lannin's avatar Justin Lannin Committed by Android (Google) Code Review
Browse files

Merge "AppIdPermissionPolicy: Move package update permission revoke to after...

Merge "AppIdPermissionPolicy: Move package update permission revoke to after package evaluation." into main
parents da47f1d5 05bbc74e
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -112,7 +112,6 @@ class AppIdPermissionPolicy : SchemePolicy() {
            addPermissions(packageState, changedPermissionNames)
            trimPermissions(packageState.packageName, changedPermissionNames)
            trimPermissionStates(packageState.appId)
            revokePermissionsOnPackageUpdate(packageState.appId)
        }
        changedPermissionNames.forEachIndexed { _, permissionName ->
            evaluatePermissionStateForAllPackages(permissionName, null)
@@ -130,6 +129,7 @@ class AppIdPermissionPolicy : SchemePolicy() {
            newState.externalState.userIds.forEachIndexed { _, userId ->
                inheritImplicitPermissionStates(packageState.appId, userId)
            }
            revokePermissionsOnPackageUpdate(packageState.appId)
        }
    }

@@ -140,7 +140,6 @@ class AppIdPermissionPolicy : SchemePolicy() {
        addPermissions(packageState, changedPermissionNames)
        trimPermissions(packageState.packageName, changedPermissionNames)
        trimPermissionStates(packageState.appId)
        revokePermissionsOnPackageUpdate(packageState.appId)
        changedPermissionNames.forEachIndexed { _, permissionName ->
            evaluatePermissionStateForAllPackages(permissionName, null)
        }
@@ -148,6 +147,7 @@ class AppIdPermissionPolicy : SchemePolicy() {
        newState.externalState.userIds.forEachIndexed { _, userId ->
            inheritImplicitPermissionStates(packageState.appId, userId)
        }
        revokePermissionsOnPackageUpdate(packageState.appId)
    }

    override fun MutateStateScope.onPackageRemoved(packageName: String, appId: Int) {
@@ -700,6 +700,10 @@ class AppIdPermissionPolicy : SchemePolicy() {
    }

    private fun MutateStateScope.revokePermissionsOnPackageUpdate(appId: Int) {
        revokeStorageAndMediaPermissionsOnPackageUpdate(appId)
    }

    private fun MutateStateScope.revokeStorageAndMediaPermissionsOnPackageUpdate(appId: Int) {
        val hasOldPackage =
            appId in oldState.externalState.appIdPackageNames &&
                anyPackageInAppId(appId, oldState) { true }