diff options
4 files changed, 22 insertions, 11 deletions
diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/app/AppOpsController.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/app/AppOpsController.kt index 6cd6e951ef02..171903f5c648 100644 --- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/app/AppOpsController.kt +++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/app/AppOpsController.kt @@ -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 diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppOpPermissionAppList.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppOpPermissionAppList.kt index 53af25b81580..338b16dec2d3 100644 --- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppOpPermissionAppList.kt +++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppOpPermissionAppList.kt @@ -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 -> diff --git a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppOpsControllerTest.kt b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppOpsControllerTest.kt index 53e52d0e02e8..fd2ceb7e34f2 100644 --- a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppOpsControllerTest.kt +++ b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppOpsControllerTest.kt @@ -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) @@ -80,14 +79,28 @@ class AppOpsControllerTest { } @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 = AppOpsController( 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() diff --git a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/template/app/AppOpPermissionAppListTest.kt b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/template/app/AppOpPermissionAppListTest.kt index da765ba87e46..af59a5547db1 100644 --- a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/template/app/AppOpPermissionAppListTest.kt +++ b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/template/app/AppOpPermissionAppListTest.kt @@ -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 |