Merge "Add ambient volume control related logs in Settings" into main
This commit is contained in:
@@ -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,13 +76,18 @@ 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) {
|
||||
if (side != null) {
|
||||
logMetrics(METRIC_KEY_AMBIENT_SLIDER, side);
|
||||
if (mListener != null) {
|
||||
mListener.onSliderValueChange(side, value);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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,
|
||||
|
Reference in New Issue
Block a user