Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 51696f80 authored by Angela Wang's avatar Angela Wang
Browse files

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
parent 90feafb1
Loading
Loading
Loading
Loading
+28 −2
Original line number Diff line number Diff line
@@ -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);
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -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,