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:
@@ -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
|
||||
|
||||
@@ -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 ->
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user