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

Commit fa48499e authored by Chaohui Wang's avatar Chaohui Wang Committed by Automerger Merge Worker
Browse files

Merge "Log app special permission change for SPA" into udc-dev am: 804214c1

parents ca5f3843 804214c1
Loading
Loading
Loading
Loading
+13 −0
Original line number Original line Diff line number Diff line
@@ -19,12 +19,14 @@ package com.android.settings.spa.app.specialaccess
import android.Manifest
import android.Manifest
import android.app.AlarmManager
import android.app.AlarmManager
import android.app.compat.CompatChanges
import android.app.compat.CompatChanges
import android.app.settings.SettingsEnums
import android.content.Context
import android.content.Context
import android.content.pm.ApplicationInfo
import android.content.pm.ApplicationInfo
import android.os.PowerExemptionManager
import android.os.PowerExemptionManager
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Composable
import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.runtime.livedata.observeAsState
import com.android.settings.R
import com.android.settings.R
import com.android.settings.overlay.FeatureFactory
import com.android.settingslib.spa.framework.compose.stateOf
import com.android.settingslib.spa.framework.compose.stateOf
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
@@ -85,6 +87,17 @@ class AlarmsAndRemindersAppListModel(


    override fun setAllowed(record: AlarmsAndRemindersAppRecord, newAllowed: Boolean) {
    override fun setAllowed(record: AlarmsAndRemindersAppRecord, newAllowed: Boolean) {
        record.controller.setAllowed(newAllowed)
        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(
    private fun createRecord(
+16 −0
Original line number Original line Diff line number Diff line
@@ -18,9 +18,12 @@ package com.android.settings.spa.app.specialaccess


import android.Manifest
import android.Manifest
import android.app.AppOpsManager
import android.app.AppOpsManager
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
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.TogglePermissionAppListProvider
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider


object AllFilesAccessAppListProvider : TogglePermissionAppListProvider {
object AllFilesAccessAppListProvider : TogglePermissionAppListProvider {
@@ -35,4 +38,17 @@ class AllFilesAccessListModel(context: Context) : AppOpPermissionListModel(conte
    override val appOp = AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE
    override val appOp = AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE
    override val permission = Manifest.permission.MANAGE_EXTERNAL_STORAGE
    override val permission = Manifest.permission.MANAGE_EXTERNAL_STORAGE
    override val setModeByUid = true
    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, "")
    }
}
}
+16 −0
Original line number Original line Diff line number Diff line
@@ -18,9 +18,12 @@ package com.android.settings.spa.app.specialaccess


import android.Manifest
import android.Manifest
import android.app.AppOpsManager
import android.app.AppOpsManager
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
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.TogglePermissionAppListProvider
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider


object DisplayOverOtherAppsAppListProvider : TogglePermissionAppListProvider {
object DisplayOverOtherAppsAppListProvider : TogglePermissionAppListProvider {
@@ -34,4 +37,17 @@ class DisplayOverOtherAppsListModel(context: Context) : AppOpPermissionListModel
    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 appOp = 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) {
        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, "")
    }
}
}
+18 −0
Original line number Original line Diff line number Diff line
@@ -18,9 +18,12 @@ package com.android.settings.spa.app.specialaccess


import android.Manifest
import android.Manifest
import android.app.AppOpsManager
import android.app.AppOpsManager
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
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.TogglePermissionAppListProvider
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider


object MediaManagementAppsAppListProvider : TogglePermissionAppListProvider {
object MediaManagementAppsAppListProvider : TogglePermissionAppListProvider {
@@ -35,4 +38,19 @@ class MediaManagementAppsListModel(context: Context) : AppOpPermissionListModel(
    override val appOp = AppOpsManager.OP_MANAGE_MEDIA
    override val appOp = AppOpsManager.OP_MANAGE_MEDIA
    override val permission = Manifest.permission.MANAGE_MEDIA
    override val permission = Manifest.permission.MANAGE_MEDIA
    override val setModeByUid = true
    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
+16 −0
Original line number Original line Diff line number Diff line
@@ -18,9 +18,12 @@ package com.android.settings.spa.app.specialaccess


import android.Manifest
import android.Manifest
import android.app.AppOpsManager
import android.app.AppOpsManager
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
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.TogglePermissionAppListProvider
import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider


object ModifySystemSettingsAppListProvider : TogglePermissionAppListProvider {
object ModifySystemSettingsAppListProvider : TogglePermissionAppListProvider {
@@ -34,4 +37,17 @@ class ModifySystemSettingsListModel(context: Context) : AppOpPermissionListModel
    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 appOp = 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) {
        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