Migrate AppOps
Bug: 339846642 Test: manual - on Special app access Change-Id: I988bdf85036478d8e6d87a3b5a1a46a35df38422
This commit is contained in:
@@ -28,6 +28,7 @@ import androidx.compose.runtime.Composable
|
||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
||||
import com.android.settingslib.R
|
||||
import com.android.settingslib.spa.lifecycle.collectAsCallbackWithLifecycle
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOpsController
|
||||
import com.android.settingslib.spaprivileged.model.app.AppRecord
|
||||
import com.android.settingslib.spaprivileged.model.app.IPackageManagers
|
||||
@@ -116,8 +117,7 @@ class AlarmsAndRemindersAppListModel(
|
||||
controller = AppOpsController(
|
||||
context = context,
|
||||
app = app,
|
||||
op = AppOpsManager.OP_SCHEDULE_EXACT_ALARM,
|
||||
setModeByUid = true,
|
||||
appOps = APP_OPS,
|
||||
),
|
||||
)
|
||||
}
|
||||
@@ -136,6 +136,11 @@ class AlarmsAndRemindersAppListModel(
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val APP_OPS = AppOps(
|
||||
op = AppOpsManager.OP_SCHEDULE_EXACT_ALARM,
|
||||
setModeByUid = true,
|
||||
)
|
||||
|
||||
private const val PERMISSION: String = Manifest.permission.SCHEDULE_EXACT_ALARM
|
||||
|
||||
/** Checks whether [Manifest.permission.SCHEDULE_EXACT_ALARM] is enabled. */
|
||||
|
@@ -22,6 +22,7 @@ import android.app.settings.SettingsEnums
|
||||
import android.content.Context
|
||||
import com.android.settings.R
|
||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
||||
@@ -35,9 +36,11 @@ class AllFilesAccessListModel(context: Context) : AppOpPermissionListModel(conte
|
||||
override val pageTitleResId = R.string.manage_external_storage_title
|
||||
override val switchTitleResId = R.string.permit_manage_external_storage
|
||||
override val footerResId = R.string.allow_manage_external_storage_description
|
||||
override val appOp = AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE
|
||||
override val appOps = AppOps(
|
||||
op = AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE,
|
||||
setModeByUid = true,
|
||||
)
|
||||
override val permission = Manifest.permission.MANAGE_EXTERNAL_STORAGE
|
||||
override val setModeByUid = true
|
||||
|
||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||
super.setAllowed(record, newAllowed)
|
||||
|
@@ -22,6 +22,7 @@ import android.app.settings.SettingsEnums
|
||||
import android.content.Context
|
||||
import com.android.settings.R
|
||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
||||
@@ -35,7 +36,7 @@ class DisplayOverOtherAppsListModel(context: Context) : AppOpPermissionListModel
|
||||
override val pageTitleResId = R.string.system_alert_window_settings
|
||||
override val switchTitleResId = R.string.permit_draw_overlay
|
||||
override val footerResId = R.string.allow_overlay_description
|
||||
override val appOp = AppOpsManager.OP_SYSTEM_ALERT_WINDOW
|
||||
override val appOps = AppOps(AppOpsManager.OP_SYSTEM_ALERT_WINDOW)
|
||||
override val permission = Manifest.permission.SYSTEM_ALERT_WINDOW
|
||||
|
||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||
|
@@ -20,13 +20,13 @@ import android.Manifest
|
||||
import android.app.AppGlobals
|
||||
import android.app.AppOpsManager
|
||||
import android.app.AppOpsManager.MODE_DEFAULT
|
||||
import android.app.AppOpsManager.OP_REQUEST_INSTALL_PACKAGES
|
||||
import android.content.Context
|
||||
import android.content.pm.ApplicationInfo
|
||||
import android.os.UserManager
|
||||
import androidx.compose.runtime.Composable
|
||||
import com.android.settings.R
|
||||
import com.android.settingslib.spa.lifecycle.collectAsCallbackWithLifecycle
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOpsController
|
||||
import com.android.settingslib.spaprivileged.model.app.AppRecord
|
||||
import com.android.settingslib.spaprivileged.model.app.userId
|
||||
@@ -61,12 +61,7 @@ class InstallUnknownAppsListModel(private val context: Context) :
|
||||
override fun transformItem(app: ApplicationInfo) =
|
||||
InstallUnknownAppsRecord(
|
||||
app = app,
|
||||
appOpsController =
|
||||
AppOpsController(
|
||||
context = context,
|
||||
app = app,
|
||||
op = OP_REQUEST_INSTALL_PACKAGES,
|
||||
),
|
||||
appOpsController = AppOpsController(context = context, app = app, appOps = APP_OPS),
|
||||
)
|
||||
|
||||
override fun filter(
|
||||
@@ -91,6 +86,8 @@ class InstallUnknownAppsListModel(private val context: Context) :
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val APP_OPS = AppOps(AppOpsManager.OP_REQUEST_INSTALL_PACKAGES)
|
||||
|
||||
private fun isChangeable(
|
||||
record: InstallUnknownAppsRecord,
|
||||
potentialPackageNames: Set<String>,
|
||||
|
@@ -22,6 +22,7 @@ import android.app.settings.SettingsEnums
|
||||
import android.content.Context
|
||||
import com.android.settings.R
|
||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
||||
@@ -35,9 +36,11 @@ class LongBackgroundTasksAppsListModel(context: Context) : AppOpPermissionListMo
|
||||
override val pageTitleResId = R.string.long_background_tasks_title
|
||||
override val switchTitleResId = R.string.long_background_tasks_switch_title
|
||||
override val footerResId = R.string.long_background_tasks_footer_title
|
||||
override val appOp = AppOpsManager.OP_RUN_USER_INITIATED_JOBS
|
||||
override val appOps = AppOps(
|
||||
op = AppOpsManager.OP_RUN_USER_INITIATED_JOBS,
|
||||
setModeByUid = true,
|
||||
)
|
||||
override val permission = Manifest.permission.RUN_USER_INITIATED_JOBS
|
||||
override val setModeByUid = true
|
||||
|
||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||
super.setAllowed(record, newAllowed)
|
||||
|
@@ -22,6 +22,7 @@ import android.app.settings.SettingsEnums
|
||||
import android.content.Context
|
||||
import com.android.settings.R
|
||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
||||
@@ -35,9 +36,11 @@ class MediaManagementAppsListModel(context: Context) : AppOpPermissionListModel(
|
||||
override val pageTitleResId = R.string.media_management_apps_title
|
||||
override val switchTitleResId = R.string.media_management_apps_toggle_label
|
||||
override val footerResId = R.string.media_management_apps_description
|
||||
override val appOp = AppOpsManager.OP_MANAGE_MEDIA
|
||||
override val appOps = AppOps(
|
||||
op = AppOpsManager.OP_MANAGE_MEDIA,
|
||||
setModeByUid = true,
|
||||
)
|
||||
override val permission = Manifest.permission.MANAGE_MEDIA
|
||||
override val setModeByUid = true
|
||||
|
||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||
super.setAllowed(record, newAllowed)
|
||||
|
@@ -25,6 +25,7 @@ import android.content.Context
|
||||
import com.android.media.flags.Flags;
|
||||
import com.android.settings.R
|
||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
||||
@@ -38,9 +39,11 @@ class MediaRoutingControlAppsListModel(context: Context) : AppOpPermissionListMo
|
||||
override val pageTitleResId = R.string.media_routing_control_title
|
||||
override val switchTitleResId = R.string.allow_media_routing_control
|
||||
override val footerResId = R.string.allow_media_routing_description
|
||||
override val appOp = AppOpsManager.OP_MEDIA_ROUTING_CONTROL
|
||||
override val appOps = AppOps(
|
||||
op = AppOpsManager.OP_MEDIA_ROUTING_CONTROL,
|
||||
setModeByUid = true,
|
||||
)
|
||||
override val permission = Manifest.permission.MEDIA_ROUTING_CONTROL
|
||||
override val setModeByUid = true
|
||||
private val roleManager = context.getSystemService(RoleManager::class.java)
|
||||
|
||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||
|
@@ -22,6 +22,7 @@ import android.app.settings.SettingsEnums
|
||||
import android.content.Context
|
||||
import com.android.settings.R
|
||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
||||
@@ -35,7 +36,7 @@ class ModifySystemSettingsListModel(context: Context) : AppOpPermissionListModel
|
||||
override val pageTitleResId = R.string.write_system_settings
|
||||
override val switchTitleResId = R.string.permit_write_settings
|
||||
override val footerResId = R.string.write_settings_description
|
||||
override val appOp = AppOpsManager.OP_WRITE_SETTINGS
|
||||
override val appOps = AppOps(AppOpsManager.OP_WRITE_SETTINGS)
|
||||
override val permission = Manifest.permission.WRITE_SETTINGS
|
||||
|
||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||
|
@@ -17,7 +17,6 @@
|
||||
package com.android.settings.spa.app.specialaccess
|
||||
|
||||
import android.app.AppOpsManager
|
||||
import android.app.AppOpsManager.OP_PICTURE_IN_PICTURE
|
||||
import android.content.Context
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.content.pm.ApplicationInfo
|
||||
@@ -28,6 +27,7 @@ import android.util.Log
|
||||
import androidx.compose.runtime.Composable
|
||||
import com.android.settings.R
|
||||
import com.android.settingslib.spa.lifecycle.collectAsCallbackWithLifecycle
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOpsController
|
||||
import com.android.settingslib.spaprivileged.model.app.AppRecord
|
||||
import com.android.settingslib.spaprivileged.model.app.installed
|
||||
@@ -79,12 +79,7 @@ class PictureInPictureListModel(private val context: Context) :
|
||||
PictureInPictureRecord(
|
||||
app = app,
|
||||
isSupport = isSupport,
|
||||
appOpsController =
|
||||
AppOpsController(
|
||||
context = context,
|
||||
app = app,
|
||||
op = OP_PICTURE_IN_PICTURE,
|
||||
),
|
||||
appOpsController = AppOpsController(context = context, app = app, appOps = APP_OPS),
|
||||
)
|
||||
|
||||
override fun filter(userIdFlow: Flow<Int>, recordListFlow: Flow<List<PictureInPictureRecord>>) =
|
||||
@@ -131,6 +126,8 @@ class PictureInPictureListModel(private val context: Context) :
|
||||
companion object {
|
||||
private const val TAG = "PictureInPictureListModel"
|
||||
|
||||
private val APP_OPS = AppOps(AppOpsManager.OP_PICTURE_IN_PICTURE)
|
||||
|
||||
private fun PackageInfo.supportsPictureInPicture() =
|
||||
activities?.any(ActivityInfo::supportsPictureInPicture) ?: false
|
||||
|
||||
|
@@ -20,8 +20,8 @@ import android.Manifest
|
||||
import android.app.AppOpsManager
|
||||
import android.app.settings.SettingsEnums
|
||||
import android.content.Context
|
||||
import com.android.settings.R
|
||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
||||
@@ -35,9 +35,11 @@ class TurnScreenOnAppsListModel(context: Context) : AppOpPermissionListModel(con
|
||||
override val pageTitleResId = com.android.settingslib.R.string.turn_screen_on_title
|
||||
override val switchTitleResId = com.android.settingslib.R.string.allow_turn_screen_on
|
||||
override val footerResId = com.android.settingslib.R.string.allow_turn_screen_on_description
|
||||
override val appOp = AppOpsManager.OP_TURN_SCREEN_ON
|
||||
override val appOps = AppOps(
|
||||
op = AppOpsManager.OP_TURN_SCREEN_ON,
|
||||
setModeByUid = true,
|
||||
)
|
||||
override val permission = Manifest.permission.TURN_SCREEN_ON
|
||||
override val setModeByUid = true
|
||||
|
||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||
super.setAllowed(record, newAllowed)
|
||||
|
@@ -20,6 +20,7 @@ import android.Manifest
|
||||
import android.app.AppOpsManager
|
||||
import android.content.Context
|
||||
import com.android.settings.R
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
|
||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
||||
|
||||
@@ -32,7 +33,9 @@ class UseFullScreenIntentListModel(context: Context) : AppOpPermissionListModel(
|
||||
override val pageTitleResId = R.string.full_screen_intent_title
|
||||
override val switchTitleResId = R.string.permit_full_screen_intent
|
||||
override val footerResId = R.string.footer_description_full_screen_intent
|
||||
override val appOp = AppOpsManager.OP_USE_FULL_SCREEN_INTENT
|
||||
override val appOps = AppOps(
|
||||
op = AppOpsManager.OP_USE_FULL_SCREEN_INTENT,
|
||||
setModeByUid = true,
|
||||
)
|
||||
override val permission = Manifest.permission.USE_FULL_SCREEN_INTENT
|
||||
override val setModeByUid = true
|
||||
}
|
||||
|
@@ -21,6 +21,7 @@ import android.app.AppOpsManager
|
||||
import android.app.AppOpsManager.MODE_IGNORED
|
||||
import android.content.Context
|
||||
import com.android.settings.R
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.model.app.IPackageManagers
|
||||
import com.android.settingslib.spaprivileged.model.app.PackageManagers
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
|
||||
@@ -39,11 +40,13 @@ class WifiControlAppListModel(
|
||||
override val switchTitleResId = R.string.change_wifi_state_app_detail_switch
|
||||
override val footerResId = R.string.change_wifi_state_app_detail_summary
|
||||
|
||||
override val appOp = AppOpsManager.OP_CHANGE_WIFI_STATE
|
||||
override val appOps = AppOps(
|
||||
op = AppOpsManager.OP_CHANGE_WIFI_STATE,
|
||||
modeForNotAllowed = MODE_IGNORED,
|
||||
)
|
||||
override val permission = Manifest.permission.CHANGE_WIFI_STATE
|
||||
|
||||
/** NETWORK_SETTINGS permission trumps CHANGE_WIFI_CONFIG. */
|
||||
override val broaderPermission = Manifest.permission.NETWORK_SETTINGS
|
||||
override val permissionHasAppOpFlag = false
|
||||
override val modeForNotAllowed = MODE_IGNORED
|
||||
}
|
||||
|
@@ -269,7 +269,7 @@ class WifiControlAppListModelTest {
|
||||
private class FakeAppOpsController(private val fakeMode: Int) : IAppOpsController {
|
||||
var setAllowedCalledWith: Boolean? = null
|
||||
|
||||
override val mode = flowOf(fakeMode)
|
||||
override val modeFlow = flowOf(fakeMode)
|
||||
|
||||
override fun setAllowed(allowed: Boolean) {
|
||||
setAllowedCalledWith = allowed
|
||||
|
@@ -22,6 +22,7 @@ import android.content.Context
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import com.android.settings.R
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
@@ -37,8 +38,12 @@ class AllFilesAccessTest {
|
||||
assertThat(listModel.pageTitleResId).isEqualTo(R.string.manage_external_storage_title)
|
||||
assertThat(listModel.switchTitleResId).isEqualTo(R.string.permit_manage_external_storage)
|
||||
assertThat(listModel.footerResId).isEqualTo(R.string.allow_manage_external_storage_description)
|
||||
assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE)
|
||||
assertThat(listModel.appOps).isEqualTo(
|
||||
AppOps(
|
||||
op = AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE,
|
||||
setModeByUid = true,
|
||||
)
|
||||
)
|
||||
assertThat(listModel.permission).isEqualTo(Manifest.permission.MANAGE_EXTERNAL_STORAGE)
|
||||
assertThat(listModel.setModeByUid).isTrue()
|
||||
}
|
||||
}
|
@@ -23,6 +23,7 @@ import androidx.test.core.app.ApplicationProvider
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import com.android.settings.R
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
@@ -37,8 +38,12 @@ class LongBackgroundTasksAppsTest {
|
||||
assertThat(listModel.pageTitleResId).isEqualTo(R.string.long_background_tasks_title)
|
||||
assertThat(listModel.switchTitleResId).isEqualTo(R.string.long_background_tasks_switch_title)
|
||||
assertThat(listModel.footerResId).isEqualTo(R.string.long_background_tasks_footer_title)
|
||||
assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_RUN_USER_INITIATED_JOBS)
|
||||
assertThat(listModel.appOps).isEqualTo(
|
||||
AppOps(
|
||||
op = AppOpsManager.OP_RUN_USER_INITIATED_JOBS,
|
||||
setModeByUid = true,
|
||||
)
|
||||
)
|
||||
assertThat(listModel.permission).isEqualTo(Manifest.permission.RUN_USER_INITIATED_JOBS)
|
||||
assertThat(listModel.setModeByUid).isTrue()
|
||||
}
|
||||
}
|
@@ -22,6 +22,7 @@ import android.content.Context
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import com.android.settings.R
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
@@ -37,8 +38,12 @@ class MediaManagementAppsTest {
|
||||
assertThat(listModel.pageTitleResId).isEqualTo(R.string.media_management_apps_title)
|
||||
assertThat(listModel.switchTitleResId).isEqualTo(R.string.media_management_apps_toggle_label)
|
||||
assertThat(listModel.footerResId).isEqualTo(R.string.media_management_apps_description)
|
||||
assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_MANAGE_MEDIA)
|
||||
assertThat(listModel.appOps).isEqualTo(
|
||||
AppOps(
|
||||
op = AppOpsManager.OP_MANAGE_MEDIA,
|
||||
setModeByUid = true,
|
||||
)
|
||||
)
|
||||
assertThat(listModel.permission).isEqualTo(Manifest.permission.MANAGE_MEDIA)
|
||||
assertThat(listModel.setModeByUid).isTrue()
|
||||
}
|
||||
}
|
@@ -29,6 +29,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import com.android.media.flags.Flags
|
||||
import com.android.settings.R
|
||||
import com.android.settings.testutils.FakeFeatureFactory
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.model.app.IAppOpsController
|
||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
@@ -74,9 +75,13 @@ class MediaRoutingControlTest {
|
||||
assertThat(listModel.pageTitleResId).isEqualTo(R.string.media_routing_control_title)
|
||||
assertThat(listModel.switchTitleResId).isEqualTo(R.string.allow_media_routing_control)
|
||||
assertThat(listModel.footerResId).isEqualTo(R.string.allow_media_routing_description)
|
||||
assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_MEDIA_ROUTING_CONTROL)
|
||||
assertThat(listModel.appOps).isEqualTo(
|
||||
AppOps(
|
||||
op = AppOpsManager.OP_MEDIA_ROUTING_CONTROL,
|
||||
setModeByUid = true,
|
||||
)
|
||||
)
|
||||
assertThat(listModel.permission).isEqualTo(Manifest.permission.MEDIA_ROUTING_CONTROL)
|
||||
assertThat(listModel.setModeByUid).isTrue()
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -223,13 +228,13 @@ class MediaRoutingControlTest {
|
||||
|
||||
private class FakeAppOpsController(fakeMode: Int) : IAppOpsController {
|
||||
|
||||
override val mode = MutableStateFlow(fakeMode)
|
||||
override val modeFlow = MutableStateFlow(fakeMode)
|
||||
|
||||
override fun setAllowed(allowed: Boolean) {
|
||||
mode.value = if (allowed) AppOpsManager.MODE_ALLOWED else AppOpsManager.MODE_ERRORED
|
||||
modeFlow.value = if (allowed) AppOpsManager.MODE_ALLOWED else AppOpsManager.MODE_ERRORED
|
||||
}
|
||||
|
||||
override fun getMode(): Int = mode.value
|
||||
override fun getMode(): Int = modeFlow.value
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
@@ -27,6 +27,7 @@ import android.os.DeadSystemRuntimeException
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import com.android.settings.R
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOpsController
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import kotlinx.coroutines.flow.first
|
||||
@@ -179,7 +180,7 @@ class PictureInPictureTest {
|
||||
appOpsController = AppOpsController(
|
||||
context = context,
|
||||
app = PICTURE_IN_PICTURE_APP,
|
||||
op = AppOpsManager.OP_PICTURE_IN_PICTURE,
|
||||
appOps = AppOps(AppOpsManager.OP_PICTURE_IN_PICTURE),
|
||||
),
|
||||
)
|
||||
|
||||
|
@@ -20,6 +20,7 @@ import android.app.AppOpsManager
|
||||
import android.content.Context
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
@@ -35,8 +36,12 @@ class TurnScreenOnAppsTest {
|
||||
assertThat(listModel.pageTitleResId).isEqualTo(com.android.settingslib.R.string.turn_screen_on_title)
|
||||
assertThat(listModel.switchTitleResId).isEqualTo(com.android.settingslib.R.string.allow_turn_screen_on)
|
||||
assertThat(listModel.footerResId).isEqualTo(com.android.settingslib.R.string.allow_turn_screen_on_description)
|
||||
assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_TURN_SCREEN_ON)
|
||||
assertThat(listModel.appOps).isEqualTo(
|
||||
AppOps(
|
||||
op = AppOpsManager.OP_TURN_SCREEN_ON,
|
||||
setModeByUid = true,
|
||||
)
|
||||
)
|
||||
assertThat(listModel.permission).isEqualTo(Manifest.permission.TURN_SCREEN_ON)
|
||||
assertThat(listModel.setModeByUid).isTrue()
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user