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

Commit 065e4f0e authored by Yiyi Shen's avatar Yiyi Shen
Browse files

[Audiosharing] Refine the stats log with nonnull stats key

To differentiate the stats log from some framework generated log with
null changedPreferenceKey.

Flag: com.android.settingslib.flags.enable_le_audio_sharing
Test: atest
Bug: 305620450
Change-Id: I9d9bf2aacee0c71ab3b2a3aaecec22acdfc54d31
parent fab84a2a
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.settings.connecteddevice.audiosharing;

import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.MetricKey.METRIC_KEY_VALUE;

import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothLeBroadcast;
import android.bluetooth.BluetoothLeBroadcastMetadata;
@@ -188,7 +190,11 @@ public class AudioSharingCompatibilityPreferenceController extends TogglePrefere
        mBroadcast.setImproveCompatibility(isChecked);
        // TODO: call updateBroadcast once framework change ready.
        mMetricsFeatureProvider.action(
                mContext, SettingsEnums.ACTION_AUDIO_SHARING_IMPROVE_COMPATIBILITY, isChecked);
                SettingsEnums.PAGE_UNKNOWN,
                SettingsEnums.ACTION_AUDIO_SHARING_IMPROVE_COMPATIBILITY,
                SettingsEnums.PAGE_UNKNOWN,
                /* changedPreferenceKey= */ METRIC_KEY_VALUE.toString(),
                /* changedPreferenceIntValue= */ isChecked ? 1 : 0);
        return true;
    }

+10 −4
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.settings.connecteddevice.audiosharing;

import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.MetricKey.METRIC_KEY_DEVICE_IS_PRIMARY;

