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

Commit df8c3b29 authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Set default value for AppOpsController modeForNotAllowed

Also add unit test for modeForNotAllowed.

Bug: 235727273
Test: Unit test
Change-Id: I0920997c0e8f18cef70017d5ae12e43513f73e90
parent 42bfd5f7
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settingslib.spaprivileged.model.app

import android.app.AppOpsManager.MODE_ALLOWED
import android.app.AppOpsManager.MODE_ERRORED
import android.app.AppOpsManager.Mode
import android.content.Context
import android.content.pm.ApplicationInfo
@@ -39,7 +40,7 @@ class AppOpsController(
    context: Context,
    private val app: ApplicationInfo,
    private val op: Int,
    private val modeForNotAllowed: Int,
    private val modeForNotAllowed: Int = MODE_ERRORED,
    private val setModeByUid: Boolean = false,
) : IAppOpsController {
    private val appOpsManager = context.appOpsManager
+2 −2
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ abstract class AppOpPermissionListModel(
     * If true, it uses getAppOpPermissionPackages() to fetch bits to decide whether the permission
     * is requested.
     */
    open val permissionHasAppopFlag: Boolean = true
    open val permissionHasAppOpFlag: Boolean = true

    open val modeForNotAllowed: Int = MODE_ERRORED

@@ -105,7 +105,7 @@ abstract class AppOpPermissionListModel(
        }

    override fun transform(userIdFlow: Flow<Int>, appListFlow: Flow<List<ApplicationInfo>>) =
        if (permissionHasAppopFlag) {
        if (permissionHasAppOpFlag) {
            userIdFlow
                .map { userId -> packageManagers.getAppOpPermissionPackages(userId, permission) }
                .combine(appListFlow) { packageNames, appList ->
+18 −7
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.settingslib.spaprivileged.model.app
import android.app.AppOpsManager
import android.app.AppOpsManager.MODE_ALLOWED
import android.app.AppOpsManager.MODE_ERRORED
import android.app.AppOpsManager.MODE_IGNORED
import android.content.Context
import android.content.pm.ApplicationInfo
import androidx.test.core.app.ApplicationProvider
@@ -56,7 +57,6 @@ class AppOpsControllerTest {
                context = context,
                app = APP,
                op = OP,
                modeForNotAllowed = MODE_ERRORED
            )

        controller.setAllowed(true)
@@ -71,7 +71,6 @@ class AppOpsControllerTest {
                context = context,
                app = APP,
                op = OP,
                modeForNotAllowed = MODE_ERRORED
            )

        controller.setAllowed(false)
@@ -79,6 +78,21 @@ class AppOpsControllerTest {
        verify(appOpsManager).setMode(OP, APP.uid, APP.packageName, MODE_ERRORED)
    }

    @Test
    fun setAllowed_setToFalseWithModeForNotAllowed() {
        val controller =
            AppOpsController(
                context = context,
                app = APP,
                op = OP,
                modeForNotAllowed = MODE_IGNORED,
            )

        controller.setAllowed(false)

        verify(appOpsManager).setMode(OP, APP.uid, APP.packageName, MODE_IGNORED)
    }

    @Test
    fun setAllowed_setToTrueByUid() {
        val controller =
@@ -86,8 +100,7 @@ class AppOpsControllerTest {
                context = context,
                app = APP,
                op = OP,
                modeForNotAllowed = MODE_ERRORED,
                setModeByUid = true
                setModeByUid = true,
            )

        controller.setAllowed(true)
@@ -102,8 +115,7 @@ class AppOpsControllerTest {
                context = context,
                app = APP,
                op = OP,
                modeForNotAllowed = MODE_ERRORED,
                setModeByUid = true
                setModeByUid = true,
            )

        controller.setAllowed(false)
@@ -120,7 +132,6 @@ class AppOpsControllerTest {
                context = context,
                app = APP,
                op = OP,
                modeForNotAllowed = MODE_ERRORED
            )

        val mode = controller.getMode()
+0 −1
Original line number Diff line number Diff line
@@ -314,7 +314,6 @@ class AppOpPermissionAppListTest {

        override val appOp = AppOpsManager.OP_MANAGE_MEDIA
        override val permission = PERMISSION
        override val permissionHasAppopFlag = true
        override var broaderPermission: String? = null

        override var setModeByUid = false