From 51696f80cb2e84885752d16ef7052a16d0cbdd8a Mon Sep 17 00:00:00 2001 From: Angela Wang Date: Mon, 17 Feb 2025 08:51:59 +0000 Subject: [PATCH] Add ambient volume control related logs in Settings Flag: EXEMPT simple log added Bug: 397140123 Test: manually check on go/atomviewer Test: atest BluetoothDetailsAmbientVolumePreferenceControllerTest Change-Id: I04121e22ca3b96a010da7cdc2ff9ba2c5f9213b9 --- .../bluetooth/AmbientVolumePreference.java | 30 +++++++++++++++++-- ...ailsAmbientVolumePreferenceController.java | 4 +++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/bluetooth/AmbientVolumePreference.java b/src/com/android/settings/bluetooth/AmbientVolumePreference.java index 4f89007cf5f..b39e9613ce4 100644 --- a/src/com/android/settings/bluetooth/AmbientVolumePreference.java +++ b/src/com/android/settings/bluetooth/AmbientVolumePreference.java @@ -37,6 +37,7 @@ import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceViewHolder; import com.android.settings.R; +import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.bluetooth.AmbientVolumeUi; import com.android.settingslib.widget.SliderPreference; @@ -58,6 +59,10 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV private static final int ORDER_AMBIENT_VOLUME_CONTROL_UNIFIED = 0; private static final int ORDER_AMBIENT_VOLUME_CONTROL_SEPARATED = 1; + private static final String METRIC_KEY_AMBIENT_SLIDER = "ambient_slider"; + private static final String METRIC_KEY_AMBIENT_MUTE = "ambient_mute"; + private static final String METRIC_KEY_AMBIENT_EXPAND = "ambient_expand"; + @Nullable private AmbientVolumeUiListener mListener; @Nullable @@ -71,12 +76,17 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV private final BiMap mSideToSliderMap = HashBiMap.create(); private int mVolumeLevel = AMBIENT_VOLUME_LEVEL_DEFAULT; + private int mMetricsCategory; + private final OnPreferenceChangeListener mPreferenceChangeListener = (slider, v) -> { if (slider instanceof SliderPreference && v instanceof final Integer value) { final Integer side = mSideToSliderMap.inverse().get(slider); - if (mListener != null && side != null) { - mListener.onSliderValueChange(side, value); + if (side != null) { + logMetrics(METRIC_KEY_AMBIENT_SLIDER, side); + if (mListener != null) { + mListener.onSliderValueChange(side, value); + } } return true; } @@ -106,6 +116,7 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV return; } setMuted(!mMuted); + logMetrics(METRIC_KEY_AMBIENT_MUTE, mMuted ? 1 : 0); if (mListener != null) { mListener.onAmbientVolumeIconClick(); } @@ -115,6 +126,7 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV mExpandIcon = holder.itemView.requireViewById(R.id.expand_icon); mExpandIcon.setOnClickListener(v -> { setExpanded(!mExpanded); + logMetrics(METRIC_KEY_AMBIENT_EXPAND, mExpanded ? 1 : 0); if (mListener != null) { mListener.onExpandIconClick(); } @@ -249,6 +261,15 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV updateVolumeLevel(); } + /** Sets the metrics category. */ + public void setMetricsCategory(int category) { + mMetricsCategory = category; + } + + private int getMetricsCategory() { + return mMetricsCategory; + } + private void updateVolumeLevel() { int leftLevel, rightLevel; if (mExpanded) { @@ -329,4 +350,9 @@ public class AmbientVolumePreference extends PreferenceGroup implements AmbientV Map getSliders() { return mSideToSliderMap; } + + private void logMetrics(String key, int value) { + FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().changed( + getMetricsCategory(), key, value); + } } diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsAmbientVolumePreferenceController.java b/src/com/android/settings/bluetooth/BluetoothDetailsAmbientVolumePreferenceController.java index 8dbfedf2f10..0a2b2178c20 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsAmbientVolumePreferenceController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsAmbientVolumePreferenceController.java @@ -32,6 +32,7 @@ import com.android.settingslib.bluetooth.AmbientVolumeUiController; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.bluetooth.VolumeControlProfile; +import com.android.settingslib.core.instrumentation.Instrumentable; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; @@ -83,6 +84,9 @@ public class BluetoothDetailsAmbientVolumePreferenceController extends Bluetooth mPreference = new AmbientVolumePreference(deviceControls.getContext()); mPreference.setKey(KEY_AMBIENT_VOLUME); mPreference.setOrder(ORDER_AMBIENT_VOLUME); + if (mFragment instanceof Instrumentable) { + mPreference.setMetricsCategory(((Instrumentable) mFragment).getMetricsCategory()); + } deviceControls.addPreference(mPreference); mAmbientUiController = new AmbientVolumeUiController(mContext, mBluetoothManager,