Loading src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderController.java +5 −2 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import com.android.settings.dashboard.DashboardFragment; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant; import com.android.settingslib.flags.Flags; import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.widget.LayoutPreference; Loading Loading @@ -88,8 +89,10 @@ public class AudioStreamHeaderController extends BasePreferenceController var localSourceState = getLocalSourceState(state); if (localSourceState == STREAMING) { updateSummary(); if (!Flags.audioStreamMediaServiceByReceiveState()) { mAudioStreamsHelper.startMediaService( mContext, mBroadcastId, mBroadcastName); } } else if (mHysteresisModeFixAvailable && localSourceState == PAUSED) { // if source paused, only update the summary updateSummary(); Loading src/com/android/settings/connecteddevice/audiosharing/audiostreams/SourceAddedState.java +7 −4 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.core.SubSettingLauncher; import com.android.settings.dashboard.DashboardFragment; import com.android.settingslib.flags.Flags; class SourceAddedState extends AudioStreamStateHandler { @VisibleForTesting Loading Loading @@ -55,10 +56,12 @@ class SourceAddedState extends AudioStreamStateHandler { if (cached != null) { mAudioStreamsRepository.saveMetadata(context, cached); } if (!Flags.audioStreamMediaServiceByReceiveState()) { helper.startMediaService( context, preference.getAudioStreamBroadcastId(), String.valueOf(preference.getTitle())); } mMetricsFeatureProvider.action( preference.getContext(), SettingsEnums.ACTION_AUDIO_STREAM_JOIN_SUCCEED, Loading tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderControllerTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,9 @@ import static com.android.settingslib.flags.Flags.FLAG_ENABLE_LE_AUDIO_SHARING; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; Loading @@ -39,6 +42,7 @@ import android.bluetooth.BluetoothLeBroadcastReceiveState; import android.bluetooth.BluetoothStatusCodes; import android.content.Context; import android.graphics.drawable.Drawable; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import androidx.lifecycle.LifecycleOwner; Loading @@ -52,6 +56,7 @@ import com.android.settings.testutils.shadow.ShadowThreadUtils; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.flags.Flags; import com.android.settingslib.widget.LayoutPreference; import org.junit.After; Loading Loading @@ -254,6 +259,7 @@ public class AudioStreamHeaderControllerTest { } @Test @EnableFlags(Flags.FLAG_AUDIO_STREAM_MEDIA_SERVICE_BY_RECEIVE_STATE) public void testCallback_onReceiveStateChanged_updateButton() { when(mAudioStreamsHelper.getConnectedBroadcastIdAndState(anyBoolean())) .thenReturn(Map.of(BROADCAST_ID, STREAMING)); Loading @@ -271,6 +277,7 @@ public class AudioStreamHeaderControllerTest { verify(mHeaderController, times(2)) .setSummary(mContext.getString(AUDIO_STREAM_HEADER_LISTENING_NOW_SUMMARY)); verify(mHeaderController, times(2)).done(true); verify(mAudioStreamsHelper, never()).startMediaService(any(), anyInt(), anyString()); } @Test Loading tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SourceAddedStateTest.java +31 −1 Original line number Diff line number Diff line Loading @@ -22,9 +22,12 @@ import static com.android.settings.connecteddevice.audiosharing.audiostreams.Sou import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -33,6 +36,9 @@ import android.bluetooth.BluetoothLeBroadcastMetadata; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import androidx.fragment.app.FragmentActivity; import androidx.preference.Preference; Loading @@ -43,6 +49,7 @@ import com.android.settings.SettingsActivity; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.flags.Flags; import org.junit.Before; import org.junit.Rule; Loading @@ -62,6 +69,7 @@ import org.robolectric.annotation.Config; }) public class SourceAddedStateTest { @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule(); @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); private static final int BROADCAST_ID = 1; private static final String BROADCAST_TITLE = "title"; private final Context mContext = ApplicationProvider.getApplicationContext(); Loading Loading @@ -105,7 +113,8 @@ public class SourceAddedStateTest { } @Test public void testPerformAction() { @DisableFlags(Flags.FLAG_AUDIO_STREAM_MEDIA_SERVICE_BY_RECEIVE_STATE) public void testPerformAction_startService() { mInstance.setAudioStreamsRepositoryForTesting(mRepository); BluetoothLeBroadcastMetadata mockMetadata = mock(BluetoothLeBroadcastMetadata.class); when(mRepository.getCachedMetadata(anyInt())).thenReturn(mockMetadata); Loading @@ -124,6 +133,27 @@ public class SourceAddedStateTest { verify(mHelper).startMediaService(eq(mContext), eq(BROADCAST_ID), eq(BROADCAST_TITLE)); } @Test @EnableFlags(Flags.FLAG_AUDIO_STREAM_MEDIA_SERVICE_BY_RECEIVE_STATE) public void testPerformAction_skipStartService() { mInstance.setAudioStreamsRepositoryForTesting(mRepository); BluetoothLeBroadcastMetadata mockMetadata = mock(BluetoothLeBroadcastMetadata.class); when(mRepository.getCachedMetadata(anyInt())).thenReturn(mockMetadata); when(mPreference.getContext()).thenReturn(mContext); when(mPreference.getSourceOriginForLogging()) .thenReturn(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS); mInstance.performAction(mPreference, mController, mHelper); verify(mRepository).saveMetadata(eq(mContext), eq(mockMetadata)); verify(mFeatureFactory.metricsFeatureProvider) .action( eq(mContext), eq(SettingsEnums.ACTION_AUDIO_STREAM_JOIN_SUCCEED), eq(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS.ordinal())); verify(mHelper, never()).startMediaService(any(), anyInt(), anyString()); } @Test public void testGetOnClickListener_startSubSettings() { when(mController.getFragment()).thenReturn(mFragment); Loading Loading
src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderController.java +5 −2 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import com.android.settings.dashboard.DashboardFragment; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant; import com.android.settingslib.flags.Flags; import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.widget.LayoutPreference; Loading Loading @@ -88,8 +89,10 @@ public class AudioStreamHeaderController extends BasePreferenceController var localSourceState = getLocalSourceState(state); if (localSourceState == STREAMING) { updateSummary(); if (!Flags.audioStreamMediaServiceByReceiveState()) { mAudioStreamsHelper.startMediaService( mContext, mBroadcastId, mBroadcastName); } } else if (mHysteresisModeFixAvailable && localSourceState == PAUSED) { // if source paused, only update the summary updateSummary(); Loading
src/com/android/settings/connecteddevice/audiosharing/audiostreams/SourceAddedState.java +7 −4 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.core.SubSettingLauncher; import com.android.settings.dashboard.DashboardFragment; import com.android.settingslib.flags.Flags; class SourceAddedState extends AudioStreamStateHandler { @VisibleForTesting Loading Loading @@ -55,10 +56,12 @@ class SourceAddedState extends AudioStreamStateHandler { if (cached != null) { mAudioStreamsRepository.saveMetadata(context, cached); } if (!Flags.audioStreamMediaServiceByReceiveState()) { helper.startMediaService( context, preference.getAudioStreamBroadcastId(), String.valueOf(preference.getTitle())); } mMetricsFeatureProvider.action( preference.getContext(), SettingsEnums.ACTION_AUDIO_STREAM_JOIN_SUCCEED, Loading
tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderControllerTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,9 @@ import static com.android.settingslib.flags.Flags.FLAG_ENABLE_LE_AUDIO_SHARING; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; Loading @@ -39,6 +42,7 @@ import android.bluetooth.BluetoothLeBroadcastReceiveState; import android.bluetooth.BluetoothStatusCodes; import android.content.Context; import android.graphics.drawable.Drawable; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import androidx.lifecycle.LifecycleOwner; Loading @@ -52,6 +56,7 @@ import com.android.settings.testutils.shadow.ShadowThreadUtils; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.flags.Flags; import com.android.settingslib.widget.LayoutPreference; import org.junit.After; Loading Loading @@ -254,6 +259,7 @@ public class AudioStreamHeaderControllerTest { } @Test @EnableFlags(Flags.FLAG_AUDIO_STREAM_MEDIA_SERVICE_BY_RECEIVE_STATE) public void testCallback_onReceiveStateChanged_updateButton() { when(mAudioStreamsHelper.getConnectedBroadcastIdAndState(anyBoolean())) .thenReturn(Map.of(BROADCAST_ID, STREAMING)); Loading @@ -271,6 +277,7 @@ public class AudioStreamHeaderControllerTest { verify(mHeaderController, times(2)) .setSummary(mContext.getString(AUDIO_STREAM_HEADER_LISTENING_NOW_SUMMARY)); verify(mHeaderController, times(2)).done(true); verify(mAudioStreamsHelper, never()).startMediaService(any(), anyInt(), anyString()); } @Test Loading
tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SourceAddedStateTest.java +31 −1 Original line number Diff line number Diff line Loading @@ -22,9 +22,12 @@ import static com.android.settings.connecteddevice.audiosharing.audiostreams.Sou import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -33,6 +36,9 @@ import android.bluetooth.BluetoothLeBroadcastMetadata; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import androidx.fragment.app.FragmentActivity; import androidx.preference.Preference; Loading @@ -43,6 +49,7 @@ import com.android.settings.SettingsActivity; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.flags.Flags; import org.junit.Before; import org.junit.Rule; Loading @@ -62,6 +69,7 @@ import org.robolectric.annotation.Config; }) public class SourceAddedStateTest { @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule(); @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); private static final int BROADCAST_ID = 1; private static final String BROADCAST_TITLE = "title"; private final Context mContext = ApplicationProvider.getApplicationContext(); Loading Loading @@ -105,7 +113,8 @@ public class SourceAddedStateTest { } @Test public void testPerformAction() { @DisableFlags(Flags.FLAG_AUDIO_STREAM_MEDIA_SERVICE_BY_RECEIVE_STATE) public void testPerformAction_startService() { mInstance.setAudioStreamsRepositoryForTesting(mRepository); BluetoothLeBroadcastMetadata mockMetadata = mock(BluetoothLeBroadcastMetadata.class); when(mRepository.getCachedMetadata(anyInt())).thenReturn(mockMetadata); Loading @@ -124,6 +133,27 @@ public class SourceAddedStateTest { verify(mHelper).startMediaService(eq(mContext), eq(BROADCAST_ID), eq(BROADCAST_TITLE)); } @Test @EnableFlags(Flags.FLAG_AUDIO_STREAM_MEDIA_SERVICE_BY_RECEIVE_STATE) public void testPerformAction_skipStartService() { mInstance.setAudioStreamsRepositoryForTesting(mRepository); BluetoothLeBroadcastMetadata mockMetadata = mock(BluetoothLeBroadcastMetadata.class); when(mRepository.getCachedMetadata(anyInt())).thenReturn(mockMetadata); when(mPreference.getContext()).thenReturn(mContext); when(mPreference.getSourceOriginForLogging()) .thenReturn(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS); mInstance.performAction(mPreference, mController, mHelper); verify(mRepository).saveMetadata(eq(mContext), eq(mockMetadata)); verify(mFeatureFactory.metricsFeatureProvider) .action( eq(mContext), eq(SettingsEnums.ACTION_AUDIO_STREAM_JOIN_SUCCEED), eq(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS.ordinal())); verify(mHelper, never()).startMediaService(any(), anyInt(), anyString()); } @Test public void testGetOnClickListener_startSubSettings() { when(mController.getFragment()).thenReturn(mFragment); Loading