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

Commit 0680d68f authored by Hai Zhang's avatar Hai Zhang
Browse files

Work around NPE in onPackageUninstalled().

Fixes: 320701119
Test: presubmit
Change-Id: I10891516cdcc2dc099c82657709776fd8add5582
parent ee460a7a
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -129,7 +129,10 @@ class DevicePermissionPolicy : SchemePolicy() {
        val packageState = newState.externalState.packageStates[packageName] ?: return
        val androidPackage = packageState.androidPackage ?: return
        val appId = packageState.appId
        val appIdPermissionFlags = newState.userStates[userId]!!.appIdDevicePermissionFlags
        // The user may happen removed due to DeletePackageHelper.removeUnusedPackagesLPw() calling
        // deletePackageX() asynchronously.
        val userState = newState.userStates[userId] ?: return
        val devicePermissionFlags = userState.appIdDevicePermissionFlags[appId] ?: return
        androidPackage.requestedPermissions.forEach { permissionName ->
            val isRequestedByOtherPackages =
                anyPackageInAppId(appId) {
@@ -139,7 +142,7 @@ class DevicePermissionPolicy : SchemePolicy() {
            if (isRequestedByOtherPackages) {
                return@forEach
            }
            appIdPermissionFlags[appId]?.forEachIndexed { _, deviceId, _ ->
            devicePermissionFlags.forEachIndexed { _, deviceId, _ ->
                setPermissionFlags(appId, deviceId, userId, permissionName, 0)
            }
        }