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

Commit 5d9e07f2 authored by Hai Zhang's avatar Hai Zhang Committed by Android (Google) Code Review
Browse files

Merge "Allow getting and removing app op modes for non-existent users."

parents 93ae86e5 85a51570
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -72,19 +72,24 @@ class AppIdAppOpPolicy : BaseAppOpPolicy(AppIdAppOpPersistence()) {
    }

    fun GetStateScope.getAppOpModes(appId: Int, userId: Int): IndexedMap<String, Int>? =
        state.userStates[userId]!!.appIdAppOpModes[appId]
        state.userStates[userId]?.appIdAppOpModes?.get(appId)

    fun MutateStateScope.removeAppOpModes(appId: Int, userId: Int): Boolean {
        val appIdIndex = newState.userStates[userId]!!.appIdAppOpModes.indexOfKey(appId)
        val userStateIndex = newState.userStates.indexOfKey(userId)
        if (userStateIndex < 0) {
            return false
        }
        val appIdIndex = newState.userStates.valueAt(userStateIndex).appIdAppOpModes
            .indexOfKey(appId)
        if (appIdIndex < 0) {
            return false
        }
        newState.mutateUserState(userId)!!.mutateAppIdAppOpModes().removeAt(appIdIndex)
        newState.mutateUserStateAt(userStateIndex).mutateAppIdAppOpModes().removeAt(appIdIndex)
        return true
    }

    fun GetStateScope.getAppOpMode(appId: Int, userId: Int, appOpName: String): Int =
        state.userStates[userId]!!.appIdAppOpModes[appId]
        state.userStates[userId]?.appIdAppOpModes?.get(appId)
            .getWithDefault(appOpName, AppOpsManager.opToDefaultMode(appOpName))

    fun MutateStateScope.setAppOpMode(
+9 −4
Original line number Diff line number Diff line
@@ -72,20 +72,25 @@ class PackageAppOpPolicy : BaseAppOpPolicy(PackageAppOpPersistence()) {
    }

    fun GetStateScope.getAppOpModes(packageName: String, userId: Int): IndexedMap<String, Int>? =
        state.userStates[userId]!!.packageAppOpModes[packageName]
        state.userStates[userId]?.packageAppOpModes?.get(packageName)

    fun MutateStateScope.removeAppOpModes(packageName: String, userId: Int): Boolean {
        val packageNameIndex = newState.userStates[userId]!!.packageAppOpModes
        val userStateIndex = newState.userStates.indexOfKey(userId)
        if (userStateIndex < 0) {
            return false
        }
        val packageNameIndex = newState.userStates.valueAt(userStateIndex).packageAppOpModes
            .indexOfKey(packageName)
        if (packageNameIndex < 0) {
            return false
        }
        newState.mutateUserState(userId)!!.mutatePackageAppOpModes().removeAt(packageNameIndex)
        newState.mutateUserStateAt(userStateIndex).mutatePackageAppOpModes()
            .removeAt(packageNameIndex)
        return true
    }

    fun GetStateScope.getAppOpMode(packageName: String, userId: Int, appOpName: String): Int =
        state.userStates[userId]!!.packageAppOpModes[packageName]
        state.userStates[userId]?.packageAppOpModes?.get(packageName)
            .getWithDefault(appOpName, AppOpsManager.opToDefaultMode(appOpName))

    fun MutateStateScope.setAppOpMode(