Merge "[Catalyst] Implement metrics/tags for Settings Catalyst" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
50e464f3da
@@ -15,13 +15,16 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.settings.accessibility
|
package com.android.settings.accessibility
|
||||||
|
|
||||||
|
import android.app.settings.SettingsEnums.ACTION_VIBRATION_HAPTICS
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.VibrationAttributes
|
import android.os.VibrationAttributes
|
||||||
import android.os.Vibrator
|
import android.os.Vibrator
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import android.widget.CompoundButton
|
import android.widget.CompoundButton
|
||||||
import android.widget.CompoundButton.OnCheckedChangeListener
|
import android.widget.CompoundButton.OnCheckedChangeListener
|
||||||
|
import com.android.settings.PreferenceActionMetricsProvider
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settings.contract.KEY_VIBRATION_HAPTICS
|
||||||
import com.android.settingslib.datastore.KeyValueStore
|
import com.android.settingslib.datastore.KeyValueStore
|
||||||
import com.android.settingslib.datastore.KeyedObservableDelegate
|
import com.android.settingslib.datastore.KeyedObservableDelegate
|
||||||
import com.android.settingslib.datastore.SettingsStore
|
import com.android.settingslib.datastore.SettingsStore
|
||||||
@@ -39,6 +42,7 @@ class VibrationMainSwitchPreference :
|
|||||||
key = Settings.System.VIBRATE_ON,
|
key = Settings.System.VIBRATE_ON,
|
||||||
title = R.string.accessibility_vibration_primary_switch_title,
|
title = R.string.accessibility_vibration_primary_switch_title,
|
||||||
),
|
),
|
||||||
|
PreferenceActionMetricsProvider,
|
||||||
PreferenceLifecycleProvider,
|
PreferenceLifecycleProvider,
|
||||||
OnCheckedChangeListener {
|
OnCheckedChangeListener {
|
||||||
override val keywords: Int
|
override val keywords: Int
|
||||||
@@ -46,6 +50,11 @@ class VibrationMainSwitchPreference :
|
|||||||
|
|
||||||
lateinit var vibrator: Vibrator
|
lateinit var vibrator: Vibrator
|
||||||
|
|
||||||
|
override val preferenceActionMetrics: Int
|
||||||
|
get() = ACTION_VIBRATION_HAPTICS
|
||||||
|
|
||||||
|
override fun tags(context: Context) = arrayOf(KEY_VIBRATION_HAPTICS)
|
||||||
|
|
||||||
override fun storage(context: Context): KeyValueStore =
|
override fun storage(context: Context): KeyValueStore =
|
||||||
VibrationMainSwitchToggleStorage(SettingsSystemStore.get(context))
|
VibrationMainSwitchToggleStorage(SettingsSystemStore.get(context))
|
||||||
|
|
||||||
|
@@ -16,12 +16,14 @@
|
|||||||
|
|
||||||
package com.android.settings.display
|
package com.android.settings.display
|
||||||
|
|
||||||
|
import android.app.settings.SettingsEnums.ACTION_AMBIENT_DISPLAY_ALWAYS_ON
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.hardware.display.AmbientDisplayConfiguration
|
import android.hardware.display.AmbientDisplayConfiguration
|
||||||
import android.os.SystemProperties
|
import android.os.SystemProperties
|
||||||
import android.os.UserHandle
|
import android.os.UserHandle
|
||||||
import android.os.UserManager
|
import android.os.UserManager
|
||||||
import android.provider.Settings.Secure.DOZE_ALWAYS_ON
|
import android.provider.Settings.Secure.DOZE_ALWAYS_ON
|
||||||
|
import com.android.settings.PreferenceActionMetricsProvider
|
||||||
import com.android.settings.PreferenceRestrictionMixin
|
import com.android.settings.PreferenceRestrictionMixin
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.contract.KEY_AMBIENT_DISPLAY_ALWAYS_ON
|
import com.android.settings.contract.KEY_AMBIENT_DISPLAY_ALWAYS_ON
|
||||||
@@ -41,6 +43,7 @@ import com.android.settingslib.metadata.SwitchPreference
|
|||||||
// LINT.IfChange
|
// LINT.IfChange
|
||||||
class AmbientDisplayAlwaysOnPreference :
|
class AmbientDisplayAlwaysOnPreference :
|
||||||
SwitchPreference(KEY, R.string.doze_always_on_title, R.string.doze_always_on_summary),
|
SwitchPreference(KEY, R.string.doze_always_on_title, R.string.doze_always_on_summary),
|
||||||
|
PreferenceActionMetricsProvider,
|
||||||
PreferenceAvailabilityProvider,
|
PreferenceAvailabilityProvider,
|
||||||
PreferenceSummaryProvider,
|
PreferenceSummaryProvider,
|
||||||
PreferenceRestrictionMixin {
|
PreferenceRestrictionMixin {
|
||||||
@@ -48,6 +51,11 @@ class AmbientDisplayAlwaysOnPreference :
|
|||||||
override val keywords: Int
|
override val keywords: Int
|
||||||
get() = R.string.keywords_always_show_time_info
|
get() = R.string.keywords_always_show_time_info
|
||||||
|
|
||||||
|
override val preferenceActionMetrics: Int
|
||||||
|
get() = ACTION_AMBIENT_DISPLAY_ALWAYS_ON
|
||||||
|
|
||||||
|
override fun tags(context: Context) = arrayOf(KEY_AMBIENT_DISPLAY_ALWAYS_ON)
|
||||||
|
|
||||||
override val restrictionKeys: Array<String>
|
override val restrictionKeys: Array<String>
|
||||||
get() = arrayOf(UserManager.DISALLOW_AMBIENT_DISPLAY)
|
get() = arrayOf(UserManager.DISALLOW_AMBIENT_DISPLAY)
|
||||||
|
|
||||||
|
@@ -15,30 +15,32 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.settings.display
|
package com.android.settings.display
|
||||||
|
|
||||||
import android.app.settings.SettingsEnums
|
import android.app.settings.SettingsEnums.OPEN_BATTERY_PERCENTAGE
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import androidx.preference.Preference
|
import com.android.settings.PreferenceActionMetricsProvider
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.Utils
|
import com.android.settings.Utils
|
||||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
import com.android.settings.contract.KEY_BATTERY_PERCENTAGE
|
||||||
import com.android.settingslib.datastore.KeyValueStore
|
import com.android.settingslib.datastore.KeyValueStore
|
||||||
import com.android.settingslib.datastore.KeyedObservableDelegate
|
import com.android.settingslib.datastore.KeyedObservableDelegate
|
||||||
import com.android.settingslib.datastore.SettingsStore
|
import com.android.settingslib.datastore.SettingsStore
|
||||||
import com.android.settingslib.datastore.SettingsSystemStore
|
import com.android.settingslib.datastore.SettingsSystemStore
|
||||||
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
|
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
|
||||||
import com.android.settingslib.metadata.PreferenceMetadata
|
|
||||||
import com.android.settingslib.metadata.ReadWritePermit
|
import com.android.settingslib.metadata.ReadWritePermit
|
||||||
import com.android.settingslib.metadata.SensitivityLevel
|
import com.android.settingslib.metadata.SensitivityLevel
|
||||||
import com.android.settingslib.metadata.SwitchPreference
|
import com.android.settingslib.metadata.SwitchPreference
|
||||||
import com.android.settingslib.preference.SwitchPreferenceBinding
|
|
||||||
|
|
||||||
// LINT.IfChange
|
// LINT.IfChange
|
||||||
class BatteryPercentageSwitchPreference :
|
class BatteryPercentageSwitchPreference :
|
||||||
SwitchPreference(KEY, R.string.battery_percentage, R.string.battery_percentage_description),
|
SwitchPreference(KEY, R.string.battery_percentage, R.string.battery_percentage_description),
|
||||||
SwitchPreferenceBinding,
|
PreferenceActionMetricsProvider,
|
||||||
PreferenceAvailabilityProvider,
|
PreferenceAvailabilityProvider {
|
||||||
Preference.OnPreferenceChangeListener {
|
|
||||||
|
override val preferenceActionMetrics: Int
|
||||||
|
get() = OPEN_BATTERY_PERCENTAGE
|
||||||
|
|
||||||
|
override fun tags(context: Context) = arrayOf(KEY_BATTERY_PERCENTAGE)
|
||||||
|
|
||||||
override fun storage(context: Context): KeyValueStore =
|
override fun storage(context: Context): KeyValueStore =
|
||||||
BatteryPercentageStorage(context, SettingsSystemStore.get(context))
|
BatteryPercentageStorage(context, SettingsSystemStore.get(context))
|
||||||
@@ -66,22 +68,6 @@ class BatteryPercentageSwitchPreference :
|
|||||||
override val sensitivityLevel
|
override val sensitivityLevel
|
||||||
get() = SensitivityLevel.NO_SENSITIVITY
|
get() = SensitivityLevel.NO_SENSITIVITY
|
||||||
|
|
||||||
override fun bind(preference: Preference, metadata: PreferenceMetadata) {
|
|
||||||
super.bind(preference, metadata)
|
|
||||||
preference.onPreferenceChangeListener = this
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {
|
|
||||||
val showPercentage = newValue as Boolean
|
|
||||||
|
|
||||||
featureFactory.metricsFeatureProvider.action(
|
|
||||||
preference.context,
|
|
||||||
SettingsEnums.OPEN_BATTERY_PERCENTAGE,
|
|
||||||
showPercentage,
|
|
||||||
)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
private class BatteryPercentageStorage(
|
private class BatteryPercentageStorage(
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
package com.android.settings.display
|
package com.android.settings.display
|
||||||
|
|
||||||
import android.app.ActivityOptions
|
import android.app.ActivityOptions
|
||||||
|
import android.app.settings.SettingsEnums.ACTION_BRIGHTNESS_LEVEL
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.Intent.ACTION_SHOW_BRIGHTNESS_DIALOG
|
import android.content.Intent.ACTION_SHOW_BRIGHTNESS_DIALOG
|
||||||
@@ -26,9 +27,11 @@ import android.hardware.display.DisplayManager.DisplayListener
|
|||||||
import android.os.UserManager
|
import android.os.UserManager
|
||||||
import android.provider.Settings.System
|
import android.provider.Settings.System
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
|
import com.android.settings.PreferenceActionMetricsProvider
|
||||||
import com.android.settings.PreferenceRestrictionMixin
|
import com.android.settings.PreferenceRestrictionMixin
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.Utils
|
import com.android.settings.Utils
|
||||||
|
import com.android.settings.contract.KEY_BRIGHTNESS_LEVEL
|
||||||
import com.android.settings.core.SettingsBaseActivity
|
import com.android.settings.core.SettingsBaseActivity
|
||||||
import com.android.settingslib.RestrictedPreference
|
import com.android.settingslib.RestrictedPreference
|
||||||
import com.android.settingslib.datastore.AbstractKeyedDataObservable
|
import com.android.settingslib.datastore.AbstractKeyedDataObservable
|
||||||
@@ -56,6 +59,7 @@ class BrightnessLevelPreference :
|
|||||||
IntRangeValuePreference,
|
IntRangeValuePreference,
|
||||||
PreferenceBinding,
|
PreferenceBinding,
|
||||||
PreferenceRestrictionMixin,
|
PreferenceRestrictionMixin,
|
||||||
|
PreferenceActionMetricsProvider,
|
||||||
PreferenceSummaryProvider,
|
PreferenceSummaryProvider,
|
||||||
Preference.OnPreferenceClickListener {
|
Preference.OnPreferenceClickListener {
|
||||||
|
|
||||||
@@ -68,6 +72,11 @@ class BrightnessLevelPreference :
|
|||||||
override val keywords: Int
|
override val keywords: Int
|
||||||
get() = R.string.keywords_display_brightness_level
|
get() = R.string.keywords_display_brightness_level
|
||||||
|
|
||||||
|
override val preferenceActionMetrics: Int
|
||||||
|
get() = ACTION_BRIGHTNESS_LEVEL
|
||||||
|
|
||||||
|
override fun tags(context: Context) = arrayOf(KEY_BRIGHTNESS_LEVEL)
|
||||||
|
|
||||||
override fun getSummary(context: Context): CharSequence? =
|
override fun getSummary(context: Context): CharSequence? =
|
||||||
NumberFormat.getPercentInstance().format(context.brightnessPercent)
|
NumberFormat.getPercentInstance().format(context.brightnessPercent)
|
||||||
|
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.settings.display
|
package com.android.settings.display
|
||||||
|
|
||||||
|
import android.app.settings.SettingsEnums.ACTION_SMOOTH_DISPLAY
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.hardware.display.DisplayManager
|
import android.hardware.display.DisplayManager
|
||||||
import android.provider.DeviceConfig
|
import android.provider.DeviceConfig
|
||||||
@@ -23,7 +24,9 @@ import com.android.internal.display.RefreshRateSettingsUtils.DEFAULT_REFRESH_RAT
|
|||||||
import com.android.internal.display.RefreshRateSettingsUtils.findHighestRefreshRateAmongAllDisplays
|
import com.android.internal.display.RefreshRateSettingsUtils.findHighestRefreshRateAmongAllDisplays
|
||||||
import com.android.internal.display.RefreshRateSettingsUtils.findHighestRefreshRateForDefaultDisplay
|
import com.android.internal.display.RefreshRateSettingsUtils.findHighestRefreshRateForDefaultDisplay
|
||||||
import com.android.server.display.feature.flags.Flags
|
import com.android.server.display.feature.flags.Flags
|
||||||
|
import com.android.settings.PreferenceActionMetricsProvider
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settings.contract.KEY_SMOOTH_DISPLAY
|
||||||
import com.android.settingslib.datastore.HandlerExecutor
|
import com.android.settingslib.datastore.HandlerExecutor
|
||||||
import com.android.settingslib.datastore.KeyValueStore
|
import com.android.settingslib.datastore.KeyValueStore
|
||||||
import com.android.settingslib.datastore.KeyedObservableDelegate
|
import com.android.settingslib.datastore.KeyedObservableDelegate
|
||||||
@@ -41,12 +44,18 @@ import kotlin.math.roundToInt
|
|||||||
// LINT.IfChange
|
// LINT.IfChange
|
||||||
class PeakRefreshRateSwitchPreference :
|
class PeakRefreshRateSwitchPreference :
|
||||||
SwitchPreference(KEY, R.string.peak_refresh_rate_title),
|
SwitchPreference(KEY, R.string.peak_refresh_rate_title),
|
||||||
|
PreferenceActionMetricsProvider,
|
||||||
PreferenceAvailabilityProvider,
|
PreferenceAvailabilityProvider,
|
||||||
PreferenceSummaryProvider,
|
PreferenceSummaryProvider,
|
||||||
PreferenceLifecycleProvider {
|
PreferenceLifecycleProvider {
|
||||||
|
|
||||||
private var propertiesChangedListener: DeviceConfig.OnPropertiesChangedListener? = null
|
private var propertiesChangedListener: DeviceConfig.OnPropertiesChangedListener? = null
|
||||||
|
|
||||||
|
override val preferenceActionMetrics: Int
|
||||||
|
get() = ACTION_SMOOTH_DISPLAY
|
||||||
|
|
||||||
|
override fun tags(context: Context) = arrayOf(KEY_SMOOTH_DISPLAY)
|
||||||
|
|
||||||
override fun storage(context: Context): KeyValueStore =
|
override fun storage(context: Context): KeyValueStore =
|
||||||
PeakRefreshRateStore(context, SettingsSystemStore.get(context))
|
PeakRefreshRateStore(context, SettingsSystemStore.get(context))
|
||||||
|
|
||||||
|
@@ -17,11 +17,14 @@
|
|||||||
package com.android.settings.display.darkmode
|
package com.android.settings.display.darkmode
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
|
import android.app.settings.SettingsEnums.ACTION_DARK_THEME
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.PowerManager
|
import android.os.PowerManager
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
import androidx.preference.PreferenceScreen
|
import androidx.preference.PreferenceScreen
|
||||||
|
import com.android.settings.PreferenceActionMetricsProvider
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settings.contract.KEY_DARK_THEME
|
||||||
import com.android.settings.flags.Flags
|
import com.android.settings.flags.Flags
|
||||||
import com.android.settingslib.PrimarySwitchPreferenceBinding
|
import com.android.settingslib.PrimarySwitchPreferenceBinding
|
||||||
import com.android.settingslib.datastore.KeyValueStore
|
import com.android.settingslib.datastore.KeyValueStore
|
||||||
@@ -42,6 +45,7 @@ class DarkModeScreen(context: Context) :
|
|||||||
PreferenceScreenCreator,
|
PreferenceScreenCreator,
|
||||||
PreferenceScreenBinding, // binding for screen page
|
PreferenceScreenBinding, // binding for screen page
|
||||||
PrimarySwitchPreferenceBinding, // binding for screen entry point widget
|
PrimarySwitchPreferenceBinding, // binding for screen entry point widget
|
||||||
|
PreferenceActionMetricsProvider,
|
||||||
BooleanValuePreference,
|
BooleanValuePreference,
|
||||||
PreferenceSummaryProvider {
|
PreferenceSummaryProvider {
|
||||||
|
|
||||||
@@ -56,6 +60,11 @@ class DarkModeScreen(context: Context) :
|
|||||||
override val keywords: Int
|
override val keywords: Int
|
||||||
get() = R.string.keywords_dark_ui_mode
|
get() = R.string.keywords_dark_ui_mode
|
||||||
|
|
||||||
|
override val preferenceActionMetrics: Int
|
||||||
|
get() = ACTION_DARK_THEME
|
||||||
|
|
||||||
|
override fun tags(context: Context) = arrayOf(KEY_DARK_THEME)
|
||||||
|
|
||||||
override fun getReadPermissions(context: Context) = Permissions.EMPTY
|
override fun getReadPermissions(context: Context) = Permissions.EMPTY
|
||||||
|
|
||||||
override fun getWritePermissions(context: Context) =
|
override fun getWritePermissions(context: Context) =
|
||||||
|
@@ -16,10 +16,13 @@
|
|||||||
|
|
||||||
package com.android.settings.fuelgauge
|
package com.android.settings.fuelgauge
|
||||||
|
|
||||||
|
import android.app.settings.SettingsEnums.ACTION_BATTERY_LEVEL
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.annotation.VisibleForTesting
|
import androidx.annotation.VisibleForTesting
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
|
import com.android.settings.PreferenceActionMetricsProvider
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settings.contract.KEY_BATTERY_LEVEL
|
||||||
import com.android.settings.fuelgauge.BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_NOT_PRESENT
|
import com.android.settings.fuelgauge.BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_NOT_PRESENT
|
||||||
import com.android.settingslib.Utils
|
import com.android.settingslib.Utils
|
||||||
import com.android.settingslib.datastore.KeyValueStore
|
import com.android.settingslib.datastore.KeyValueStore
|
||||||
@@ -37,7 +40,10 @@ import com.android.settingslib.widget.UsageProgressBarPreference
|
|||||||
|
|
||||||
// LINT.IfChange
|
// LINT.IfChange
|
||||||
class BatteryHeaderPreference :
|
class BatteryHeaderPreference :
|
||||||
IntRangeValuePreference, PreferenceBinding, PreferenceLifecycleProvider {
|
IntRangeValuePreference,
|
||||||
|
PreferenceBinding,
|
||||||
|
PreferenceActionMetricsProvider,
|
||||||
|
PreferenceLifecycleProvider {
|
||||||
|
|
||||||
@VisibleForTesting var batteryBroadcastReceiver: BatteryBroadcastReceiver? = null
|
@VisibleForTesting var batteryBroadcastReceiver: BatteryBroadcastReceiver? = null
|
||||||
|
|
||||||
@@ -47,6 +53,11 @@ class BatteryHeaderPreference :
|
|||||||
override val title: Int
|
override val title: Int
|
||||||
get() = R.string.summary_placeholder
|
get() = R.string.summary_placeholder
|
||||||
|
|
||||||
|
override val preferenceActionMetrics: Int
|
||||||
|
get() = ACTION_BATTERY_LEVEL
|
||||||
|
|
||||||
|
override fun tags(context: Context) = arrayOf(KEY_BATTERY_LEVEL)
|
||||||
|
|
||||||
override fun createWidget(context: Context) = UsageProgressBarPreference(context)
|
override fun createWidget(context: Context) = UsageProgressBarPreference(context)
|
||||||
|
|
||||||
override fun bind(preference: Preference, metadata: PreferenceMetadata) {
|
override fun bind(preference: Preference, metadata: PreferenceMetadata) {
|
||||||
|
@@ -16,10 +16,13 @@
|
|||||||
|
|
||||||
package com.android.settings.network
|
package com.android.settings.network
|
||||||
|
|
||||||
|
import android.app.settings.SettingsEnums.ACTION_ADAPTIVE_CONNECTIVITY
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.wifi.WifiManager
|
import android.net.wifi.WifiManager
|
||||||
import android.provider.Settings.Secure.ADAPTIVE_CONNECTIVITY_ENABLED
|
import android.provider.Settings.Secure.ADAPTIVE_CONNECTIVITY_ENABLED
|
||||||
|
import com.android.settings.PreferenceActionMetricsProvider
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settings.contract.KEY_ADAPTIVE_CONNECTIVITY
|
||||||
import com.android.settingslib.datastore.KeyValueStore
|
import com.android.settingslib.datastore.KeyValueStore
|
||||||
import com.android.settingslib.datastore.KeyedObservableDelegate
|
import com.android.settingslib.datastore.KeyedObservableDelegate
|
||||||
import com.android.settingslib.datastore.SettingsSecureStore
|
import com.android.settingslib.datastore.SettingsSecureStore
|
||||||
@@ -31,7 +34,13 @@ import com.android.settingslib.metadata.SensitivityLevel
|
|||||||
|
|
||||||
// LINT.IfChange
|
// LINT.IfChange
|
||||||
class AdaptiveConnectivityTogglePreference :
|
class AdaptiveConnectivityTogglePreference :
|
||||||
MainSwitchPreference(KEY, R.string.adaptive_connectivity_main_switch_title) {
|
MainSwitchPreference(KEY, R.string.adaptive_connectivity_main_switch_title),
|
||||||
|
PreferenceActionMetricsProvider {
|
||||||
|
|
||||||
|
override val preferenceActionMetrics: Int
|
||||||
|
get() = ACTION_ADAPTIVE_CONNECTIVITY
|
||||||
|
|
||||||
|
override fun tags(context: Context) = arrayOf(KEY_ADAPTIVE_CONNECTIVITY)
|
||||||
|
|
||||||
override fun storage(context: Context): KeyValueStore =
|
override fun storage(context: Context): KeyValueStore =
|
||||||
AdaptiveConnectivityToggleStorage(context, SettingsSecureStore.get(context))
|
AdaptiveConnectivityToggleStorage(context, SettingsSecureStore.get(context))
|
||||||
|
@@ -19,6 +19,7 @@ package com.android.settings.notification
|
|||||||
import android.Manifest.permission.MODIFY_AUDIO_SETTINGS
|
import android.Manifest.permission.MODIFY_AUDIO_SETTINGS
|
||||||
import android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED
|
import android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED
|
||||||
import android.Manifest.permission.MODIFY_PHONE_STATE
|
import android.Manifest.permission.MODIFY_PHONE_STATE
|
||||||
|
import android.app.settings.SettingsEnums.ACTION_CALL_VOLUME
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.pm.PackageManager.FEATURE_AUTOMOTIVE
|
import android.content.pm.PackageManager.FEATURE_AUTOMOTIVE
|
||||||
import android.media.AudioManager
|
import android.media.AudioManager
|
||||||
@@ -26,8 +27,10 @@ import android.media.AudioManager.STREAM_BLUETOOTH_SCO
|
|||||||
import android.media.AudioManager.STREAM_VOICE_CALL
|
import android.media.AudioManager.STREAM_VOICE_CALL
|
||||||
import android.os.UserManager
|
import android.os.UserManager
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
|
import com.android.settings.PreferenceActionMetricsProvider
|
||||||
import com.android.settings.PreferenceRestrictionMixin
|
import com.android.settings.PreferenceRestrictionMixin
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settings.contract.KEY_CALL_VOLUME
|
||||||
import com.android.settingslib.datastore.KeyValueStore
|
import com.android.settingslib.datastore.KeyValueStore
|
||||||
import com.android.settingslib.datastore.NoOpKeyedObservable
|
import com.android.settingslib.datastore.NoOpKeyedObservable
|
||||||
import com.android.settingslib.datastore.Permissions
|
import com.android.settingslib.datastore.Permissions
|
||||||
@@ -44,6 +47,7 @@ import com.android.settingslib.preference.PreferenceBinding
|
|||||||
open class CallVolumePreference :
|
open class CallVolumePreference :
|
||||||
IntRangeValuePreference,
|
IntRangeValuePreference,
|
||||||
PreferenceBinding,
|
PreferenceBinding,
|
||||||
|
PreferenceActionMetricsProvider,
|
||||||
PreferenceAvailabilityProvider,
|
PreferenceAvailabilityProvider,
|
||||||
PreferenceIconProvider,
|
PreferenceIconProvider,
|
||||||
PreferenceRestrictionMixin {
|
PreferenceRestrictionMixin {
|
||||||
@@ -53,6 +57,11 @@ open class CallVolumePreference :
|
|||||||
override val title: Int
|
override val title: Int
|
||||||
get() = R.string.call_volume_option_title
|
get() = R.string.call_volume_option_title
|
||||||
|
|
||||||
|
override val preferenceActionMetrics: Int
|
||||||
|
get() = ACTION_CALL_VOLUME
|
||||||
|
|
||||||
|
override fun tags(context: Context) = arrayOf(KEY_CALL_VOLUME)
|
||||||
|
|
||||||
override fun getIcon(context: Context) = R.drawable.ic_local_phone_24_lib
|
override fun getIcon(context: Context) = R.drawable.ic_local_phone_24_lib
|
||||||
|
|
||||||
override fun isAvailable(context: Context) =
|
override fun isAvailable(context: Context) =
|
||||||
|
@@ -18,13 +18,16 @@ package com.android.settings.notification
|
|||||||
|
|
||||||
import android.Manifest.permission.MODIFY_AUDIO_SETTINGS
|
import android.Manifest.permission.MODIFY_AUDIO_SETTINGS
|
||||||
import android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED
|
import android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED
|
||||||
|
import android.app.settings.SettingsEnums.ACTION_MEDIA_VOLUME
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.pm.PackageManager.FEATURE_AUTOMOTIVE
|
import android.content.pm.PackageManager.FEATURE_AUTOMOTIVE
|
||||||
import android.media.AudioManager.STREAM_MUSIC
|
import android.media.AudioManager.STREAM_MUSIC
|
||||||
import android.os.UserManager
|
import android.os.UserManager
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
|
import com.android.settings.PreferenceActionMetricsProvider
|
||||||
import com.android.settings.PreferenceRestrictionMixin
|
import com.android.settings.PreferenceRestrictionMixin
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settings.contract.KEY_MEDIA_VOLUME
|
||||||
import com.android.settingslib.datastore.KeyValueStore
|
import com.android.settingslib.datastore.KeyValueStore
|
||||||
import com.android.settingslib.datastore.NoOpKeyedObservable
|
import com.android.settingslib.datastore.NoOpKeyedObservable
|
||||||
import com.android.settingslib.datastore.Permissions
|
import com.android.settingslib.datastore.Permissions
|
||||||
@@ -41,6 +44,7 @@ import com.android.settingslib.preference.PreferenceBinding
|
|||||||
open class MediaVolumePreference :
|
open class MediaVolumePreference :
|
||||||
IntRangeValuePreference,
|
IntRangeValuePreference,
|
||||||
PreferenceBinding,
|
PreferenceBinding,
|
||||||
|
PreferenceActionMetricsProvider,
|
||||||
PreferenceAvailabilityProvider,
|
PreferenceAvailabilityProvider,
|
||||||
PreferenceIconProvider,
|
PreferenceIconProvider,
|
||||||
PreferenceRestrictionMixin {
|
PreferenceRestrictionMixin {
|
||||||
@@ -50,6 +54,11 @@ open class MediaVolumePreference :
|
|||||||
override val title: Int
|
override val title: Int
|
||||||
get() = R.string.media_volume_option_title
|
get() = R.string.media_volume_option_title
|
||||||
|
|
||||||
|
override val preferenceActionMetrics: Int
|
||||||
|
get() = ACTION_MEDIA_VOLUME
|
||||||
|
|
||||||
|
override fun tags(context: Context) = arrayOf(KEY_MEDIA_VOLUME)
|
||||||
|
|
||||||
override fun getIcon(context: Context) =
|
override fun getIcon(context: Context) =
|
||||||
when {
|
when {
|
||||||
VolumeHelper.isMuted(context, STREAM_MUSIC) -> R.drawable.ic_media_stream_off
|
VolumeHelper.isMuted(context, STREAM_MUSIC) -> R.drawable.ic_media_stream_off
|
||||||
|
@@ -21,6 +21,7 @@ import android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED
|
|||||||
import android.app.INotificationManager
|
import android.app.INotificationManager
|
||||||
import android.app.NotificationManager
|
import android.app.NotificationManager
|
||||||
import android.app.NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED
|
import android.app.NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED
|
||||||
|
import android.app.settings.SettingsEnums.ACTION_RING_VOLUME
|
||||||
import android.content.BroadcastReceiver
|
import android.content.BroadcastReceiver
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Context.NOTIFICATION_SERVICE
|
import android.content.Context.NOTIFICATION_SERVICE
|
||||||
@@ -39,8 +40,10 @@ import android.os.Vibrator
|
|||||||
import android.service.notification.NotificationListenerService.HINT_HOST_DISABLE_CALL_EFFECTS
|
import android.service.notification.NotificationListenerService.HINT_HOST_DISABLE_CALL_EFFECTS
|
||||||
import android.service.notification.NotificationListenerService.HINT_HOST_DISABLE_EFFECTS
|
import android.service.notification.NotificationListenerService.HINT_HOST_DISABLE_EFFECTS
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
|
import com.android.settings.PreferenceActionMetricsProvider
|
||||||
import com.android.settings.PreferenceRestrictionMixin
|
import com.android.settings.PreferenceRestrictionMixin
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settings.contract.KEY_RING_VOLUME
|
||||||
import com.android.settingslib.datastore.KeyValueStore
|
import com.android.settingslib.datastore.KeyValueStore
|
||||||
import com.android.settingslib.datastore.NoOpKeyedObservable
|
import com.android.settingslib.datastore.NoOpKeyedObservable
|
||||||
import com.android.settingslib.datastore.Permissions
|
import com.android.settingslib.datastore.Permissions
|
||||||
@@ -59,6 +62,7 @@ import com.android.settingslib.preference.PreferenceBinding
|
|||||||
open class SeparateRingVolumePreference :
|
open class SeparateRingVolumePreference :
|
||||||
IntRangeValuePreference,
|
IntRangeValuePreference,
|
||||||
PreferenceBinding,
|
PreferenceBinding,
|
||||||
|
PreferenceActionMetricsProvider,
|
||||||
PreferenceAvailabilityProvider,
|
PreferenceAvailabilityProvider,
|
||||||
PreferenceIconProvider,
|
PreferenceIconProvider,
|
||||||
PreferenceLifecycleProvider,
|
PreferenceLifecycleProvider,
|
||||||
@@ -72,6 +76,11 @@ open class SeparateRingVolumePreference :
|
|||||||
override val title: Int
|
override val title: Int
|
||||||
get() = R.string.separate_ring_volume_option_title
|
get() = R.string.separate_ring_volume_option_title
|
||||||
|
|
||||||
|
override val preferenceActionMetrics: Int
|
||||||
|
get() = ACTION_RING_VOLUME
|
||||||
|
|
||||||
|
override fun tags(context: Context) = arrayOf(KEY_RING_VOLUME)
|
||||||
|
|
||||||
override fun getIcon(context: Context) = context.getIconRes()
|
override fun getIcon(context: Context) = context.getIconRes()
|
||||||
|
|
||||||
override fun isAvailable(context: Context) = !createAudioHelper(context).isSingleVolume
|
override fun isAvailable(context: Context) = !createAudioHelper(context).isSingleVolume
|
||||||
|
@@ -17,7 +17,8 @@
|
|||||||
package com.android.settings.wifi.tether
|
package com.android.settings.wifi.tether
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.app.settings.SettingsEnums
|
import android.app.settings.SettingsEnums.ACTION_WIFI_HOTSPOT
|
||||||
|
import android.app.settings.SettingsEnums.WIFI_TETHER_SETTINGS
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.net.TetheringManager
|
import android.net.TetheringManager
|
||||||
@@ -27,9 +28,11 @@ import android.net.wifi.WifiManager
|
|||||||
import android.os.UserManager
|
import android.os.UserManager
|
||||||
import android.text.BidiFormatter
|
import android.text.BidiFormatter
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import com.android.settings.PreferenceActionMetricsProvider
|
||||||
import com.android.settings.PreferenceRestrictionMixin
|
import com.android.settings.PreferenceRestrictionMixin
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.Utils
|
import com.android.settings.Utils
|
||||||
|
import com.android.settings.contract.KEY_WIFI_HOTSPOT
|
||||||
import com.android.settings.core.SubSettingLauncher
|
import com.android.settings.core.SubSettingLauncher
|
||||||
import com.android.settings.datausage.DataSaverMainSwitchPreference.Companion.KEY as DATA_SAVER_KEY
|
import com.android.settings.datausage.DataSaverMainSwitchPreference.Companion.KEY as DATA_SAVER_KEY
|
||||||
import com.android.settings.wifi.WifiUtils.canShowWifiHotspot
|
import com.android.settings.wifi.WifiUtils.canShowWifiHotspot
|
||||||
@@ -56,10 +59,16 @@ import com.android.settingslib.wifi.WifiUtils.Companion.getWifiTetherSummaryForC
|
|||||||
class WifiHotspotSwitchPreference(context: Context, dataSaverStore: KeyValueStore) :
|
class WifiHotspotSwitchPreference(context: Context, dataSaverStore: KeyValueStore) :
|
||||||
SwitchPreference(KEY, R.string.wifi_hotspot_checkbox_text),
|
SwitchPreference(KEY, R.string.wifi_hotspot_checkbox_text),
|
||||||
PrimarySwitchPreferenceBinding,
|
PrimarySwitchPreferenceBinding,
|
||||||
|
PreferenceActionMetricsProvider,
|
||||||
PreferenceAvailabilityProvider,
|
PreferenceAvailabilityProvider,
|
||||||
PreferenceSummaryProvider,
|
PreferenceSummaryProvider,
|
||||||
PreferenceRestrictionMixin {
|
PreferenceRestrictionMixin {
|
||||||
|
|
||||||
|
override val preferenceActionMetrics: Int
|
||||||
|
get() = ACTION_WIFI_HOTSPOT
|
||||||
|
|
||||||
|
override fun tags(context: Context) = arrayOf(KEY_WIFI_HOTSPOT)
|
||||||
|
|
||||||
private val wifiHotspotStore = WifiHotspotStore(context, dataSaverStore)
|
private val wifiHotspotStore = WifiHotspotStore(context, dataSaverStore)
|
||||||
|
|
||||||
override fun isAvailable(context: Context) =
|
override fun isAvailable(context: Context) =
|
||||||
@@ -97,7 +106,7 @@ class WifiHotspotSwitchPreference(context: Context, dataSaverStore: KeyValueStor
|
|||||||
.apply {
|
.apply {
|
||||||
setDestination(WifiTetherSettings::class.java.name)
|
setDestination(WifiTetherSettings::class.java.name)
|
||||||
setTitleRes(R.string.wifi_hotspot_checkbox_text)
|
setTitleRes(R.string.wifi_hotspot_checkbox_text)
|
||||||
setSourceMetricsCategory(SettingsEnums.WIFI_TETHER_SETTINGS)
|
setSourceMetricsCategory(WIFI_TETHER_SETTINGS)
|
||||||
}
|
}
|
||||||
.toIntent()
|
.toIntent()
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user