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

Commit af9bbb9f authored by Faye Yan's avatar Faye Yan Committed by Android (Google) Code Review
Browse files

Merge "Filter out apps that are not pre-granted with voice activation...

Merge "Filter out apps that are not pre-granted with voice activation permission for voice activation apps." into main
parents a1903353 3c533755
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -20,14 +20,18 @@ import android.Manifest
import android.app.AppOpsManager
import android.app.settings.SettingsEnums
import android.content.Context
import android.content.res.Resources
import com.android.settings.R
import com.android.settings.overlay.FeatureFactory
import com.android.settingslib.spaprivileged.model.app.PackageManagers.hasGrantPermission
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider


/**
 * This class builds an App List under voice activation apps and the individual page which
 * allows the user to toggle voice activation related permissions on / off for the apps displayed
 * in the list.
 */
object VoiceActivationAppsListProvider : TogglePermissionAppListProvider {
    override val permissionType = "VoiceActivationApps"
    override fun createModel(context: Context) = VoiceActivationAppsListModel(context)
@@ -46,6 +50,9 @@ class VoiceActivationAppsListModel(context: Context) : AppOpPermissionListModel(
        logPermissionChange(newAllowed)
    }

    override fun isChangeable(record: AppOpPermissionRecord): Boolean =
        super.isChangeable(record) && record.app.hasGrantPermission(permission)

    private fun logPermissionChange(newAllowed: Boolean) {
        val category = when {
            newAllowed -> SettingsEnums.APP_SPECIAL_PERMISSION_RECEIVE_SANDBOX_TRIGGER_AUDIO_ALLOW