From afbcf06654e8a1220246ebef5d4bae8f12fda20a Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Tue, 11 Feb 2025 19:58:14 +0800 Subject: [PATCH 1/2] [Catalyst] Move metrics class NO_IFTTT=Catalyst only Bug: 389886085 Flag: EXEMPT refactor Test: atest Change-Id: I8c24a4edf768aa2286adf66f16077e962080bb48 --- .../android/settings/SettingsApplication.java | 1 + .../RemoveAnimationsPreference.kt | 2 +- .../VibrationMainSwitchPreference.kt | 2 +- .../connecteddevice/BluetoothPreference.kt | 2 +- .../DataSaverMainSwitchPreference.kt | 2 +- .../display/AdaptiveSleepPreference.kt | 2 +- .../AmbientDisplayAlwaysOnPreference.kt | 2 +- .../settings/display/AutoBrightnessScreen.kt | 2 +- .../BatteryPercentageSwitchPreference.kt | 2 +- .../display/BrightnessLevelPreference.kt | 2 +- .../PeakRefreshRateSwitchPreference.kt | 2 +- .../display/darkmode/DarkModeScreen.kt | 2 +- .../fuelgauge/BatteryHeaderPreference.kt | 2 +- .../batterysaver/BatterySaverPreference.kt | 2 +- .../PreferenceActionMetricsProvider.kt | 24 +++++++++++++++++++ .../SettingsMetricsLogger.kt} | 9 +------ .../metrics/SettingsRemoteOpMetricsLogger.kt | 1 - .../AdaptiveConnectivityTogglePreference.kt | 3 +-- .../network/AirplaneModePreference.kt | 2 +- .../settings/network/MobileDataPreference.kt | 2 +- .../notification/CallVolumePreference.kt | 2 +- .../notification/MediaVolumePreference.kt | 2 +- .../SeparateRingVolumePreference.kt | 2 +- .../settings/wifi/WifiSwitchPreference.kt | 2 +- .../WifiCallingMainSwitchPreference.kt | 2 +- .../tether/WifiHotspotSwitchPreference.kt | 2 +- .../android/settings/testutils/MetricsRule.kt | 2 +- 27 files changed, 49 insertions(+), 33 deletions(-) create mode 100644 src/com/android/settings/metrics/PreferenceActionMetricsProvider.kt rename src/com/android/settings/{Metrics.kt => metrics/SettingsMetricsLogger.kt} (88%) diff --git a/src/com/android/settings/SettingsApplication.java b/src/com/android/settings/SettingsApplication.java index 9c5671f1027..d924519ad72 100644 --- a/src/com/android/settings/SettingsApplication.java +++ b/src/com/android/settings/SettingsApplication.java @@ -38,6 +38,7 @@ import com.android.settings.flags.Flags; import com.android.settings.fuelgauge.BatterySettingsStorage; import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.localepicker.LocaleNotificationDataManager; +import com.android.settings.metrics.SettingsMetricsLogger; import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactoryImpl; import com.android.settings.spa.SettingsSpaEnvironment; diff --git a/src/com/android/settings/accessibility/RemoveAnimationsPreference.kt b/src/com/android/settings/accessibility/RemoveAnimationsPreference.kt index 0665e96d5b4..ee962827d6e 100644 --- a/src/com/android/settings/accessibility/RemoveAnimationsPreference.kt +++ b/src/com/android/settings/accessibility/RemoveAnimationsPreference.kt @@ -20,9 +20,9 @@ import android.annotation.DrawableRes import android.app.settings.SettingsEnums.ACTION_REMOVE_ANIMATION import android.content.Context import android.provider.Settings -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.R import com.android.settings.contract.KEY_REMOVE_ANIMATION +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.HandlerExecutor import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.KeyedObserver diff --git a/src/com/android/settings/accessibility/VibrationMainSwitchPreference.kt b/src/com/android/settings/accessibility/VibrationMainSwitchPreference.kt index 54b1d9588e2..6d1f883de21 100644 --- a/src/com/android/settings/accessibility/VibrationMainSwitchPreference.kt +++ b/src/com/android/settings/accessibility/VibrationMainSwitchPreference.kt @@ -22,9 +22,9 @@ import android.os.Vibrator import android.provider.Settings import android.widget.CompoundButton import android.widget.CompoundButton.OnCheckedChangeListener -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.R import com.android.settings.contract.KEY_VIBRATION_HAPTICS +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.KeyedObservableDelegate import com.android.settingslib.datastore.SettingsStore diff --git a/src/com/android/settings/connecteddevice/BluetoothPreference.kt b/src/com/android/settings/connecteddevice/BluetoothPreference.kt index 6ff41a815a0..43d2aeb50c9 100644 --- a/src/com/android/settings/connecteddevice/BluetoothPreference.kt +++ b/src/com/android/settings/connecteddevice/BluetoothPreference.kt @@ -28,10 +28,10 @@ import android.os.UserManager import android.provider.Settings import android.widget.Toast import androidx.preference.Preference -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_BLUETOOTH +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settings.network.SatelliteRepository.Companion.isSatelliteOn import com.android.settings.network.SatelliteWarningDialogActivity import com.android.settings.widget.MainSwitchBarMetadata diff --git a/src/com/android/settings/datausage/DataSaverMainSwitchPreference.kt b/src/com/android/settings/datausage/DataSaverMainSwitchPreference.kt index 33d756ee811..922d4809d7b 100644 --- a/src/com/android/settings/datausage/DataSaverMainSwitchPreference.kt +++ b/src/com/android/settings/datausage/DataSaverMainSwitchPreference.kt @@ -18,9 +18,9 @@ package com.android.settings.datausage import android.app.settings.SettingsEnums.ACTION_DATA_SAVER_MODE import android.content.Context -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.R import com.android.settings.contract.KEY_DATA_SAVER +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settings.widget.MainSwitchBarMetadata import com.android.settingslib.datastore.AbstractKeyedDataObservable import com.android.settingslib.datastore.KeyValueStore diff --git a/src/com/android/settings/display/AdaptiveSleepPreference.kt b/src/com/android/settings/display/AdaptiveSleepPreference.kt index e9efc2f2c37..9c6259a5b66 100644 --- a/src/com/android/settings/display/AdaptiveSleepPreference.kt +++ b/src/com/android/settings/display/AdaptiveSleepPreference.kt @@ -27,10 +27,10 @@ import android.hardware.SensorPrivacyManager.Sensors.CAMERA import android.os.PowerManager import android.os.UserManager import android.provider.Settings -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_SCREEN_ATTENTION +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.RestrictedSwitchPreference import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.KeyedObservableDelegate diff --git a/src/com/android/settings/display/AmbientDisplayAlwaysOnPreference.kt b/src/com/android/settings/display/AmbientDisplayAlwaysOnPreference.kt index a8227acd84d..3cfb311b8fb 100644 --- a/src/com/android/settings/display/AmbientDisplayAlwaysOnPreference.kt +++ b/src/com/android/settings/display/AmbientDisplayAlwaysOnPreference.kt @@ -23,11 +23,11 @@ import android.os.SystemProperties import android.os.UserHandle import android.os.UserManager import android.provider.Settings.Secure.DOZE_ALWAYS_ON -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_AMBIENT_DISPLAY_ALWAYS_ON import com.android.settings.display.AmbientDisplayAlwaysOnPreferenceController.isAodSuppressedByBedtime +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.AbstractKeyedDataObservable import com.android.settingslib.datastore.HandlerExecutor import com.android.settingslib.datastore.KeyValueStore diff --git a/src/com/android/settings/display/AutoBrightnessScreen.kt b/src/com/android/settings/display/AutoBrightnessScreen.kt index 7018f81d767..fda4c9057ed 100644 --- a/src/com/android/settings/display/AutoBrightnessScreen.kt +++ b/src/com/android/settings/display/AutoBrightnessScreen.kt @@ -23,11 +23,11 @@ import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL import androidx.preference.Preference import androidx.preference.PreferenceScreen -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_ADAPTIVE_BRIGHTNESS import com.android.settings.flags.Flags +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.PrimarySwitchPreferenceBinding import com.android.settingslib.datastore.AbstractKeyedDataObservable import com.android.settingslib.datastore.HandlerExecutor diff --git a/src/com/android/settings/display/BatteryPercentageSwitchPreference.kt b/src/com/android/settings/display/BatteryPercentageSwitchPreference.kt index 2c228af57fa..2ce643609dc 100644 --- a/src/com/android/settings/display/BatteryPercentageSwitchPreference.kt +++ b/src/com/android/settings/display/BatteryPercentageSwitchPreference.kt @@ -18,10 +18,10 @@ package com.android.settings.display import android.app.settings.SettingsEnums.OPEN_BATTERY_PERCENTAGE import android.content.Context import android.provider.Settings -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.R import com.android.settings.Utils import com.android.settings.contract.KEY_BATTERY_PERCENTAGE +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.KeyedObservableDelegate import com.android.settingslib.datastore.SettingsStore diff --git a/src/com/android/settings/display/BrightnessLevelPreference.kt b/src/com/android/settings/display/BrightnessLevelPreference.kt index 8f0b791b60f..ea43b3aa5c2 100644 --- a/src/com/android/settings/display/BrightnessLevelPreference.kt +++ b/src/com/android/settings/display/BrightnessLevelPreference.kt @@ -27,12 +27,12 @@ import android.hardware.display.DisplayManager.DisplayListener import android.os.UserManager import android.provider.Settings.System import androidx.preference.Preference -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.Utils import com.android.settings.contract.KEY_BRIGHTNESS_LEVEL import com.android.settings.core.SettingsBaseActivity +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.RestrictedPreference import com.android.settingslib.datastore.AbstractKeyedDataObservable import com.android.settingslib.datastore.HandlerExecutor diff --git a/src/com/android/settings/display/PeakRefreshRateSwitchPreference.kt b/src/com/android/settings/display/PeakRefreshRateSwitchPreference.kt index 4d132ddd667..ee538db2d36 100644 --- a/src/com/android/settings/display/PeakRefreshRateSwitchPreference.kt +++ b/src/com/android/settings/display/PeakRefreshRateSwitchPreference.kt @@ -24,9 +24,9 @@ import com.android.internal.display.RefreshRateSettingsUtils.DEFAULT_REFRESH_RAT import com.android.internal.display.RefreshRateSettingsUtils.findHighestRefreshRateAmongAllDisplays import com.android.internal.display.RefreshRateSettingsUtils.findHighestRefreshRateForDefaultDisplay import com.android.server.display.feature.flags.Flags -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.R import com.android.settings.contract.KEY_SMOOTH_DISPLAY +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.HandlerExecutor import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.KeyedObservableDelegate diff --git a/src/com/android/settings/display/darkmode/DarkModeScreen.kt b/src/com/android/settings/display/darkmode/DarkModeScreen.kt index 86ead6b3fd8..b6208ddda7e 100644 --- a/src/com/android/settings/display/darkmode/DarkModeScreen.kt +++ b/src/com/android/settings/display/darkmode/DarkModeScreen.kt @@ -22,10 +22,10 @@ import android.content.Context import android.os.PowerManager import androidx.preference.Preference import androidx.preference.PreferenceScreen -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.R import com.android.settings.contract.KEY_DARK_THEME import com.android.settings.flags.Flags +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.PrimarySwitchPreferenceBinding import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.Permissions diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreference.kt b/src/com/android/settings/fuelgauge/BatteryHeaderPreference.kt index 0eebaa2343a..5375492c84f 100644 --- a/src/com/android/settings/fuelgauge/BatteryHeaderPreference.kt +++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreference.kt @@ -20,10 +20,10 @@ import android.app.settings.SettingsEnums.ACTION_BATTERY_LEVEL import android.content.Context import androidx.annotation.VisibleForTesting import androidx.preference.Preference -import com.android.settings.PreferenceActionMetricsProvider 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.metrics.PreferenceActionMetricsProvider import com.android.settingslib.Utils import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.NoOpKeyedObservable diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverPreference.kt b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverPreference.kt index c98b7ba54a8..67d2b64c9a1 100644 --- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverPreference.kt +++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverPreference.kt @@ -19,11 +19,11 @@ import android.Manifest import android.app.settings.SettingsEnums.ACTION_BATTERY_SAVER import android.content.Context import android.os.PowerManager -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.R import com.android.settings.contract.KEY_BATTERY_SAVER import com.android.settings.fuelgauge.BatterySaverReceiver import com.android.settings.fuelgauge.BatterySaverReceiver.BatterySaverListener +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.AbstractKeyedDataObservable import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.Permissions diff --git a/src/com/android/settings/metrics/PreferenceActionMetricsProvider.kt b/src/com/android/settings/metrics/PreferenceActionMetricsProvider.kt new file mode 100644 index 00000000000..f5ccf4d5678 --- /dev/null +++ b/src/com/android/settings/metrics/PreferenceActionMetricsProvider.kt @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.metrics + +/** Provides metrics for preference action. */ +interface PreferenceActionMetricsProvider { + + /** Metrics action id for the preference. */ + val preferenceActionMetrics: Int +} diff --git a/src/com/android/settings/Metrics.kt b/src/com/android/settings/metrics/SettingsMetricsLogger.kt similarity index 88% rename from src/com/android/settings/Metrics.kt rename to src/com/android/settings/metrics/SettingsMetricsLogger.kt index 8dde9d5a60f..b81f0ea5778 100644 --- a/src/com/android/settings/Metrics.kt +++ b/src/com/android/settings/metrics/SettingsMetricsLogger.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.settings +package com.android.settings.metrics import android.content.Context import com.android.settings.overlay.FeatureFactory @@ -23,13 +23,6 @@ import com.android.settingslib.metadata.PreferenceMetadata import com.android.settingslib.metadata.PreferenceScreenMetadata import com.android.settingslib.metadata.PreferenceUiActionMetricsLogger -/** Provides metrics for preference action. */ -interface PreferenceActionMetricsProvider { - - /** Metrics action id for the preference. */ - val preferenceActionMetrics: Int -} - /** [PreferenceUiActionMetricsLogger] of Settings app. */ class SettingsMetricsLogger @JvmOverloads diff --git a/src/com/android/settings/metrics/SettingsRemoteOpMetricsLogger.kt b/src/com/android/settings/metrics/SettingsRemoteOpMetricsLogger.kt index 8653ef9ff0e..6d82c08ba11 100644 --- a/src/com/android/settings/metrics/SettingsRemoteOpMetricsLogger.kt +++ b/src/com/android/settings/metrics/SettingsRemoteOpMetricsLogger.kt @@ -18,7 +18,6 @@ package com.android.settings.metrics import android.app.settings.SettingsEnums import android.content.Context -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.core.instrumentation.SettingsStatsLog import com.android.settingslib.graph.PreferenceGetterErrorCode import com.android.settingslib.graph.PreferenceSetterResult diff --git a/src/com/android/settings/network/AdaptiveConnectivityTogglePreference.kt b/src/com/android/settings/network/AdaptiveConnectivityTogglePreference.kt index 51e0ddd61db..80f1d00146a 100644 --- a/src/com/android/settings/network/AdaptiveConnectivityTogglePreference.kt +++ b/src/com/android/settings/network/AdaptiveConnectivityTogglePreference.kt @@ -20,14 +20,13 @@ import android.app.settings.SettingsEnums.ACTION_ADAPTIVE_CONNECTIVITY import android.content.Context import android.net.wifi.WifiManager import android.provider.Settings.Secure.ADAPTIVE_CONNECTIVITY_ENABLED -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.R import com.android.settings.contract.KEY_ADAPTIVE_CONNECTIVITY +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.KeyedObservableDelegate import com.android.settingslib.datastore.SettingsSecureStore import com.android.settingslib.datastore.SettingsStore -import com.android.settingslib.datastore.and import com.android.settingslib.metadata.MainSwitchPreference import com.android.settingslib.metadata.ReadWritePermit import com.android.settingslib.metadata.SensitivityLevel diff --git a/src/com/android/settings/network/AirplaneModePreference.kt b/src/com/android/settings/network/AirplaneModePreference.kt index afb70c7f890..b2d07a0cc4c 100644 --- a/src/com/android/settings/network/AirplaneModePreference.kt +++ b/src/com/android/settings/network/AirplaneModePreference.kt @@ -30,11 +30,11 @@ import android.telephony.TelephonyManager import androidx.annotation.DrawableRes import androidx.preference.Preference import com.android.settings.AirplaneModeEnabler -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.Utils import com.android.settings.contract.KEY_AIRPLANE_MODE +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settings.network.SatelliteRepository.Companion.isSatelliteOn import com.android.settingslib.RestrictedSwitchPreference import com.android.settingslib.datastore.AbstractKeyedDataObservable diff --git a/src/com/android/settings/network/MobileDataPreference.kt b/src/com/android/settings/network/MobileDataPreference.kt index 6cb3da259cf..bb02b799234 100644 --- a/src/com/android/settings/network/MobileDataPreference.kt +++ b/src/com/android/settings/network/MobileDataPreference.kt @@ -20,9 +20,9 @@ import android.Manifest import android.app.settings.SettingsEnums.ACTION_MOBILE_DATA import android.content.Context import android.telephony.SubscriptionManager -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.R import com.android.settings.contract.KEY_MOBILE_DATA +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settings.network.telephony.MobileDataRepository import com.android.settings.network.telephony.SubscriptionRepository import com.android.settingslib.datastore.KeyValueStore diff --git a/src/com/android/settings/notification/CallVolumePreference.kt b/src/com/android/settings/notification/CallVolumePreference.kt index a0d7561f7f3..da96017398b 100644 --- a/src/com/android/settings/notification/CallVolumePreference.kt +++ b/src/com/android/settings/notification/CallVolumePreference.kt @@ -27,10 +27,10 @@ import android.media.AudioManager.STREAM_BLUETOOTH_SCO import android.media.AudioManager.STREAM_VOICE_CALL import android.os.UserManager import androidx.preference.Preference -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_CALL_VOLUME +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.NoOpKeyedObservable import com.android.settingslib.datastore.Permissions diff --git a/src/com/android/settings/notification/MediaVolumePreference.kt b/src/com/android/settings/notification/MediaVolumePreference.kt index 8af2353dfdc..c21cd1767e7 100644 --- a/src/com/android/settings/notification/MediaVolumePreference.kt +++ b/src/com/android/settings/notification/MediaVolumePreference.kt @@ -24,10 +24,10 @@ import android.content.pm.PackageManager.FEATURE_AUTOMOTIVE import android.media.AudioManager.STREAM_MUSIC import android.os.UserManager import androidx.preference.Preference -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_MEDIA_VOLUME +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.NoOpKeyedObservable import com.android.settingslib.datastore.Permissions diff --git a/src/com/android/settings/notification/SeparateRingVolumePreference.kt b/src/com/android/settings/notification/SeparateRingVolumePreference.kt index fba3eb404a7..916d7bb53cb 100644 --- a/src/com/android/settings/notification/SeparateRingVolumePreference.kt +++ b/src/com/android/settings/notification/SeparateRingVolumePreference.kt @@ -40,10 +40,10 @@ import android.os.Vibrator import android.service.notification.NotificationListenerService.HINT_HOST_DISABLE_CALL_EFFECTS import android.service.notification.NotificationListenerService.HINT_HOST_DISABLE_EFFECTS import androidx.preference.Preference -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_RING_VOLUME +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.NoOpKeyedObservable import com.android.settingslib.datastore.Permissions diff --git a/src/com/android/settings/wifi/WifiSwitchPreference.kt b/src/com/android/settings/wifi/WifiSwitchPreference.kt index 53445c5701a..b2410dffb7e 100644 --- a/src/com/android/settings/wifi/WifiSwitchPreference.kt +++ b/src/com/android/settings/wifi/WifiSwitchPreference.kt @@ -30,10 +30,10 @@ import android.provider.Settings import android.widget.Toast import androidx.preference.Preference import androidx.preference.Preference.OnPreferenceChangeListener -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_WIFI +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settings.network.SatelliteRepository.Companion.isSatelliteOn import com.android.settings.network.SatelliteWarningDialogActivity import com.android.settings.overlay.FeatureFactory.Companion.featureFactory diff --git a/src/com/android/settings/wifi/calling/WifiCallingMainSwitchPreference.kt b/src/com/android/settings/wifi/calling/WifiCallingMainSwitchPreference.kt index ccf89d0192a..5362f0eb8d6 100644 --- a/src/com/android/settings/wifi/calling/WifiCallingMainSwitchPreference.kt +++ b/src/com/android/settings/wifi/calling/WifiCallingMainSwitchPreference.kt @@ -25,9 +25,9 @@ import android.telephony.SubscriptionManager import android.telephony.TelephonyManager import android.telephony.ims.ImsMmTelManager import android.util.Log -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.R import com.android.settings.contract.KEY_WIFI_CALLING +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settings.network.ims.WifiCallingQueryImsState import com.android.settings.network.telephony.wificalling.WifiCallingRepository import com.android.settings.widget.SettingsMainSwitchPreference diff --git a/src/com/android/settings/wifi/tether/WifiHotspotSwitchPreference.kt b/src/com/android/settings/wifi/tether/WifiHotspotSwitchPreference.kt index fbe431718ec..ffffacfe96d 100644 --- a/src/com/android/settings/wifi/tether/WifiHotspotSwitchPreference.kt +++ b/src/com/android/settings/wifi/tether/WifiHotspotSwitchPreference.kt @@ -28,13 +28,13 @@ import android.net.wifi.WifiManager import android.os.UserManager import android.text.BidiFormatter import android.util.Log -import com.android.settings.PreferenceActionMetricsProvider import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.Utils import com.android.settings.contract.KEY_WIFI_HOTSPOT import com.android.settings.core.SubSettingLauncher import com.android.settings.datausage.DataSaverMainSwitchPreference.Companion.KEY as DATA_SAVER_KEY +import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settings.wifi.WifiUtils.canShowWifiHotspot import com.android.settings.wifi.utils.tetheringManager import com.android.settings.wifi.utils.wifiApState diff --git a/tests/robotests/testutils/com/android/settings/testutils/MetricsRule.kt b/tests/robotests/testutils/com/android/settings/testutils/MetricsRule.kt index 44fa4bf90c6..d5803b3447f 100644 --- a/tests/robotests/testutils/com/android/settings/testutils/MetricsRule.kt +++ b/tests/robotests/testutils/com/android/settings/testutils/MetricsRule.kt @@ -18,7 +18,7 @@ package com.android.settings.testutils import android.content.Context import androidx.test.core.app.ApplicationProvider -import com.android.settings.SettingsMetricsLogger +import com.android.settings.metrics.SettingsMetricsLogger import com.android.settingslib.core.instrumentation.MetricsFeatureProvider import com.android.settingslib.metadata.PreferenceScreenRegistry import org.junit.rules.TestWatcher From a2e663dadde835230b15996b1291d8492f8c473c Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Tue, 11 Feb 2025 20:15:27 +0800 Subject: [PATCH 2/2] [Catalyst] Move PreferenceRestrictionMixin NO_IFTTT=Catalyst only Bug: 377600992 Flag: EXEMPT refactor Test: atest Change-Id: I3c26a5a56d8fd6e887e4ff4d38d8e8eb97844672 --- .../android/settings/SettingsPreferenceBindingFactory.kt | 3 +++ .../settings/connecteddevice/BluetoothPreference.kt | 2 +- .../android/settings/display/AdaptiveSleepPreference.kt | 2 +- .../settings/display/AmbientDisplayAlwaysOnPreference.kt | 2 +- src/com/android/settings/display/AutoBrightnessScreen.kt | 2 +- .../android/settings/display/BrightnessLevelPreference.kt | 2 +- src/com/android/settings/network/AirplaneModePreference.kt | 2 +- .../android/settings/network/MobileNetworkListScreen.kt | 2 +- src/com/android/settings/network/NetworkProviderScreen.kt | 7 +++---- src/com/android/settings/network/tether/TetherScreen.kt | 2 +- .../android/settings/notification/CallVolumePreference.kt | 2 +- .../android/settings/notification/MediaVolumePreference.kt | 2 +- .../settings/notification/SeparateRingVolumePreference.kt | 2 +- .../{ => restriction}/PreferenceRestrictionMixin.kt | 2 +- .../settings/restriction/UserRestrictionBindingHelper.kt | 1 - src/com/android/settings/wifi/WifiSwitchPreference.kt | 2 +- .../settings/wifi/tether/WifiHotspotSwitchPreference.kt | 2 +- 17 files changed, 20 insertions(+), 19 deletions(-) rename src/com/android/settings/{ => restriction}/PreferenceRestrictionMixin.kt (98%) diff --git a/src/com/android/settings/SettingsPreferenceBindingFactory.kt b/src/com/android/settings/SettingsPreferenceBindingFactory.kt index b0fa4d98d7b..dbc6c60b267 100644 --- a/src/com/android/settings/SettingsPreferenceBindingFactory.kt +++ b/src/com/android/settings/SettingsPreferenceBindingFactory.kt @@ -17,6 +17,9 @@ package com.android.settings import androidx.preference.Preference +import com.android.settings.restriction.PreferenceRestrictionMixin +import com.android.settings.restriction.getRestrictionEnforcedAdmin +import com.android.settings.restriction.hasBaseUserRestriction import com.android.settingslib.RestrictedPreferenceHelperProvider import com.android.settingslib.metadata.PreferenceHierarchyNode import com.android.settingslib.preference.DefaultPreferenceBindingFactory diff --git a/src/com/android/settings/connecteddevice/BluetoothPreference.kt b/src/com/android/settings/connecteddevice/BluetoothPreference.kt index 43d2aeb50c9..0e85f355718 100644 --- a/src/com/android/settings/connecteddevice/BluetoothPreference.kt +++ b/src/com/android/settings/connecteddevice/BluetoothPreference.kt @@ -28,12 +28,12 @@ import android.os.UserManager import android.provider.Settings import android.widget.Toast import androidx.preference.Preference -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_BLUETOOTH import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settings.network.SatelliteRepository.Companion.isSatelliteOn import com.android.settings.network.SatelliteWarningDialogActivity +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settings.widget.MainSwitchBarMetadata import com.android.settingslib.WirelessUtils import com.android.settingslib.datastore.AbstractKeyedDataObservable diff --git a/src/com/android/settings/display/AdaptiveSleepPreference.kt b/src/com/android/settings/display/AdaptiveSleepPreference.kt index 9c6259a5b66..a38925c5458 100644 --- a/src/com/android/settings/display/AdaptiveSleepPreference.kt +++ b/src/com/android/settings/display/AdaptiveSleepPreference.kt @@ -27,10 +27,10 @@ import android.hardware.SensorPrivacyManager.Sensors.CAMERA import android.os.PowerManager import android.os.UserManager import android.provider.Settings -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_SCREEN_ATTENTION import com.android.settings.metrics.PreferenceActionMetricsProvider +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settingslib.RestrictedSwitchPreference import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.KeyedObservableDelegate diff --git a/src/com/android/settings/display/AmbientDisplayAlwaysOnPreference.kt b/src/com/android/settings/display/AmbientDisplayAlwaysOnPreference.kt index 3cfb311b8fb..86614eebaa6 100644 --- a/src/com/android/settings/display/AmbientDisplayAlwaysOnPreference.kt +++ b/src/com/android/settings/display/AmbientDisplayAlwaysOnPreference.kt @@ -23,11 +23,11 @@ import android.os.SystemProperties import android.os.UserHandle import android.os.UserManager import android.provider.Settings.Secure.DOZE_ALWAYS_ON -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_AMBIENT_DISPLAY_ALWAYS_ON import com.android.settings.display.AmbientDisplayAlwaysOnPreferenceController.isAodSuppressedByBedtime import com.android.settings.metrics.PreferenceActionMetricsProvider +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settingslib.datastore.AbstractKeyedDataObservable import com.android.settingslib.datastore.HandlerExecutor import com.android.settingslib.datastore.KeyValueStore diff --git a/src/com/android/settings/display/AutoBrightnessScreen.kt b/src/com/android/settings/display/AutoBrightnessScreen.kt index fda4c9057ed..d486b37e798 100644 --- a/src/com/android/settings/display/AutoBrightnessScreen.kt +++ b/src/com/android/settings/display/AutoBrightnessScreen.kt @@ -23,11 +23,11 @@ import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL import androidx.preference.Preference import androidx.preference.PreferenceScreen -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_ADAPTIVE_BRIGHTNESS import com.android.settings.flags.Flags import com.android.settings.metrics.PreferenceActionMetricsProvider +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settingslib.PrimarySwitchPreferenceBinding import com.android.settingslib.datastore.AbstractKeyedDataObservable import com.android.settingslib.datastore.HandlerExecutor diff --git a/src/com/android/settings/display/BrightnessLevelPreference.kt b/src/com/android/settings/display/BrightnessLevelPreference.kt index ea43b3aa5c2..3dd544e7c1d 100644 --- a/src/com/android/settings/display/BrightnessLevelPreference.kt +++ b/src/com/android/settings/display/BrightnessLevelPreference.kt @@ -27,12 +27,12 @@ import android.hardware.display.DisplayManager.DisplayListener import android.os.UserManager import android.provider.Settings.System import androidx.preference.Preference -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.Utils import com.android.settings.contract.KEY_BRIGHTNESS_LEVEL import com.android.settings.core.SettingsBaseActivity import com.android.settings.metrics.PreferenceActionMetricsProvider +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settingslib.RestrictedPreference import com.android.settingslib.datastore.AbstractKeyedDataObservable import com.android.settingslib.datastore.HandlerExecutor diff --git a/src/com/android/settings/network/AirplaneModePreference.kt b/src/com/android/settings/network/AirplaneModePreference.kt index b2d07a0cc4c..3d80f12ce2d 100644 --- a/src/com/android/settings/network/AirplaneModePreference.kt +++ b/src/com/android/settings/network/AirplaneModePreference.kt @@ -30,12 +30,12 @@ import android.telephony.TelephonyManager import androidx.annotation.DrawableRes import androidx.preference.Preference import com.android.settings.AirplaneModeEnabler -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.Utils import com.android.settings.contract.KEY_AIRPLANE_MODE import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settings.network.SatelliteRepository.Companion.isSatelliteOn +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settingslib.RestrictedSwitchPreference import com.android.settingslib.datastore.AbstractKeyedDataObservable import com.android.settingslib.datastore.KeyValueStore diff --git a/src/com/android/settings/network/MobileNetworkListScreen.kt b/src/com/android/settings/network/MobileNetworkListScreen.kt index 592260b151d..48c6b317dfa 100644 --- a/src/com/android/settings/network/MobileNetworkListScreen.kt +++ b/src/com/android/settings/network/MobileNetworkListScreen.kt @@ -22,7 +22,6 @@ import android.telephony.SubscriptionManager import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener import androidx.preference.Preference import androidx.preference.Preference.OnPreferenceClickListener -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.flags.Flags import com.android.settings.network.AirplaneModePreference.Companion.isAirplaneModeOn @@ -30,6 +29,7 @@ import com.android.settings.network.SubscriptionUtil.getUniqueSubscriptionDispla import com.android.settings.network.telephony.SimRepository import com.android.settings.network.telephony.SubscriptionRepository import com.android.settings.network.telephony.euicc.EuiccRepository +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settings.spa.network.getAddSimIntent import com.android.settings.spa.network.startAddSimFlow import com.android.settingslib.RestrictedPreference diff --git a/src/com/android/settings/network/NetworkProviderScreen.kt b/src/com/android/settings/network/NetworkProviderScreen.kt index 198eeec1db7..c7d78f21865 100644 --- a/src/com/android/settings/network/NetworkProviderScreen.kt +++ b/src/com/android/settings/network/NetworkProviderScreen.kt @@ -17,9 +17,9 @@ package com.android.settings.network import android.content.Context import android.os.UserManager -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.flags.Flags +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settings.wifi.WifiSwitchPreference import com.android.settingslib.metadata.PreferenceAvailabilityProvider import com.android.settingslib.metadata.ProvidePreferenceScreen @@ -55,9 +55,8 @@ class NetworkProviderScreen : override fun fragmentClass() = NetworkProviderSettings::class.java - override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(context, this) { - +WifiSwitchPreference() - } + override fun getPreferenceHierarchy(context: Context) = + preferenceHierarchy(context, this) { +WifiSwitchPreference() } companion object { const val KEY = "internet_settings" diff --git a/src/com/android/settings/network/tether/TetherScreen.kt b/src/com/android/settings/network/tether/TetherScreen.kt index cd8851326fe..0eedfa50455 100644 --- a/src/com/android/settings/network/tether/TetherScreen.kt +++ b/src/com/android/settings/network/tether/TetherScreen.kt @@ -18,12 +18,12 @@ package com.android.settings.network.tether import android.content.Context import android.net.TetheringManager import android.os.UserManager -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.Settings.TetherSettingsActivity import com.android.settings.datausage.DataSaverMainSwitchPreference import com.android.settings.flags.Flags import com.android.settings.network.TetherPreferenceController +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settings.utils.makeLaunchIntent import com.android.settings.wifi.tether.WifiHotspotSwitchPreference import com.android.settingslib.TetherUtil diff --git a/src/com/android/settings/notification/CallVolumePreference.kt b/src/com/android/settings/notification/CallVolumePreference.kt index da96017398b..aaa59611fd3 100644 --- a/src/com/android/settings/notification/CallVolumePreference.kt +++ b/src/com/android/settings/notification/CallVolumePreference.kt @@ -27,10 +27,10 @@ import android.media.AudioManager.STREAM_BLUETOOTH_SCO import android.media.AudioManager.STREAM_VOICE_CALL import android.os.UserManager import androidx.preference.Preference -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_CALL_VOLUME import com.android.settings.metrics.PreferenceActionMetricsProvider +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.NoOpKeyedObservable import com.android.settingslib.datastore.Permissions diff --git a/src/com/android/settings/notification/MediaVolumePreference.kt b/src/com/android/settings/notification/MediaVolumePreference.kt index c21cd1767e7..9910843edc1 100644 --- a/src/com/android/settings/notification/MediaVolumePreference.kt +++ b/src/com/android/settings/notification/MediaVolumePreference.kt @@ -24,10 +24,10 @@ import android.content.pm.PackageManager.FEATURE_AUTOMOTIVE import android.media.AudioManager.STREAM_MUSIC import android.os.UserManager import androidx.preference.Preference -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_MEDIA_VOLUME import com.android.settings.metrics.PreferenceActionMetricsProvider +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.NoOpKeyedObservable import com.android.settingslib.datastore.Permissions diff --git a/src/com/android/settings/notification/SeparateRingVolumePreference.kt b/src/com/android/settings/notification/SeparateRingVolumePreference.kt index 916d7bb53cb..a3c3b68ea2e 100644 --- a/src/com/android/settings/notification/SeparateRingVolumePreference.kt +++ b/src/com/android/settings/notification/SeparateRingVolumePreference.kt @@ -40,10 +40,10 @@ import android.os.Vibrator import android.service.notification.NotificationListenerService.HINT_HOST_DISABLE_CALL_EFFECTS import android.service.notification.NotificationListenerService.HINT_HOST_DISABLE_EFFECTS import androidx.preference.Preference -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_RING_VOLUME import com.android.settings.metrics.PreferenceActionMetricsProvider +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.NoOpKeyedObservable import com.android.settingslib.datastore.Permissions diff --git a/src/com/android/settings/PreferenceRestrictionMixin.kt b/src/com/android/settings/restriction/PreferenceRestrictionMixin.kt similarity index 98% rename from src/com/android/settings/PreferenceRestrictionMixin.kt rename to src/com/android/settings/restriction/PreferenceRestrictionMixin.kt index 8a3640756fd..432bb6281c6 100644 --- a/src/com/android/settings/PreferenceRestrictionMixin.kt +++ b/src/com/android/settings/restriction/PreferenceRestrictionMixin.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.settings +package com.android.settings.restriction import android.content.Context import android.os.UserHandle diff --git a/src/com/android/settings/restriction/UserRestrictionBindingHelper.kt b/src/com/android/settings/restriction/UserRestrictionBindingHelper.kt index 4dca003d704..3145383507c 100644 --- a/src/com/android/settings/restriction/UserRestrictionBindingHelper.kt +++ b/src/com/android/settings/restriction/UserRestrictionBindingHelper.kt @@ -17,7 +17,6 @@ package com.android.settings.restriction import android.content.Context -import com.android.settings.PreferenceRestrictionMixin import com.android.settingslib.datastore.HandlerExecutor import com.android.settingslib.datastore.KeyedObserver import com.android.settingslib.metadata.PreferenceChangeReason diff --git a/src/com/android/settings/wifi/WifiSwitchPreference.kt b/src/com/android/settings/wifi/WifiSwitchPreference.kt index b2410dffb7e..0c22fa2ec89 100644 --- a/src/com/android/settings/wifi/WifiSwitchPreference.kt +++ b/src/com/android/settings/wifi/WifiSwitchPreference.kt @@ -30,13 +30,13 @@ import android.provider.Settings import android.widget.Toast import androidx.preference.Preference import androidx.preference.Preference.OnPreferenceChangeListener -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.contract.KEY_WIFI import com.android.settings.metrics.PreferenceActionMetricsProvider import com.android.settings.network.SatelliteRepository.Companion.isSatelliteOn import com.android.settings.network.SatelliteWarningDialogActivity import com.android.settings.overlay.FeatureFactory.Companion.featureFactory +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settings.wifi.utils.isDefaultNetworkWifi import com.android.settings.wifi.utils.isWifiEnabled import com.android.settings.wifi.utils.wifiManager diff --git a/src/com/android/settings/wifi/tether/WifiHotspotSwitchPreference.kt b/src/com/android/settings/wifi/tether/WifiHotspotSwitchPreference.kt index ffffacfe96d..ec55f74928e 100644 --- a/src/com/android/settings/wifi/tether/WifiHotspotSwitchPreference.kt +++ b/src/com/android/settings/wifi/tether/WifiHotspotSwitchPreference.kt @@ -28,13 +28,13 @@ import android.net.wifi.WifiManager import android.os.UserManager import android.text.BidiFormatter import android.util.Log -import com.android.settings.PreferenceRestrictionMixin import com.android.settings.R import com.android.settings.Utils import com.android.settings.contract.KEY_WIFI_HOTSPOT import com.android.settings.core.SubSettingLauncher import com.android.settings.datausage.DataSaverMainSwitchPreference.Companion.KEY as DATA_SAVER_KEY import com.android.settings.metrics.PreferenceActionMetricsProvider +import com.android.settings.restriction.PreferenceRestrictionMixin import com.android.settings.wifi.WifiUtils.canShowWifiHotspot import com.android.settings.wifi.utils.tetheringManager import com.android.settings.wifi.utils.wifiApState