import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothCsipSetCoordinator;
import android.bluetooth.BluetoothDevice;
@@ -176,9 +178,11 @@ public class AudioSharingDeviceVolumePreference extends SeekBarPreference {
        if (vc != null) {
            vc.setDeviceVolume(device, progress, /* isGroupOp= */ true);
            mMetricsFeatureProvider.action(
                    mContext,
                    SettingsEnums.PAGE_UNKNOWN,
                    SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
                    /* isPrimary= */ false);
                    SettingsEnums.PAGE_UNKNOWN,
                    String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId()),
                    /* isPrimary= */ 0);
            Log.d(
                    TAG,
                    "set device volume, device = "
@@ -200,9 +204,11 @@ public class AudioSharingDeviceVolumePreference extends SeekBarPreference {
            int volume = Math.round((float) progress * streamVolumeRange / seekbarRange);
            audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
            mMetricsFeatureProvider.action(
                    mContext,
                    SettingsEnums.PAGE_UNKNOWN,
                    SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
                    /* isPrimary= */ true);
                    SettingsEnums.PAGE_UNKNOWN,
                    String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId()),
                    /* isPrimary= */ 1);
            Log.d(TAG, "set music stream volume, volume = " + progress);
        } catch (RuntimeException e) {
            Log.e(TAG, "Fail to setAudioManagerStreamVolumeForFallbackDevice, error = " + e);
+10 −4
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.settings.connecteddevice.audiosharing;

import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.MetricKey.METRIC_KEY_DEVICE_IS_PRIMARY;

import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothCsipSetCoordinator;
import android.bluetooth.BluetoothDevice;
@@ -150,9 +152,11 @@ public class AudioSharingDeviceVolumeSliderPreference extends SliderPreference {
        if (vc != null) {
            vc.setDeviceVolume(device, progress, /* isGroupOp= */ true);
            mMetricsFeatureProvider.action(
                    mContext,
                    SettingsEnums.PAGE_UNKNOWN,
                    SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
                    /* isPrimary= */ false);
                    SettingsEnums.PAGE_UNKNOWN,
                    String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId()),
                    /* isPrimary= */ 0);
            Log.d(
                    TAG,
                    "set device volume, device = "
@@ -174,9 +178,11 @@ public class AudioSharingDeviceVolumeSliderPreference extends SliderPreference {
            int volume = Math.round((float) progress * streamVolumeRange / seekbarRange);
            audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
            mMetricsFeatureProvider.action(
                    mContext,
                    SettingsEnums.PAGE_UNKNOWN,
                    SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
                    /* isPrimary= */ true);
                    SettingsEnums.PAGE_UNKNOWN,
                    String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId()),
                    /* isPrimary= */ 1);
            Log.d(TAG, "set music stream volume, volume = " + progress);
        } catch (RuntimeException e) {
            Log.e(TAG, "Fail to setAudioManagerStreamVolumeForFallbackDevice, error = " + e);
+17 −9
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.settings.connecteddevice.audiosharing;

import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.MetricKey.METRIC_KEY_VALUE;
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;

@@ -39,6 +40,8 @@ import android.bluetooth.BluetoothLeBroadcastMetadata;
import android.bluetooth.BluetoothStatusCodes;
import android.content.Context;
import android.os.Looper;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;

import androidx.lifecycle.LifecycleOwner;
@@ -136,8 +139,8 @@ public class AudioSharingCompatibilityPreferenceControllerTest {
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
    public void onStart_flagOn_registerCallback() {
        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
        mController.onStart(mLifecycleOwner);
        verify(mBroadcast)
                .registerServiceCallBack(
@@ -146,8 +149,8 @@ public class AudioSharingCompatibilityPreferenceControllerTest {
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
    public void onStart_flagOnProfileNotReady_registerProfileCallback() {
        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
        when(mBroadcast.isProfileReady()).thenReturn(false);
        mController.onStart(mLifecycleOwner);
        verify(mBroadcast, never())
@@ -157,8 +160,8 @@ public class AudioSharingCompatibilityPreferenceControllerTest {
    }

    @Test
    @DisableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
    public void onStart_flagOff_doNothing() {
        mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
        mController.onStart(mLifecycleOwner);
        verify(mBroadcast, never())
                .registerServiceCallBack(
@@ -166,8 +169,8 @@ public class AudioSharingCompatibilityPreferenceControllerTest {
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
    public void onStop_flagOn_unregisterCallback() {
        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
        mController.setCallbacksRegistered(true);
        mController.onStop(mLifecycleOwner);
        verify(mBroadcast).unregisterServiceCallBack(any(BluetoothLeBroadcast.Callback.class));
@@ -175,8 +178,8 @@ public class AudioSharingCompatibilityPreferenceControllerTest {
    }

    @Test
    @DisableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
    public void onStop_flagOff_doNothing() {
        mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
        mController.setCallbacksRegistered(true);
        mController.onStop(mLifecycleOwner);
        verify(mBroadcast, never())
@@ -185,8 +188,8 @@ public class AudioSharingCompatibilityPreferenceControllerTest {
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
    public void onServiceConnected_updateSwitch() {
        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
        when(mBroadcast.isEnabled(null)).thenReturn(false);
        when(mBroadcast.isProfileReady()).thenReturn(false);
        mController.displayPreference(mScreen);
@@ -206,14 +209,14 @@ public class AudioSharingCompatibilityPreferenceControllerTest {
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
    public void getAvailabilityStatus_flagOn() {
        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
    }

    @Test
    @DisableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
    public void getAvailabilityStatus_flagOff() {
        mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
    }

@@ -271,7 +274,12 @@ public class AudioSharingCompatibilityPreferenceControllerTest {
        boolean setChecked = mController.setChecked(false);
        verify(mBroadcast).setImproveCompatibility(false);
        verify(mFeatureFactory.metricsFeatureProvider)
                .action(mContext, SettingsEnums.ACTION_AUDIO_SHARING_IMPROVE_COMPATIBILITY, false);
                .action(
                        SettingsEnums.PAGE_UNKNOWN,
                        SettingsEnums.ACTION_AUDIO_SHARING_IMPROVE_COMPATIBILITY,
                        SettingsEnums.PAGE_UNKNOWN,
                        /* changedPreferenceKey */ METRIC_KEY_VALUE.toString(),
                        /* changedPreferenceIntValue */ 0);
        assertThat(setChecked).isTrue();
    }

+51 −26
Original line number Diff line number Diff line
@@ -16,10 +16,11 @@

package com.android.settings.connecteddevice.audiosharing;

import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.MetricKey.METRIC_KEY_DEVICE_IS_PRIMARY;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -146,9 +147,11 @@ public class AudioSharingDeviceVolumePreferenceTest {
        verifyNoInteractions(mAudioManager);
        verify(mFeatureFactory.metricsFeatureProvider)
                .action(
                        mContext,
                        SettingsEnums.PAGE_UNKNOWN,
                        SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
                        /* isPrimary= */ false);
                        SettingsEnums.PAGE_UNKNOWN,
                        String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId()),
                        /* isPrimary */ 0);
    }

    @Test
@@ -159,9 +162,11 @@ public class AudioSharingDeviceVolumePreferenceTest {
        verifyNoInteractions(mAudioManager);
        verify(mFeatureFactory.metricsFeatureProvider)
                .action(
                        mContext,
                        SettingsEnums.PAGE_UNKNOWN,
                        SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
                        /* isPrimary= */ false);
                        SettingsEnums.PAGE_UNKNOWN,
                        String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId()),
                        /* isPrimary */ 0);
    }

    @Test
@@ -173,9 +178,11 @@ public class AudioSharingDeviceVolumePreferenceTest {
        verifyNoInteractions(mAudioManager);
        verify(mFeatureFactory.metricsFeatureProvider, never())
                .action(
                        any(Context.class),
                        eq(SettingsEnums.PAGE_UNKNOWN),
                        eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
                        anyBoolean());
                        eq(SettingsEnums.PAGE_UNKNOWN),
                        eq(String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId())),
                        anyInt());
    }

    @Test
@@ -186,9 +193,11 @@ public class AudioSharingDeviceVolumePreferenceTest {
        verifyNoInteractions(mAudioManager);
        verify(mFeatureFactory.metricsFeatureProvider, never())
                .action(
                        any(Context.class),
                        eq(SettingsEnums.PAGE_UNKNOWN),
                        eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
                        anyBoolean());
                        eq(SettingsEnums.PAGE_UNKNOWN),
                        eq(String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId())),
                        anyInt());
    }

    @Test
@@ -202,9 +211,11 @@ public class AudioSharingDeviceVolumePreferenceTest {
                .setStreamVolume(AudioManager.STREAM_MUSIC, TEST_MAX_STREAM_VALUE, /* flags= */ 0);
        verify(mFeatureFactory.metricsFeatureProvider)
                .action(
                        mContext,
                        SettingsEnums.PAGE_UNKNOWN,
                        SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
                        /* isPrimary= */ true);
                        SettingsEnums.PAGE_UNKNOWN,
                        String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId()),
                        /* isPrimary */ 1);
    }

    @Test
@@ -218,9 +229,11 @@ public class AudioSharingDeviceVolumePreferenceTest {
                .setStreamVolume(AudioManager.STREAM_MUSIC, TEST_MAX_STREAM_VALUE, /* flags= */ 0);
        verify(mFeatureFactory.metricsFeatureProvider)
                .action(
                        mContext,
                        SettingsEnums.PAGE_UNKNOWN,
                        SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
                        /* isPrimary= */ true);
                        SettingsEnums.PAGE_UNKNOWN,
                        String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId()),
                        /* isPrimary */ 1);
    }

    @Test
@@ -234,9 +247,11 @@ public class AudioSharingDeviceVolumePreferenceTest {
        verifyNoInteractions(mAudioManager);
        verify(mFeatureFactory.metricsFeatureProvider, never())
                .action(
                        any(Context.class),
                        eq(SettingsEnums.PAGE_UNKNOWN),
                        eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
                        anyBoolean());
                        eq(SettingsEnums.PAGE_UNKNOWN),
                        eq(String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId())),
                        anyInt());
    }

    @Test
