Revert "Migrate AppOps" am: 19b01bd68b

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/27382787

Change-Id: Iaa26113d70e2ee8792aa75bc625b2c68bc50f81d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
ELIYAZ MOMIN
2024-05-17 14:52:17 +00:00
committed by Automerger Merge Worker
19 changed files with 48 additions and 95 deletions

View File

@@ -28,7 +28,6 @@ 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
@@ -117,7 +116,8 @@ class AlarmsAndRemindersAppListModel(
controller = AppOpsController(
context = context,
app = app,
appOps = APP_OPS,
op = AppOpsManager.OP_SCHEDULE_EXACT_ALARM,
setModeByUid = true,
),
)
}
@@ -136,11 +136,6 @@ 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. */

View File

@@ -22,7 +22,6 @@ 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
@@ -36,11 +35,9 @@ 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 appOps = AppOps(
op = AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE,
setModeByUid = true,
)
override val appOp = AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE
override val permission = Manifest.permission.MANAGE_EXTERNAL_STORAGE
override val setModeByUid = true
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
super.setAllowed(record, newAllowed)

View File

@@ -22,7 +22,6 @@ 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
@@ -36,7 +35,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 appOps = AppOps(AppOpsManager.OP_SYSTEM_ALERT_WINDOW)
override val appOp = AppOpsManager.OP_SYSTEM_ALERT_WINDOW
override val permission = Manifest.permission.SYSTEM_ALERT_WINDOW
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {

View File

@@ -20,6 +20,7 @@ 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.Process
@@ -27,7 +28,6 @@ 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
@@ -62,7 +62,12 @@ class InstallUnknownAppsListModel(private val context: Context) :
override fun transformItem(app: ApplicationInfo) =
InstallUnknownAppsRecord(
app = app,
appOpsController = AppOpsController(context = context, app = app, appOps = APP_OPS),
appOpsController =
AppOpsController(
context = context,
app = app,
op = OP_REQUEST_INSTALL_PACKAGES,
),
)
override fun filter(
@@ -87,8 +92,6 @@ 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>,

View File

@@ -22,7 +22,6 @@ 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
@@ -36,11 +35,9 @@ 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 appOps = AppOps(
op = AppOpsManager.OP_RUN_USER_INITIATED_JOBS,
setModeByUid = true,
)
override val appOp = AppOpsManager.OP_RUN_USER_INITIATED_JOBS
override val permission = Manifest.permission.RUN_USER_INITIATED_JOBS
override val setModeByUid = true
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
super.setAllowed(record, newAllowed)

View File

@@ -22,7 +22,6 @@ 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
@@ -36,11 +35,9 @@ 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 appOps = AppOps(
op = AppOpsManager.OP_MANAGE_MEDIA,
setModeByUid = true,
)
override val appOp = AppOpsManager.OP_MANAGE_MEDIA
override val permission = Manifest.permission.MANAGE_MEDIA
override val setModeByUid = true
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
super.setAllowed(record, newAllowed)

View File

@@ -25,7 +25,6 @@ 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
@@ -39,11 +38,9 @@ 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 appOps = AppOps(
op = AppOpsManager.OP_MEDIA_ROUTING_CONTROL,
setModeByUid = true,
)
override val appOp = AppOpsManager.OP_MEDIA_ROUTING_CONTROL
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) {

View File

@@ -22,7 +22,6 @@ 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
@@ -36,7 +35,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 appOps = AppOps(AppOpsManager.OP_WRITE_SETTINGS)
override val appOp = AppOpsManager.OP_WRITE_SETTINGS
override val permission = Manifest.permission.WRITE_SETTINGS
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {

View File

@@ -17,6 +17,7 @@
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
@@ -27,7 +28,6 @@ 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,7 +79,12 @@ class PictureInPictureListModel(private val context: Context) :
PictureInPictureRecord(
app = app,
isSupport = isSupport,
appOpsController = AppOpsController(context = context, app = app, appOps = APP_OPS),
appOpsController =
AppOpsController(
context = context,
app = app,
op = OP_PICTURE_IN_PICTURE,
),
)
override fun filter(userIdFlow: Flow<Int>, recordListFlow: Flow<List<PictureInPictureRecord>>) =
@@ -126,8 +131,6 @@ 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

View File

@@ -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,11 +35,9 @@ 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 appOps = AppOps(
op = AppOpsManager.OP_TURN_SCREEN_ON,
setModeByUid = true,
)
override val appOp = AppOpsManager.OP_TURN_SCREEN_ON
override val permission = Manifest.permission.TURN_SCREEN_ON
override val setModeByUid = true
override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
super.setAllowed(record, newAllowed)

View File

@@ -20,7 +20,6 @@ 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
@@ -33,9 +32,7 @@ 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 appOps = AppOps(
op = AppOpsManager.OP_USE_FULL_SCREEN_INTENT,
setModeByUid = true,
)
override val appOp = AppOpsManager.OP_USE_FULL_SCREEN_INTENT
override val permission = Manifest.permission.USE_FULL_SCREEN_INTENT
override val setModeByUid = true
}

View File

@@ -21,7 +21,6 @@ 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
@@ -40,13 +39,11 @@ 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 appOps = AppOps(
op = AppOpsManager.OP_CHANGE_WIFI_STATE,
modeForNotAllowed = MODE_IGNORED,
)
override val appOp = AppOpsManager.OP_CHANGE_WIFI_STATE
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
}

View File

@@ -269,7 +269,7 @@ class WifiControlAppListModelTest {
private class FakeAppOpsController(private val fakeMode: Int) : IAppOpsController {
var setAllowedCalledWith: Boolean? = null
override val modeFlow = flowOf(fakeMode)
override val mode = flowOf(fakeMode)
override fun setAllowed(allowed: Boolean) {
setAllowedCalledWith = allowed

View File

@@ -22,7 +22,6 @@ 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
@@ -38,12 +37,8 @@ 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.appOps).isEqualTo(
AppOps(
op = AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE,
setModeByUid = true,
)
)
assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE)
assertThat(listModel.permission).isEqualTo(Manifest.permission.MANAGE_EXTERNAL_STORAGE)
assertThat(listModel.setModeByUid).isTrue()
}
}

