Loading src/com/android/settings/sound/MediaOutputPreferenceController.java +4 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.sound; import static com.android.settingslib.media.flags.Flags.enableOutputSwitcherForSystemRouting; import static com.android.media.flags.Flags.enableOutputSwitcherPersonalAudioSharing; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothLeBroadcast; Loading Loading @@ -192,7 +193,9 @@ public class MediaOutputPreferenceController extends AudioSwitchPreferenceContro } if (isDeviceBroadcasting()) { mPreference.setSummary(R.string.media_output_audio_sharing); if (!enableOutputSwitcherPersonalAudioSharing()) { mPreference.setEnabled(false); } } else { mPreference.setSummary( (activeDevice == null) Loading tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java +28 −5 Original line number Diff line number Diff line Loading @@ -22,8 +22,8 @@ import static android.media.AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP; import static android.media.AudioSystem.DEVICE_OUT_EARPIECE; import static android.media.AudioSystem.DEVICE_OUT_HEARING_AID; import static com.android.settingslib.media.flags.Flags.FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING; import static com.android.settingslib.flags.Flags.FLAG_ENABLE_LE_AUDIO_SHARING; import static com.android.settingslib.media.flags.Flags.FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -51,6 +51,7 @@ import android.media.VolumeProvider; import android.media.session.MediaController; import android.media.session.MediaSessionManager; import android.media.session.PlaybackState; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; Loading @@ -61,7 +62,6 @@ import androidx.preference.PreferenceScreen; import com.android.media.flags.Flags; import com.android.settings.R; import com.android.settings.bluetooth.Utils; import com.android.settings.media.MediaOutputUtils; import com.android.settings.testutils.shadow.ShadowAudioManager; import com.android.settings.testutils.shadow.ShadowBluetoothUtils; import com.android.settingslib.bluetooth.A2dpProfile; Loading Loading @@ -255,10 +255,32 @@ public class MediaOutputPreferenceControllerTest { ShadowBluetoothUtils.reset(); } /** Device start broadcasting so Preference summary should become "Audio Sharing" */ /** Start broadcasting so Preference summary should become "Audio Sharing" and disabled */ @Test @EnableFlags(FLAG_ENABLE_LE_AUDIO_SHARING) @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_PERSONAL_AUDIO_SHARING) public void audioSharingStart_changeSummaryAndDisabled() { mController.onStart(); ArgumentCaptor<BluetoothLeBroadcast.Callback> broadcastCallbackCaptor = ArgumentCaptor.forClass(BluetoothLeBroadcast.Callback.class); mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_A2DP); mAudioManager.setMode(AudioManager.MODE_NORMAL); when(mLocalBluetoothLeBroadcast.isEnabled(null)).thenReturn(true); verify(mLocalBluetoothLeBroadcast) .registerServiceCallBack(any(), broadcastCallbackCaptor.capture()); BluetoothLeBroadcast.Callback callback = broadcastCallbackCaptor.getValue(); callback.onBroadcastStarted(0, 0); assertThat(mPreference.getSummary().toString()) .isEqualTo(mContext.getText(R.string.media_output_audio_sharing).toString()); assertThat(mPreference.isEnabled()).isFalse(); } /** Start broadcasting so Preference summary should become "Audio Sharing" and enabled */ @Test public void audioSharingStart_changeSummary() { mSetFlagsRule.enableFlags(FLAG_ENABLE_LE_AUDIO_SHARING); @EnableFlags({FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_OUTPUT_SWITCHER_PERSONAL_AUDIO_SHARING}) public void audioSharingStart_outputSwitcherIntegrated_changeSummaryAndEnabled() { mController.onStart(); ArgumentCaptor<BluetoothLeBroadcast.Callback> broadcastCallbackCaptor = ArgumentCaptor.forClass(BluetoothLeBroadcast.Callback.class); Loading @@ -272,6 +294,7 @@ public class MediaOutputPreferenceControllerTest { callback.onBroadcastStarted(0, 0); assertThat(mPreference.getSummary().toString()) .isEqualTo(mContext.getText(R.string.media_output_audio_sharing).toString()); assertThat(mPreference.isEnabled()).isTrue(); } /** Loading Loading
src/com/android/settings/sound/MediaOutputPreferenceController.java +4 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.sound; import static com.android.settingslib.media.flags.Flags.enableOutputSwitcherForSystemRouting; import static com.android.media.flags.Flags.enableOutputSwitcherPersonalAudioSharing; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothLeBroadcast; Loading Loading @@ -192,7 +193,9 @@ public class MediaOutputPreferenceController extends AudioSwitchPreferenceContro } if (isDeviceBroadcasting()) { mPreference.setSummary(R.string.media_output_audio_sharing); if (!enableOutputSwitcherPersonalAudioSharing()) { mPreference.setEnabled(false); } } else { mPreference.setSummary( (activeDevice == null) Loading
tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java +28 −5 Original line number Diff line number Diff line Loading @@ -22,8 +22,8 @@ import static android.media.AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP; import static android.media.AudioSystem.DEVICE_OUT_EARPIECE; import static android.media.AudioSystem.DEVICE_OUT_HEARING_AID; import static com.android.settingslib.media.flags.Flags.FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING; import static com.android.settingslib.flags.Flags.FLAG_ENABLE_LE_AUDIO_SHARING; import static com.android.settingslib.media.flags.Flags.FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -51,6 +51,7 @@ import android.media.VolumeProvider; import android.media.session.MediaController; import android.media.session.MediaSessionManager; import android.media.session.PlaybackState; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; Loading @@ -61,7 +62,6 @@ import androidx.preference.PreferenceScreen; import com.android.media.flags.Flags; import com.android.settings.R; import com.android.settings.bluetooth.Utils; import com.android.settings.media.MediaOutputUtils; import com.android.settings.testutils.shadow.ShadowAudioManager; import com.android.settings.testutils.shadow.ShadowBluetoothUtils; import com.android.settingslib.bluetooth.A2dpProfile; Loading Loading @@ -255,10 +255,32 @@ public class MediaOutputPreferenceControllerTest { ShadowBluetoothUtils.reset(); } /** Device start broadcasting so Preference summary should become "Audio Sharing" */ /** Start broadcasting so Preference summary should become "Audio Sharing" and disabled */ @Test @EnableFlags(FLAG_ENABLE_LE_AUDIO_SHARING) @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_PERSONAL_AUDIO_SHARING) public void audioSharingStart_changeSummaryAndDisabled() { mController.onStart(); ArgumentCaptor<BluetoothLeBroadcast.Callback> broadcastCallbackCaptor = ArgumentCaptor.forClass(BluetoothLeBroadcast.Callback.class); mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_A2DP); mAudioManager.setMode(AudioManager.MODE_NORMAL); when(mLocalBluetoothLeBroadcast.isEnabled(null)).thenReturn(true); verify(mLocalBluetoothLeBroadcast) .registerServiceCallBack(any(), broadcastCallbackCaptor.capture()); BluetoothLeBroadcast.Callback callback = broadcastCallbackCaptor.getValue(); callback.onBroadcastStarted(0, 0); assertThat(mPreference.getSummary().toString()) .isEqualTo(mContext.getText(R.string.media_output_audio_sharing).toString()); assertThat(mPreference.isEnabled()).isFalse(); } /** Start broadcasting so Preference summary should become "Audio Sharing" and enabled */ @Test public void audioSharingStart_changeSummary() { mSetFlagsRule.enableFlags(FLAG_ENABLE_LE_AUDIO_SHARING); @EnableFlags({FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_OUTPUT_SWITCHER_PERSONAL_AUDIO_SHARING}) public void audioSharingStart_outputSwitcherIntegrated_changeSummaryAndEnabled() { mController.onStart(); ArgumentCaptor<BluetoothLeBroadcast.Callback> broadcastCallbackCaptor = ArgumentCaptor.forClass(BluetoothLeBroadcast.Callback.class); Loading @@ -272,6 +294,7 @@ public class MediaOutputPreferenceControllerTest { callback.onBroadcastStarted(0, 0); assertThat(mPreference.getSummary().toString()) .isEqualTo(mContext.getText(R.string.media_output_audio_sharing).toString()); assertThat(mPreference.isEnabled()).isTrue(); } /** Loading