@@ -249,9 +264,11 @@ public class AudioSharingDeviceVolumePreferenceTest {
        verifyNoInteractions(mAudioManager);
        verify(mFeatureFactory.metricsFeatureProvider, never())
                .action(
                        any(Context.class),
                        eq(SettingsEnums.PAGE_UNKNOWN),
                        eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
                        anyBoolean());
                        eq(SettingsEnums.PAGE_UNKNOWN),
                        eq(String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId())),
                        anyInt());
    }

    @Test
@@ -268,9 +285,11 @@ public class AudioSharingDeviceVolumePreferenceTest {
                .setStreamVolume(AudioManager.STREAM_MUSIC, TEST_MAX_STREAM_VALUE, /* flags= */ 0);
        verify(mFeatureFactory.metricsFeatureProvider)
                .action(
                        mContext,
                        SettingsEnums.PAGE_UNKNOWN,
                        SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
                        /* isPrimary= */ true);
                        SettingsEnums.PAGE_UNKNOWN,
                        String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId()),
                        /* isPrimary */ 1);
    }

    @Test
@@ -287,9 +306,11 @@ public class AudioSharingDeviceVolumePreferenceTest {
                .setStreamVolume(AudioManager.STREAM_MUSIC, TEST_MAX_STREAM_VALUE, /* flags= */ 0);
        verify(mFeatureFactory.metricsFeatureProvider)
                .action(
                        mContext,
                        SettingsEnums.PAGE_UNKNOWN,
                        SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
                        /* isPrimary= */ true);
                        SettingsEnums.PAGE_UNKNOWN,
                        String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId()),
                        /* isPrimary */ 1);
    }

    @Test
@@ -306,9 +327,11 @@ public class AudioSharingDeviceVolumePreferenceTest {
        verifyNoInteractions(mAudioManager);
        verify(mFeatureFactory.metricsFeatureProvider, never())
                .action(
                        any(Context.class),
                        eq(SettingsEnums.PAGE_UNKNOWN),
                        eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
                        anyBoolean());
                        eq(SettingsEnums.PAGE_UNKNOWN),
                        eq(String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId())),
                        anyInt());
    }

    @Test
@@ -324,9 +347,11 @@ public class AudioSharingDeviceVolumePreferenceTest {
        verifyNoInteractions(mAudioManager);
        verify(mFeatureFactory.metricsFeatureProvider, never())
                .action(
                        any(Context.class),
                        eq(SettingsEnums.PAGE_UNKNOWN),
                        eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
                        anyBoolean());
                        eq(SettingsEnums.PAGE_UNKNOWN),
                        eq(String.valueOf(METRIC_KEY_DEVICE_IS_PRIMARY.getId())),
                        anyInt());
    }

    @Test
Loading