Remove previously deprecated MediaItem.PlaybackProperties in favour of LocalConfiguration.

Deprecated field `MediaItem.playbackProperties` remains for backwards compatibility, but its type is changed from `MediaItem.PlaybackProperties` to `MediaItem.LocalConfiguration`. The private `MediaItem` constructor will now also take in a `LocalConfiguration` argument instead.

PiperOrigin-RevId: 535648420
This commit is contained in:
jbibik 2023-05-26 17:07:51 +00:00 committed by Tofunmi Adigun-Hameed
parent 16d36da88a
commit 25bf0c6738
5 changed files with 17 additions and 43 deletions

View File

@ -138,6 +138,10 @@
* Remove deprecated
`DefaultLoadControl.Builder.createDefaultLoadControl()`, use `build()`
instead.
* Remove deprecated `MediaItem.PlaybackProperties`, use
`MediaItem.LocalConfiguration` instead. Deprecated field
`MediaItem.playbackProperties` is now of type
`MediaItem.LocalConfiguration`.
## 1.1

View File

@ -335,7 +335,7 @@ package androidx.media3.common {
method public androidx.media3.common.MediaItem.LiveConfiguration.Builder setTargetOffsetMs(long);
}
public static class MediaItem.LocalConfiguration {
public static final class MediaItem.LocalConfiguration {
field @Nullable public final androidx.media3.common.MediaItem.AdsConfiguration adsConfiguration;
field @Nullable public final androidx.media3.common.MediaItem.DrmConfiguration drmConfiguration;
field @Nullable public final String mimeType;

View File

@ -94,7 +94,7 @@ public class IntentUtil {
if (mediaItem.mediaMetadata.title != null) {
intent.putExtra(TITLE_EXTRA, mediaItem.mediaMetadata.title);
}
addPlaybackPropertiesToIntent(localConfiguration, intent, /* extrasKeySuffix= */ "");
addLocalConfigurationToIntent(localConfiguration, intent, /* extrasKeySuffix= */ "");
addClippingConfigurationToIntent(
mediaItem.clippingConfiguration, intent, /* extrasKeySuffix= */ "");
} else {
@ -104,7 +104,7 @@ public class IntentUtil {
MediaItem.LocalConfiguration localConfiguration =
checkNotNull(mediaItem.localConfiguration);
intent.putExtra(URI_EXTRA + ("_" + i), localConfiguration.uri.toString());
addPlaybackPropertiesToIntent(localConfiguration, intent, /* extrasKeySuffix= */ "_" + i);
addLocalConfigurationToIntent(localConfiguration, intent, /* extrasKeySuffix= */ "_" + i);
addClippingConfigurationToIntent(
mediaItem.clippingConfiguration, intent, /* extrasKeySuffix= */ "_" + i);
if (mediaItem.mediaMetadata.title != null) {
@ -195,7 +195,7 @@ public class IntentUtil {
return builder;
}
private static void addPlaybackPropertiesToIntent(
private static void addLocalConfigurationToIntent(
MediaItem.LocalConfiguration localConfiguration, Intent intent, String extrasKeySuffix) {
intent
.putExtra(MIME_TYPE_EXTRA + extrasKeySuffix, localConfiguration.mimeType)

View File

@ -570,15 +570,14 @@ public final class MediaItem implements Bundleable {
}
/** Returns a new {@link MediaItem} instance with the current builder values. */
@SuppressWarnings("deprecation") // Using PlaybackProperties while it exists.
public MediaItem build() {
// TODO: remove this check once all the deprecated individual DRM setters are removed.
checkState(drmConfiguration.licenseUri == null || drmConfiguration.scheme != null);
@Nullable PlaybackProperties localConfiguration = null;
@Nullable LocalConfiguration localConfiguration = null;
@Nullable Uri uri = this.uri;
if (uri != null) {
localConfiguration =
new PlaybackProperties(
new LocalConfiguration(
uri,
mimeType,
drmConfiguration.scheme != null ? drmConfiguration.build() : null,
@ -1088,8 +1087,7 @@ public final class MediaItem implements Bundleable {
}
/** Properties for local playback. */
// TODO: Mark this final when PlaybackProperties is deleted.
public static class LocalConfiguration {
public static final class LocalConfiguration {
/** The {@link Uri}. */
public final Uri uri;
@ -1187,34 +1185,6 @@ public final class MediaItem implements Bundleable {
}
}
/**
* @deprecated Use {@link LocalConfiguration}.
*/
@UnstableApi
@Deprecated
public static final class PlaybackProperties extends LocalConfiguration {
private PlaybackProperties(
Uri uri,
@Nullable String mimeType,
@Nullable DrmConfiguration drmConfiguration,
@Nullable AdsConfiguration adsConfiguration,
List<StreamKey> streamKeys,
@Nullable String customCacheKey,
ImmutableList<SubtitleConfiguration> subtitleConfigurations,
@Nullable Object tag) {
super(
uri,
mimeType,
drmConfiguration,
adsConfiguration,
streamKeys,
customCacheKey,
subtitleConfigurations,
tag);
}
}
/** Live playback configuration. */
public static final class LiveConfiguration implements Bundleable {
@ -2119,7 +2089,7 @@ public final class MediaItem implements Bundleable {
/**
* @deprecated Use {@link #localConfiguration} instead.
*/
@UnstableApi @Deprecated @Nullable public final PlaybackProperties playbackProperties;
@UnstableApi @Deprecated @Nullable public final LocalConfiguration playbackProperties;
/** The live playback configuration. */
public final LiveConfiguration liveConfiguration;
@ -2137,12 +2107,12 @@ public final class MediaItem implements Bundleable {
/** The media {@link RequestMetadata}. */
public final RequestMetadata requestMetadata;
// Using PlaybackProperties and ClippingProperties until they're deleted.
// Using ClippingProperties until they're deleted.
@SuppressWarnings("deprecation")
private MediaItem(
String mediaId,
ClippingProperties clippingConfiguration,
@Nullable PlaybackProperties localConfiguration,
@Nullable LocalConfiguration localConfiguration,
LiveConfiguration liveConfiguration,
MediaMetadata mediaMetadata,
RequestMetadata requestMetadata) {

View File

@ -797,7 +797,7 @@ public class MediaItemTest {
MediaItem copy = mediaItem.buildUpon().build();
assertThat(copy).isEqualTo(mediaItem);
assertThat(copy.localConfiguration).isEqualTo(mediaItem.playbackProperties);
assertThat(copy.localConfiguration).isEqualTo(mediaItem.localConfiguration);
}
@Test
@ -862,7 +862,7 @@ public class MediaItemTest {
}
@Test
public void roundTripViaBundle_withoutPlaybackProperties_yieldsEqualInstance() {
public void roundTripViaBundle_withoutLocalConfiguration_yieldsEqualInstance() {
MediaItem mediaItem =
new MediaItem.Builder()
.setMediaId("mediaId")
@ -892,7 +892,7 @@ public class MediaItemTest {
}
@Test
public void roundTripViaBundle_withPlaybackProperties_dropsPlaybackProperties() {
public void roundTripViaBundle_withLocalConfiguration_dropsLocalConfiguration() {
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_STRING).build();
assertThat(mediaItem.localConfiguration).isNotNull();