Rename DefaultMediaItemProvider to MediaIdMediaItemProvider

PiperOrigin-RevId: 327307736
This commit is contained in:
jaewan 2020-08-18 22:28:49 +01:00 committed by Oliver Woodman
parent 8c5af10ab0
commit e965ed92f8
2 changed files with 12 additions and 21 deletions

View File

@ -28,6 +28,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.media2.common.MediaItem; import androidx.media2.common.MediaItem;
import androidx.media2.common.MediaMetadata;
import androidx.media2.common.Rating; import androidx.media2.common.Rating;
import androidx.media2.common.SessionPlayer; import androidx.media2.common.SessionPlayer;
import androidx.media2.common.UriMediaItem; import androidx.media2.common.UriMediaItem;
@ -135,7 +136,7 @@ public class SessionCallbackBuilderTest {
SessionResult.RESULT_ERROR_BAD_VALUE) SessionResult.RESULT_ERROR_BAD_VALUE)
.setRewindIncrementMs(testRewindIncrementMs) .setRewindIncrementMs(testRewindIncrementMs)
.setFastForwardIncrementMs(testFastForwardIncrementMs) .setFastForwardIncrementMs(testFastForwardIncrementMs)
.setMediaItemProvider(new SessionCallbackBuilder.DefaultMediaItemProvider()) .setMediaItemProvider(new SessionCallbackBuilder.MediaIdMediaItemProvider())
.build())) { .build())) {
assertPlayerResultSuccess(sessionPlayerConnector.setMediaItem(TestUtils.createMediaItem())); assertPlayerResultSuccess(sessionPlayerConnector.setMediaItem(TestUtils.createMediaItem()));
assertPlayerResultSuccess(sessionPlayerConnector.prepare()); assertPlayerResultSuccess(sessionPlayerConnector.prepare());
@ -178,7 +179,7 @@ public class SessionCallbackBuilderTest {
SessionResult.RESULT_ERROR_BAD_VALUE) SessionResult.RESULT_ERROR_BAD_VALUE)
.setRewindIncrementMs(testRewindIncrementMs) .setRewindIncrementMs(testRewindIncrementMs)
.setFastForwardIncrementMs(testFastForwardIncrementMs) .setFastForwardIncrementMs(testFastForwardIncrementMs)
.setMediaItemProvider(new SessionCallbackBuilder.DefaultMediaItemProvider()) .setMediaItemProvider(new SessionCallbackBuilder.MediaIdMediaItemProvider())
.build())) { .build())) {
assertPlayerResultSuccess(sessionPlayerConnector.setPlaylist(testPlaylist, null)); assertPlayerResultSuccess(sessionPlayerConnector.setPlaylist(testPlaylist, null));
@ -454,13 +455,13 @@ public class SessionCallbackBuilderTest {
Uri testMediaUri = RawResourceDataSource.buildRawResourceUri(R.raw.audio); Uri testMediaUri = RawResourceDataSource.buildRawResourceUri(R.raw.audio);
CountDownLatch providerLatch = new CountDownLatch(1); CountDownLatch providerLatch = new CountDownLatch(1);
SessionCallbackBuilder.DefaultMediaItemProvider defaultMediaItemProvider = SessionCallbackBuilder.MediaIdMediaItemProvider mediaIdMediaItemProvider =
new SessionCallbackBuilder.DefaultMediaItemProvider(); new SessionCallbackBuilder.MediaIdMediaItemProvider();
SessionCallbackBuilder.MediaItemProvider provider = SessionCallbackBuilder.MediaItemProvider provider =
(session, controllerInfo, mediaId) -> { (session, controllerInfo, mediaId) -> {
assertThat(mediaId).isEqualTo(testMediaUri.toString()); assertThat(mediaId).isEqualTo(testMediaUri.toString());
providerLatch.countDown(); providerLatch.countDown();
return defaultMediaItemProvider.onCreateMediaItem(session, controllerInfo, mediaId); return mediaIdMediaItemProvider.onCreateMediaItem(session, controllerInfo, mediaId);
}; };
CountDownLatch currentMediaItemChangedLatch = new CountDownLatch(1); CountDownLatch currentMediaItemChangedLatch = new CountDownLatch(1);
@ -470,7 +471,9 @@ public class SessionCallbackBuilderTest {
@Override @Override
public void onCurrentMediaItemChanged( public void onCurrentMediaItemChanged(
@NonNull SessionPlayer player, @NonNull MediaItem item) { @NonNull SessionPlayer player, @NonNull MediaItem item) {
assertThat(((UriMediaItem) item).getUri()).isEqualTo(testMediaUri); MediaMetadata metadata = item.getMetadata();
assertThat(metadata.getString(MediaMetadata.METADATA_KEY_MEDIA_ID))
.isEqualTo(testMediaUri.toString());
currentMediaItemChangedLatch.countDown(); currentMediaItemChangedLatch.countDown();
} }
}); });

View File

@ -19,7 +19,6 @@ import android.Manifest;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings; import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
@ -30,7 +29,6 @@ import androidx.media2.common.MediaItem;
import androidx.media2.common.MediaMetadata; import androidx.media2.common.MediaMetadata;
import androidx.media2.common.Rating; import androidx.media2.common.Rating;
import androidx.media2.common.SessionPlayer; import androidx.media2.common.SessionPlayer;
import androidx.media2.common.UriMediaItem;
import androidx.media2.session.MediaController; import androidx.media2.session.MediaController;
import androidx.media2.session.MediaSession; import androidx.media2.session.MediaSession;
import androidx.media2.session.MediaSession.ControllerInfo; import androidx.media2.session.MediaSession.ControllerInfo;
@ -38,8 +36,6 @@ import androidx.media2.session.SessionCommand;
import androidx.media2.session.SessionCommandGroup; import androidx.media2.session.SessionCommandGroup;
import androidx.media2.session.SessionResult; import androidx.media2.session.SessionResult;
import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Assertions;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -350,10 +346,8 @@ public final class SessionCallbackBuilder {
} }
} }
/** /** A {@link MediaItemProvider} that creates media items containing only a media ID. */
* Default implementation of {@link MediaItemProvider} that assumes the media id is a URI string. public static final class MediaIdMediaItemProvider implements MediaItemProvider {
*/
public static final class DefaultMediaItemProvider implements MediaItemProvider {
@Override @Override
@Nullable @Nullable
public MediaItem onCreateMediaItem( public MediaItem onCreateMediaItem(
@ -361,17 +355,11 @@ public final class SessionCallbackBuilder {
if (TextUtils.isEmpty(mediaId)) { if (TextUtils.isEmpty(mediaId)) {
return null; return null;
} }
try {
new URI(mediaId);
} catch (URISyntaxException e) {
// Ignore if mediaId isn't a URI.
return null;
}
MediaMetadata metadata = MediaMetadata metadata =
new MediaMetadata.Builder() new MediaMetadata.Builder()
.putString(MediaMetadata.METADATA_KEY_MEDIA_ID, mediaId) .putString(MediaMetadata.METADATA_KEY_MEDIA_ID, mediaId)
.build(); .build();
return new UriMediaItem.Builder(Uri.parse(mediaId)).setMetadata(metadata).build(); return new MediaItem.Builder().setMetadata(metadata).build();
} }
} }