View File

@@ -23,7 +23,6 @@ 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
@@ -38,12 +37,8 @@ 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.appOps).isEqualTo(
AppOps(
op = AppOpsManager.OP_RUN_USER_INITIATED_JOBS,
setModeByUid = true,
)
)
assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_RUN_USER_INITIATED_JOBS)
assertThat(listModel.permission).isEqualTo(Manifest.permission.RUN_USER_INITIATED_JOBS)
assertThat(listModel.setModeByUid).isTrue()
}
}

View File

@@ -22,7 +22,6 @@ 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
@@ -38,12 +37,8 @@ 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.appOps).isEqualTo(
AppOps(
op = AppOpsManager.OP_MANAGE_MEDIA,
setModeByUid = true,
)
)
assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_MANAGE_MEDIA)
assertThat(listModel.permission).isEqualTo(Manifest.permission.MANAGE_MEDIA)
assertThat(listModel.setModeByUid).isTrue()
}
}

View File

@@ -29,7 +29,6 @@ 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
@@ -75,13 +74,9 @@ 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.appOps).isEqualTo(
AppOps(
op = AppOpsManager.OP_MEDIA_ROUTING_CONTROL,
setModeByUid = true,
)
)
assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_MEDIA_ROUTING_CONTROL)
assertThat(listModel.permission).isEqualTo(Manifest.permission.MEDIA_ROUTING_CONTROL)
assertThat(listModel.setModeByUid).isTrue()
}
@Test
@@ -228,13 +223,13 @@ class MediaRoutingControlTest {
private class FakeAppOpsController(fakeMode: Int) : IAppOpsController {
override val modeFlow = MutableStateFlow(fakeMode)
override val mode = MutableStateFlow(fakeMode)
override fun setAllowed(allowed: Boolean) {
modeFlow.value = if (allowed) AppOpsManager.MODE_ALLOWED else AppOpsManager.MODE_ERRORED
mode.value = if (allowed) AppOpsManager.MODE_ALLOWED else AppOpsManager.MODE_ERRORED
}
override fun getMode(): Int = modeFlow.value
override fun getMode(): Int = mode.value
}
companion object {

View File

@@ -27,7 +27,6 @@ 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
@@ -180,7 +179,7 @@ class PictureInPictureTest {
appOpsController = AppOpsController(
context = context,
app = PICTURE_IN_PICTURE_APP,
appOps = AppOps(AppOpsManager.OP_PICTURE_IN_PICTURE),
op = AppOpsManager.OP_PICTURE_IN_PICTURE,
),
)

View File

@@ -20,7 +20,6 @@ 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
@@ -36,12 +35,8 @@ 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.appOps).isEqualTo(
AppOps(
op = AppOpsManager.OP_TURN_SCREEN_ON,
setModeByUid = true,
)
)
assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_TURN_SCREEN_ON)
assertThat(listModel.permission).isEqualTo(Manifest.permission.TURN_SCREEN_ON)
assertThat(listModel.setModeByUid).isTrue()
}
}