diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 93e2109ede..d4d09060cb 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -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 diff --git a/api.txt b/api.txt index e645c01b81..ea09a96cfb 100644 --- a/api.txt +++ b/api.txt @@ -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; diff --git a/demos/main/src/main/java/androidx/media3/demo/main/IntentUtil.java b/demos/main/src/main/java/androidx/media3/demo/main/IntentUtil.java index f8023cbe63..95d25a94b6 100644 --- a/demos/main/src/main/java/androidx/media3/demo/main/IntentUtil.java +++ b/demos/main/src/main/java/androidx/media3/demo/main/IntentUtil.java @@ -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) diff --git a/libraries/common/src/main/java/androidx/media3/common/MediaItem.java b/libraries/common/src/main/java/androidx/media3/common/MediaItem.java index 8074b80d4b..66148ab6f6 100644 --- a/libraries/common/src/main/java/androidx/media3/common/MediaItem.java +++ b/libraries/common/src/main/java/androidx/media3/common/MediaItem.java @@ -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 streamKeys, - @Nullable String customCacheKey, - ImmutableList 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) { diff --git a/libraries/common/src/test/java/androidx/media3/common/MediaItemTest.java b/libraries/common/src/test/java/androidx/media3/common/MediaItemTest.java index 18e7d60ef4..a59a899416 100644 --- a/libraries/common/src/test/java/androidx/media3/common/MediaItemTest.java +++ b/libraries/common/src/test/java/androidx/media3/common/MediaItemTest.java @@ -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();