Set default value for AppOpsController modeForNotAllowed

Also add unit test for modeForNotAllowed.

Bug: 235727273
Test: Unit test
Change-Id: I0920997c0e8f18cef70017d5ae12e43513f73e90
This commit is contained in:
Chaohui Wang
2023-01-10 15:33:17 +08:00
parent 42bfd5f7e1
commit df8c3b29d3
4 changed files with 22 additions and 11 deletions

View File

@@ -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

View File

@@ -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 ->

View File

@@ -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()

View File

@@ -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