From d6442f63fa9cb3e5197109d11cadcd482ef5c6a4 Mon Sep 17 00:00:00 2001 From: bachinger Date: Fri, 19 Aug 2022 10:45:11 +0000 Subject: [PATCH] Add device info to CastPlayer Issue: androidx/media#142 PiperOrigin-RevId: 468666737 --- .../google/android/exoplayer2/ext/cast/CastPlayer.java | 8 ++++++-- .../android/exoplayer2/ext/cast/CastPlayerTest.java | 9 +++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java index 252ab7251d..ac3cef00b9 100644 --- a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java +++ b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java @@ -80,6 +80,10 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; */ public final class CastPlayer extends BasePlayer { + /** The {@link DeviceInfo} returned by {@link #getDeviceInfo() this player}. */ + public static final DeviceInfo DEVICE_INFO = + new DeviceInfo(DeviceInfo.PLAYBACK_TYPE_REMOTE, /* minVolume= */ 0, /* maxVolume= */ 0); + static { ExoPlayerLibraryInfo.registerModule("goog.exo.cast"); } @@ -727,10 +731,10 @@ public final class CastPlayer extends BasePlayer { return CueGroup.EMPTY_TIME_ZERO; } - /** This method is not supported and always returns {@link DeviceInfo#UNKNOWN}. */ + /** This method always returns {@link CastPlayer#DEVICE_INFO}. */ @Override public DeviceInfo getDeviceInfo() { - return DeviceInfo.UNKNOWN; + return DEVICE_INFO; } /** This method is not supported and always returns {@code 0}. */ diff --git a/extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java b/extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java index fc8cf0fd8d..89a1ccba46 100644 --- a/extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java +++ b/extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java @@ -63,6 +63,7 @@ import static org.mockito.MockitoAnnotations.initMocks; import android.net.Uri; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.DeviceInfo; import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.MediaMetadata; import com.google.android.exoplayer2.PlaybackParameters; @@ -1864,6 +1865,14 @@ public class CastPlayerTest { verify(mockListener, never()).onMediaMetadataChanged(any()); } + @Test + public void getDeviceInfo_returnsCorrectDeviceInfoWithPlaybackTypeRemote() { + DeviceInfo deviceInfo = castPlayer.getDeviceInfo(); + + assertThat(deviceInfo).isEqualTo(CastPlayer.DEVICE_INFO); + assertThat(deviceInfo.playbackType).isEqualTo(DeviceInfo.PLAYBACK_TYPE_REMOTE); + } + private int[] createMediaQueueItemIds(int numberOfIds) { int[] mediaQueueItemIds = new int[numberOfIds]; for (int i = 0; i < numberOfIds; i++) {