Reapply "Migrate AppOps"
This reverts commit 19b01bd68b
.
Bug: 339846642
Test: manual - on Special app access
Change-Id: I000274ae9c725f848e1c8910120ba886fcc5be95
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.settings.overlay.FeatureFactory.Companion.featureFactory
|
||||||
import com.android.settingslib.R
|
import com.android.settingslib.R
|
||||||
import com.android.settingslib.spa.lifecycle.collectAsCallbackWithLifecycle
|
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.AppOpsController
|
||||||
import com.android.settingslib.spaprivileged.model.app.AppRecord
|
import com.android.settingslib.spaprivileged.model.app.AppRecord
|
||||||
import com.android.settingslib.spaprivileged.model.app.IPackageManagers
|
import com.android.settingslib.spaprivileged.model.app.IPackageManagers
|
||||||
@@ -116,8 +117,7 @@ class AlarmsAndRemindersAppListModel(
|
|||||||
controller = AppOpsController(
|
controller = AppOpsController(
|
||||||
context = context,
|
context = context,
|
||||||
app = app,
|
app = app,
|
||||||
op = AppOpsManager.OP_SCHEDULE_EXACT_ALARM,
|
appOps = APP_OPS,
|
||||||
setModeByUid = true,
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -136,6 +136,11 @@ class AlarmsAndRemindersAppListModel(
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
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
|
private const val PERMISSION: String = Manifest.permission.SCHEDULE_EXACT_ALARM
|
||||||
|
|
||||||
/** Checks whether [Manifest.permission.SCHEDULE_EXACT_ALARM] is enabled. */
|
/** Checks whether [Manifest.permission.SCHEDULE_EXACT_ALARM] is enabled. */
|
||||||
|
@@ -22,6 +22,7 @@ import android.app.settings.SettingsEnums
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
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.AppOpPermissionListModel
|
||||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
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 pageTitleResId = R.string.manage_external_storage_title
|
||||||
override val switchTitleResId = R.string.permit_manage_external_storage
|
override val switchTitleResId = R.string.permit_manage_external_storage
|
||||||
override val footerResId = R.string.allow_manage_external_storage_description
|
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 permission = Manifest.permission.MANAGE_EXTERNAL_STORAGE
|
||||||
override val setModeByUid = true
|
|
||||||
|
|
||||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||||
super.setAllowed(record, newAllowed)
|
super.setAllowed(record, newAllowed)
|
||||||
|
@@ -22,6 +22,7 @@ import android.app.settings.SettingsEnums
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
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.AppOpPermissionListModel
|
||||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
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 pageTitleResId = R.string.system_alert_window_settings
|
||||||
override val switchTitleResId = R.string.permit_draw_overlay
|
override val switchTitleResId = R.string.permit_draw_overlay
|
||||||
override val footerResId = R.string.allow_overlay_description
|
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 val permission = Manifest.permission.SYSTEM_ALERT_WINDOW
|
||||||
|
|
||||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||||
|
@@ -20,7 +20,6 @@ import android.Manifest
|
|||||||
import android.app.AppGlobals
|
import android.app.AppGlobals
|
||||||
import android.app.AppOpsManager
|
import android.app.AppOpsManager
|
||||||
import android.app.AppOpsManager.MODE_DEFAULT
|
import android.app.AppOpsManager.MODE_DEFAULT
|
||||||
import android.app.AppOpsManager.OP_REQUEST_INSTALL_PACKAGES
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.pm.ApplicationInfo
|
import android.content.pm.ApplicationInfo
|
||||||
import android.os.Process
|
import android.os.Process
|
||||||
@@ -28,6 +27,7 @@ import android.os.UserManager
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settingslib.spa.lifecycle.collectAsCallbackWithLifecycle
|
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.AppOpsController
|
||||||
import com.android.settingslib.spaprivileged.model.app.AppRecord
|
import com.android.settingslib.spaprivileged.model.app.AppRecord
|
||||||
import com.android.settingslib.spaprivileged.model.app.userId
|
import com.android.settingslib.spaprivileged.model.app.userId
|
||||||
@@ -62,12 +62,7 @@ class InstallUnknownAppsListModel(private val context: Context) :
|
|||||||
override fun transformItem(app: ApplicationInfo) =
|
override fun transformItem(app: ApplicationInfo) =
|
||||||
InstallUnknownAppsRecord(
|
InstallUnknownAppsRecord(
|
||||||
app = app,
|
app = app,
|
||||||
appOpsController =
|
appOpsController = AppOpsController(context = context, app = app, appOps = APP_OPS),
|
||||||
AppOpsController(
|
|
||||||
context = context,
|
|
||||||
app = app,
|
|
||||||
op = OP_REQUEST_INSTALL_PACKAGES,
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun filter(
|
override fun filter(
|
||||||
@@ -92,6 +87,8 @@ class InstallUnknownAppsListModel(private val context: Context) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
private val APP_OPS = AppOps(AppOpsManager.OP_REQUEST_INSTALL_PACKAGES)
|
||||||
|
|
||||||
private fun isChangeable(
|
private fun isChangeable(
|
||||||
record: InstallUnknownAppsRecord,
|
record: InstallUnknownAppsRecord,
|
||||||
potentialPackageNames: Set<String>,
|
potentialPackageNames: Set<String>,
|
||||||
|
@@ -22,6 +22,7 @@ import android.app.settings.SettingsEnums
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
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.AppOpPermissionListModel
|
||||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
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 pageTitleResId = R.string.long_background_tasks_title
|
||||||
override val switchTitleResId = R.string.long_background_tasks_switch_title
|
override val switchTitleResId = R.string.long_background_tasks_switch_title
|
||||||
override val footerResId = R.string.long_background_tasks_footer_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 permission = Manifest.permission.RUN_USER_INITIATED_JOBS
|
||||||
override val setModeByUid = true
|
|
||||||
|
|
||||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||||
super.setAllowed(record, newAllowed)
|
super.setAllowed(record, newAllowed)
|
||||||
|
@@ -22,6 +22,7 @@ import android.app.settings.SettingsEnums
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
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.AppOpPermissionListModel
|
||||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
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 pageTitleResId = R.string.media_management_apps_title
|
||||||
override val switchTitleResId = R.string.media_management_apps_toggle_label
|
override val switchTitleResId = R.string.media_management_apps_toggle_label
|
||||||
override val footerResId = R.string.media_management_apps_description
|
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 permission = Manifest.permission.MANAGE_MEDIA
|
||||||
override val setModeByUid = true
|
|
||||||
|
|
||||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||||
super.setAllowed(record, newAllowed)
|
super.setAllowed(record, newAllowed)
|
||||||
|
@@ -25,6 +25,7 @@ import android.content.Context
|
|||||||
import com.android.media.flags.Flags;
|
import com.android.media.flags.Flags;
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
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.AppOpPermissionListModel
|
||||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
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 pageTitleResId = R.string.media_routing_control_title
|
||||||
override val switchTitleResId = R.string.allow_media_routing_control
|
override val switchTitleResId = R.string.allow_media_routing_control
|
||||||
override val footerResId = R.string.allow_media_routing_description
|
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 permission = Manifest.permission.MEDIA_ROUTING_CONTROL
|
||||||
override val setModeByUid = true
|
|
||||||
private val roleManager = context.getSystemService(RoleManager::class.java)
|
private val roleManager = context.getSystemService(RoleManager::class.java)
|
||||||
|
|
||||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||||
|
@@ -22,6 +22,7 @@ import android.app.settings.SettingsEnums
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
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.AppOpPermissionListModel
|
||||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
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 pageTitleResId = R.string.write_system_settings
|
||||||
override val switchTitleResId = R.string.permit_write_settings
|
override val switchTitleResId = R.string.permit_write_settings
|
||||||
override val footerResId = R.string.write_settings_description
|
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 val permission = Manifest.permission.WRITE_SETTINGS
|
||||||
|
|
||||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||||
|
@@ -17,7 +17,6 @@
|
|||||||
package com.android.settings.spa.app.specialaccess
|
package com.android.settings.spa.app.specialaccess
|
||||||
|
|
||||||
import android.app.AppOpsManager
|
import android.app.AppOpsManager
|
||||||
import android.app.AppOpsManager.OP_PICTURE_IN_PICTURE
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.pm.ActivityInfo
|
import android.content.pm.ActivityInfo
|
||||||
import android.content.pm.ApplicationInfo
|
import android.content.pm.ApplicationInfo
|
||||||
@@ -28,6 +27,7 @@ import android.util.Log
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settingslib.spa.lifecycle.collectAsCallbackWithLifecycle
|
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.AppOpsController
|
||||||
import com.android.settingslib.spaprivileged.model.app.AppRecord
|
import com.android.settingslib.spaprivileged.model.app.AppRecord
|
||||||
import com.android.settingslib.spaprivileged.model.app.installed
|
import com.android.settingslib.spaprivileged.model.app.installed
|
||||||
@@ -79,12 +79,7 @@ class PictureInPictureListModel(private val context: Context) :
|
|||||||
PictureInPictureRecord(
|
PictureInPictureRecord(
|
||||||
app = app,
|
app = app,
|
||||||
isSupport = isSupport,
|
isSupport = isSupport,
|
||||||
appOpsController =
|
appOpsController = AppOpsController(context = context, app = app, appOps = APP_OPS),
|
||||||
AppOpsController(
|
|
||||||
context = context,
|
|
||||||
app = app,
|
|
||||||
op = OP_PICTURE_IN_PICTURE,
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun filter(userIdFlow: Flow<Int>, recordListFlow: Flow<List<PictureInPictureRecord>>) =
|
override fun filter(userIdFlow: Flow<Int>, recordListFlow: Flow<List<PictureInPictureRecord>>) =
|
||||||
@@ -131,6 +126,8 @@ class PictureInPictureListModel(private val context: Context) :
|
|||||||
companion object {
|
companion object {
|
||||||
private const val TAG = "PictureInPictureListModel"
|
private const val TAG = "PictureInPictureListModel"
|
||||||
|
|
||||||
|
private val APP_OPS = AppOps(AppOpsManager.OP_PICTURE_IN_PICTURE)
|
||||||
|
|
||||||
private fun PackageInfo.supportsPictureInPicture() =
|
private fun PackageInfo.supportsPictureInPicture() =
|
||||||
activities?.any(ActivityInfo::supportsPictureInPicture) ?: false
|
activities?.any(ActivityInfo::supportsPictureInPicture) ?: false
|
||||||
|
|
||||||
|
@@ -20,8 +20,8 @@ import android.Manifest
|
|||||||
import android.app.AppOpsManager
|
import android.app.AppOpsManager
|
||||||
import android.app.settings.SettingsEnums
|
import android.app.settings.SettingsEnums
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.android.settings.R
|
|
||||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
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.AppOpPermissionListModel
|
||||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
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 pageTitleResId = com.android.settingslib.R.string.turn_screen_on_title
|
||||||
override val switchTitleResId = com.android.settingslib.R.string.allow_turn_screen_on
|
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 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 permission = Manifest.permission.TURN_SCREEN_ON
|
||||||
override val setModeByUid = true
|
|
||||||
|
|
||||||
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
|
||||||
super.setAllowed(record, newAllowed)
|
super.setAllowed(record, newAllowed)
|
||||||
|
@@ -20,6 +20,7 @@ import android.Manifest
|
|||||||
import android.app.AppOpsManager
|
import android.app.AppOpsManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.android.settings.R
|
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.AppOpPermissionListModel
|
||||||
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
|
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 pageTitleResId = R.string.full_screen_intent_title
|
||||||
override val switchTitleResId = R.string.permit_full_screen_intent
|
override val switchTitleResId = R.string.permit_full_screen_intent
|
||||||
override val footerResId = R.string.footer_description_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 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.app.AppOpsManager.MODE_IGNORED
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.android.settings.R
|
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.IPackageManagers
|
||||||
import com.android.settingslib.spaprivileged.model.app.PackageManagers
|
import com.android.settingslib.spaprivileged.model.app.PackageManagers
|
||||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
|
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 switchTitleResId = R.string.change_wifi_state_app_detail_switch
|
||||||
override val footerResId = R.string.change_wifi_state_app_detail_summary
|
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
|
override val permission = Manifest.permission.CHANGE_WIFI_STATE
|
||||||
|
|
||||||
/** NETWORK_SETTINGS permission trumps CHANGE_WIFI_CONFIG. */
|
/** NETWORK_SETTINGS permission trumps CHANGE_WIFI_CONFIG. */
|
||||||
override val broaderPermission = Manifest.permission.NETWORK_SETTINGS
|
override val broaderPermission = Manifest.permission.NETWORK_SETTINGS
|
||||||
override val permissionHasAppOpFlag = false
|
override val permissionHasAppOpFlag = false
|
||||||
override val modeForNotAllowed = MODE_IGNORED
|
|
||||||
}
|
}
|
||||||
|
@@ -269,7 +269,7 @@ class WifiControlAppListModelTest {
|
|||||||
private class FakeAppOpsController(private val fakeMode: Int) : IAppOpsController {
|
private class FakeAppOpsController(private val fakeMode: Int) : IAppOpsController {
|
||||||
var setAllowedCalledWith: Boolean? = null
|
var setAllowedCalledWith: Boolean? = null
|
||||||
|
|
||||||
override val mode = flowOf(fakeMode)
|
override val modeFlow = flowOf(fakeMode)
|
||||||
|
|
||||||
override fun setAllowed(allowed: Boolean) {
|
override fun setAllowed(allowed: Boolean) {
|
||||||
setAllowedCalledWith = allowed
|
setAllowedCalledWith = allowed
|
||||||
|
@@ -22,6 +22,7 @@ import android.content.Context
|
|||||||
import androidx.test.core.app.ApplicationProvider
|
import androidx.test.core.app.ApplicationProvider
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
@@ -37,8 +38,12 @@ class AllFilesAccessTest {
|
|||||||
assertThat(listModel.pageTitleResId).isEqualTo(R.string.manage_external_storage_title)
|
assertThat(listModel.pageTitleResId).isEqualTo(R.string.manage_external_storage_title)
|
||||||
assertThat(listModel.switchTitleResId).isEqualTo(R.string.permit_manage_external_storage)
|
assertThat(listModel.switchTitleResId).isEqualTo(R.string.permit_manage_external_storage)
|
||||||
assertThat(listModel.footerResId).isEqualTo(R.string.allow_manage_external_storage_description)
|
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.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 androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
|
||||||
@@ -37,8 +38,12 @@ class LongBackgroundTasksAppsTest {
|
|||||||
assertThat(listModel.pageTitleResId).isEqualTo(R.string.long_background_tasks_title)
|
assertThat(listModel.pageTitleResId).isEqualTo(R.string.long_background_tasks_title)
|
||||||
assertThat(listModel.switchTitleResId).isEqualTo(R.string.long_background_tasks_switch_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.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.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.core.app.ApplicationProvider
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
@@ -37,8 +38,12 @@ class MediaManagementAppsTest {
|
|||||||
assertThat(listModel.pageTitleResId).isEqualTo(R.string.media_management_apps_title)
|
assertThat(listModel.pageTitleResId).isEqualTo(R.string.media_management_apps_title)
|
||||||
assertThat(listModel.switchTitleResId).isEqualTo(R.string.media_management_apps_toggle_label)
|
assertThat(listModel.switchTitleResId).isEqualTo(R.string.media_management_apps_toggle_label)
|
||||||
assertThat(listModel.footerResId).isEqualTo(R.string.media_management_apps_description)
|
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.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.media.flags.Flags
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.testutils.FakeFeatureFactory
|
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.model.app.IAppOpsController
|
||||||
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
|
||||||
import com.google.common.truth.Truth.assertThat
|
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.pageTitleResId).isEqualTo(R.string.media_routing_control_title)
|
||||||
assertThat(listModel.switchTitleResId).isEqualTo(R.string.allow_media_routing_control)
|
assertThat(listModel.switchTitleResId).isEqualTo(R.string.allow_media_routing_control)
|
||||||
assertThat(listModel.footerResId).isEqualTo(R.string.allow_media_routing_description)
|
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.permission).isEqualTo(Manifest.permission.MEDIA_ROUTING_CONTROL)
|
||||||
assertThat(listModel.setModeByUid).isTrue()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -223,13 +228,13 @@ class MediaRoutingControlTest {
|
|||||||
|
|
||||||
private class FakeAppOpsController(fakeMode: Int) : IAppOpsController {
|
private class FakeAppOpsController(fakeMode: Int) : IAppOpsController {
|
||||||
|
|
||||||
override val mode = MutableStateFlow(fakeMode)
|
override val modeFlow = MutableStateFlow(fakeMode)
|
||||||
|
|
||||||
override fun setAllowed(allowed: Boolean) {
|
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 {
|
companion object {
|
||||||
|
@@ -27,6 +27,7 @@ import android.os.DeadSystemRuntimeException
|
|||||||
import androidx.test.core.app.ApplicationProvider
|
import androidx.test.core.app.ApplicationProvider
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||||
import com.android.settingslib.spaprivileged.model.app.AppOpsController
|
import com.android.settingslib.spaprivileged.model.app.AppOpsController
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.flow.first
|
import kotlinx.coroutines.flow.first
|
||||||
@@ -179,7 +180,7 @@ class PictureInPictureTest {
|
|||||||
appOpsController = AppOpsController(
|
appOpsController = AppOpsController(
|
||||||
context = context,
|
context = context,
|
||||||
app = PICTURE_IN_PICTURE_APP,
|
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 android.content.Context
|
||||||
import androidx.test.core.app.ApplicationProvider
|
import androidx.test.core.app.ApplicationProvider
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
|
import com.android.settingslib.spaprivileged.model.app.AppOps
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
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.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.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.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.permission).isEqualTo(Manifest.permission.TURN_SCREEN_ON)
|
||||||
assertThat(listModel.setModeByUid).isTrue()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user