diff --git a/src/com/android/settings/spa/app/specialaccess/AlarmsAndRemindersAppList.kt b/src/com/android/settings/spa/app/specialaccess/AlarmsAndRemindersAppList.kt index 9b363358fc8..527c6d9bb96 100644 --- a/src/com/android/settings/spa/app/specialaccess/AlarmsAndRemindersAppList.kt +++ b/src/com/android/settings/spa/app/specialaccess/AlarmsAndRemindersAppList.kt @@ -19,12 +19,14 @@ package com.android.settings.spa.app.specialaccess import android.Manifest import android.app.AlarmManager import android.app.compat.CompatChanges +import android.app.settings.SettingsEnums import android.content.Context import android.content.pm.ApplicationInfo import android.os.PowerExemptionManager import androidx.compose.runtime.Composable import androidx.compose.runtime.livedata.observeAsState import com.android.settings.R +import com.android.settings.overlay.FeatureFactory import com.android.settingslib.spa.framework.compose.stateOf import com.android.settingslib.spaprivileged.model.app.AppRecord import com.android.settingslib.spaprivileged.model.app.IPackageManagers @@ -85,6 +87,17 @@ class AlarmsAndRemindersAppListModel( override fun setAllowed(record: AlarmsAndRemindersAppRecord, newAllowed: Boolean) { record.controller.setAllowed(newAllowed) + logPermissionChange(newAllowed) + } + + private fun logPermissionChange(newAllowed: Boolean) { + FeatureFactory.getFactory(context).metricsFeatureProvider.action( + SettingsEnums.PAGE_UNKNOWN, + SettingsEnums.ACTION_ALARMS_AND_REMINDERS_TOGGLE, + SettingsEnums.ALARMS_AND_REMINDERS, + "", + if (newAllowed) 1 else 0 + ) } private fun createRecord( diff --git a/src/com/android/settings/spa/app/specialaccess/AllFilesAccess.kt b/src/com/android/settings/spa/app/specialaccess/AllFilesAccess.kt index 6466e038006..16520fad635 100644 --- a/src/com/android/settings/spa/app/specialaccess/AllFilesAccess.kt +++ b/src/com/android/settings/spa/app/specialaccess/AllFilesAccess.kt @@ -18,9 +18,12 @@ package com.android.settings.spa.app.specialaccess 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 import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel +import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider object AllFilesAccessAppListProvider : TogglePermissionAppListProvider { @@ -35,4 +38,17 @@ class AllFilesAccessListModel(context: Context) : AppOpPermissionListModel(conte 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) + logPermissionChange(newAllowed) + } + + private fun logPermissionChange(newAllowed: Boolean) { + val category = when { + newAllowed -> SettingsEnums.APP_SPECIAL_PERMISSION_MANAGE_EXT_STRG_ALLOW + else -> SettingsEnums.APP_SPECIAL_PERMISSION_MANAGE_EXT_STRG_DENY + } + FeatureFactory.getFactory(context).metricsFeatureProvider.action(context, category, "") + } } diff --git a/src/com/android/settings/spa/app/specialaccess/DisplayOverOtherApps.kt b/src/com/android/settings/spa/app/specialaccess/DisplayOverOtherApps.kt index d3cd2b506e9..7812675dbe9 100644 --- a/src/com/android/settings/spa/app/specialaccess/DisplayOverOtherApps.kt +++ b/src/com/android/settings/spa/app/specialaccess/DisplayOverOtherApps.kt @@ -18,9 +18,12 @@ package com.android.settings.spa.app.specialaccess 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 import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel +import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider object DisplayOverOtherAppsAppListProvider : TogglePermissionAppListProvider { @@ -34,4 +37,17 @@ class DisplayOverOtherAppsListModel(context: Context) : AppOpPermissionListModel override val footerResId = R.string.allow_overlay_description override val appOp = AppOpsManager.OP_SYSTEM_ALERT_WINDOW override val permission = Manifest.permission.SYSTEM_ALERT_WINDOW + + override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) { + super.setAllowed(record, newAllowed) + logPermissionChange(newAllowed) + } + + private fun logPermissionChange(newAllowed: Boolean) { + val category = when { + newAllowed -> SettingsEnums.APP_SPECIAL_PERMISSION_APPDRAW_ALLOW + else -> SettingsEnums.APP_SPECIAL_PERMISSION_APPDRAW_DENY + } + FeatureFactory.getFactory(context).metricsFeatureProvider.action(context, category, "") + } } diff --git a/src/com/android/settings/spa/app/specialaccess/MediaManagementApps.kt b/src/com/android/settings/spa/app/specialaccess/MediaManagementApps.kt index 6c7678a0629..e8935e64819 100644 --- a/src/com/android/settings/spa/app/specialaccess/MediaManagementApps.kt +++ b/src/com/android/settings/spa/app/specialaccess/MediaManagementApps.kt @@ -18,9 +18,12 @@ package com.android.settings.spa.app.specialaccess 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 import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel +import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider object MediaManagementAppsAppListProvider : TogglePermissionAppListProvider { @@ -35,4 +38,19 @@ class MediaManagementAppsListModel(context: Context) : AppOpPermissionListModel( 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) + logPermissionChange(newAllowed) + } + + private fun logPermissionChange(newAllowed: Boolean) { + FeatureFactory.getFactory(context).metricsFeatureProvider.action( + SettingsEnums.PAGE_UNKNOWN, + SettingsEnums.ACTION_MEDIA_MANAGEMENT_APPS_TOGGLE, + SettingsEnums.MEDIA_MANAGEMENT_APPS, + "", + if (newAllowed) 1 else 0 + ) + } } \ No newline at end of file diff --git a/src/com/android/settings/spa/app/specialaccess/ModifySystemSettings.kt b/src/com/android/settings/spa/app/specialaccess/ModifySystemSettings.kt index 9a70871b1e2..668cc8cc129 100644 --- a/src/com/android/settings/spa/app/specialaccess/ModifySystemSettings.kt +++ b/src/com/android/settings/spa/app/specialaccess/ModifySystemSettings.kt @@ -18,9 +18,12 @@ package com.android.settings.spa.app.specialaccess 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 import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel +import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider object ModifySystemSettingsAppListProvider : TogglePermissionAppListProvider { @@ -34,4 +37,17 @@ class ModifySystemSettingsListModel(context: Context) : AppOpPermissionListModel override val footerResId = R.string.write_settings_description override val appOp = AppOpsManager.OP_WRITE_SETTINGS override val permission = Manifest.permission.WRITE_SETTINGS + + override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) { + super.setAllowed(record, newAllowed) + logPermissionChange(newAllowed) + } + + private fun logPermissionChange(newAllowed: Boolean) { + val category = when { + newAllowed -> SettingsEnums.APP_SPECIAL_PERMISSION_SETTINGS_CHANGE_ALLOW + else -> SettingsEnums.APP_SPECIAL_PERMISSION_SETTINGS_CHANGE_DENY + } + FeatureFactory.getFactory(context).metricsFeatureProvider.action(context, category, "") + } } \ No newline at end of file