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

View File

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