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
This commit is contained in:
Angela Wang
2025-02-17 08:51:59 +00:00
parent 90feafb10a
commit 51696f80cb
2 changed files with 32 additions and 2 deletions

View File

@@ -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<Integer, SliderPreference> 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<Integer, SliderPreference> getSliders() {
return mSideToSliderMap;
}
private void logMetrics(String key, int value) {
FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().changed(
getMetricsCategory(), key, value);
}
}

View File

@@ -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,