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

Commit 9a9ce2b2 authored by tim peng's avatar tim peng Committed by Android (Google) Code Review
Browse files

Merge ""Play null on" displayed under media volume" into rvc-dev

parents 1a420ce0 a5280fcc
Loading
Loading
Loading
Loading
+10 −7
Original line number Diff line number Diff line
@@ -81,14 +81,17 @@ public class MediaOutputIndicatorWorker extends SliceBackgroundWorker implements
        mContext.registerReceiver(mReceiver, intentFilter);
        mLocalBluetoothManager.getEventManager().registerCallback(this);

        if (mLocalMediaManager == null) {
        final MediaController controller = getActiveLocalMediaController();
            if (controller != null) {
        if (controller == null) {
            mPackageName = null;
        } else {
            mPackageName = controller.getPackageName();
        }
            mLocalMediaManager = new LocalMediaManager(mContext, mPackageName, null);
        if (mLocalMediaManager == null || !TextUtils.equals(mPackageName,
                mLocalMediaManager.getPackageName())) {
            mLocalMediaManager = new LocalMediaManager(mContext, mPackageName,
                    null /* notification */);
        }

        mLocalMediaManager.registerCallback(this);
        mLocalMediaManager.startScan();
    }
+39 −6
Original line number Diff line number Diff line
@@ -62,6 +62,8 @@ import java.util.List;
@Config(shadows = {ShadowBluetoothAdapter.class, ShadowBluetoothUtils.class})
public class MediaOutputIndicatorWorkerTest {
    private static final Uri URI = Uri.parse("content://com.android.settings.slices/test");
    private static final String TEST_PACKAGE_NAME = "com.android.test";
    private static final String TEST_PACKAGE_NAME2 = "com.android.test2";

    @Mock
    private BluetoothEventManager mBluetoothEventManager;
@@ -109,6 +111,33 @@ public class MediaOutputIndicatorWorkerTest {
        verify(mLocalMediaManager).startScan();
    }

    @Test
    public void onSlicePinned_packageUpdated_checkPackageName() {
        initPlayback();
        when(mMediaController.getPlaybackInfo()).thenReturn(mPlaybackInfo);
        when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);
        when(mMediaController.getPackageName()).thenReturn(TEST_PACKAGE_NAME);

        mMediaOutputIndicatorWorker.onSlicePinned();
        assertThat(mMediaOutputIndicatorWorker.mLocalMediaManager.getPackageName()).matches(
                TEST_PACKAGE_NAME);

        when(mMediaController.getPackageName()).thenReturn(TEST_PACKAGE_NAME2);
        mMediaOutputIndicatorWorker.onSlicePinned();

        assertThat(mMediaOutputIndicatorWorker.mLocalMediaManager.getPackageName()).matches(
                TEST_PACKAGE_NAME2);
    }

    @Test
    public void onSlicePinned_noActiveController_noPackageName() {
        mMediaControllers.clear();

        mMediaOutputIndicatorWorker.onSlicePinned();

        assertThat(mMediaOutputIndicatorWorker.mLocalMediaManager.getPackageName()).isNull();
    }

    @Test
    public void onSliceUnpinned_unRegisterCallback() {
        mMediaOutputIndicatorWorker.mLocalMediaManager = mLocalMediaManager;
@@ -138,6 +167,16 @@ public class MediaOutputIndicatorWorkerTest {

    @Test
    public void getActiveLocalMediaController_localMediaPlaying_returnController() {
        initPlayback();

        when(mMediaController.getPlaybackInfo()).thenReturn(mPlaybackInfo);
        when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);

        assertThat(mMediaOutputIndicatorWorker.getActiveLocalMediaController()).isEqualTo(
                mMediaController);
    }

    private void initPlayback() {
        mPlaybackInfo = new MediaController.PlaybackInfo(
                MediaController.PlaybackInfo.PLAYBACK_TYPE_LOCAL,
                VolumeProvider.VOLUME_CONTROL_ABSOLUTE,
@@ -148,12 +187,6 @@ public class MediaOutputIndicatorWorkerTest {
        mPlaybackState = new PlaybackState.Builder()
                .setState(PlaybackState.STATE_PLAYING, 0, 1)
                .build();

        when(mMediaController.getPlaybackInfo()).thenReturn(mPlaybackInfo);
        when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);

        assertThat(mMediaOutputIndicatorWorker.getActiveLocalMediaController()).isEqualTo(
                mMediaController);
    }

    @Test