Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4573df2a authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Migrate AppOps

Bug: 339846642
Test: manual - on Special app access
Change-Id: I988bdf85036478d8e6d87a3b5a1a46a35df38422
parent 6a2de378
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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. */
+5 −2
Original line number Diff line number Diff line
@@ -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)
+2 −1
Original line number Diff line number Diff line
@@ -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) {
+4 −7
Original line number Diff line number Diff line
@@ -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>,
+5 −2
Original line number Diff line number Diff line
@@ -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)
Loading