diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java index 027d3846cf..caffeb8a6a 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java @@ -402,7 +402,7 @@ public class DownloadTracker { drmConfiguration.licenseUri.toString(), drmConfiguration.forceDefaultLicenseUri, httpDataSourceFactory, - drmConfiguration.requestHeaders, + drmConfiguration.licenseRequestHeaders, new DrmSessionEventListener.EventDispatcher()); try { keySetId = offlineLicenseHelper.downloadLicense(format); diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java index ec0495202f..e2bd51582b 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java @@ -212,9 +212,10 @@ public class IntentUtil { DRM_FORCE_DEFAULT_LICENSE_URI_EXTRA + extrasKeySuffix, drmConfiguration.forceDefaultLicenseUri); - String[] drmKeyRequestProperties = new String[drmConfiguration.requestHeaders.size() * 2]; + String[] drmKeyRequestProperties = + new String[drmConfiguration.licenseRequestHeaders.size() * 2]; int index = 0; - for (Map.Entry entry : drmConfiguration.requestHeaders.entrySet()) { + for (Map.Entry entry : drmConfiguration.licenseRequestHeaders.entrySet()) { drmKeyRequestProperties[index++] = entry.getKey(); drmKeyRequestProperties[index++] = entry.getValue(); } diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index 43e134b565..2efd02b0e2 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -527,6 +527,6 @@ public class PlayerActivity extends AppCompatActivity @Nullable private static Map getDrmRequestHeaders(MediaItem item) { MediaItem.DrmConfiguration drmConfiguration = item.playbackProperties.drmConfiguration; - return drmConfiguration != null ? drmConfiguration.requestHeaders : null; + return drmConfiguration != null ? drmConfiguration.licenseRequestHeaders : null; } } diff --git a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverter.java b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverter.java index d3ef14cf73..88b0a47abd 100644 --- a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverter.java +++ b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverter.java @@ -146,7 +146,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter { JSONObject json = new JSONObject(); json.put(KEY_UUID, drmConfiguration.scheme); json.put(KEY_LICENSE_URI, drmConfiguration.licenseUri); - json.put(KEY_REQUEST_HEADERS, new JSONObject(drmConfiguration.requestHeaders)); + json.put(KEY_REQUEST_HEADERS, new JSONObject(drmConfiguration.licenseRequestHeaders)); return json; } @@ -173,8 +173,8 @@ public final class DefaultMediaItemConverter implements MediaItemConverter { if (drmConfiguration.licenseUri != null) { exoPlayerConfigJson.put("licenseUrl", drmConfiguration.licenseUri); } - if (!drmConfiguration.requestHeaders.isEmpty()) { - exoPlayerConfigJson.put("headers", new JSONObject(drmConfiguration.requestHeaders)); + if (!drmConfiguration.licenseRequestHeaders.isEmpty()) { + exoPlayerConfigJson.put("headers", new JSONObject(drmConfiguration.licenseRequestHeaders)); } return exoPlayerConfigJson; diff --git a/library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java b/library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java index ad6167042f..ce6adde1b8 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java @@ -555,7 +555,7 @@ public final class MediaItem implements Bundleable { private Builder(DrmConfiguration drmConfiguration) { this.scheme = drmConfiguration.scheme; this.licenseUri = drmConfiguration.licenseUri; - this.licenseRequestHeaders = drmConfiguration.requestHeaders; + this.licenseRequestHeaders = drmConfiguration.licenseRequestHeaders; this.multiSession = drmConfiguration.multiSession; this.playClearContentWithoutKey = drmConfiguration.playClearContentWithoutKey; this.forceDefaultLicenseUri = drmConfiguration.forceDefaultLicenseUri; @@ -690,8 +690,11 @@ public final class MediaItem implements Bundleable { */ @Nullable public final Uri licenseUri; - /** The headers to attach to the request to the DRM license server. */ - public final ImmutableMap requestHeaders; + /** @deprecated Use {@link #licenseRequestHeaders} instead. */ + @Deprecated public final ImmutableMap requestHeaders; + + /** The headers to attach to requests sent to the DRM license server. */ + public final ImmutableMap licenseRequestHeaders; /** Whether the DRM configuration is multi session enabled. */ public final boolean multiSession; @@ -713,12 +716,14 @@ public final class MediaItem implements Bundleable { @Nullable private final byte[] keySetId; + @SuppressWarnings("deprecation") // Setting deprecated field private DrmConfiguration(Builder builder) { checkState(!(builder.forceDefaultLicenseUri && builder.licenseUri == null)); this.scheme = checkNotNull(builder.scheme); this.uuid = scheme; this.licenseUri = builder.licenseUri; this.requestHeaders = builder.licenseRequestHeaders; + this.licenseRequestHeaders = builder.licenseRequestHeaders; this.multiSession = builder.multiSession; this.forceDefaultLicenseUri = builder.forceDefaultLicenseUri; this.playClearContentWithoutKey = builder.playClearContentWithoutKey; @@ -752,7 +757,7 @@ public final class MediaItem implements Bundleable { DrmConfiguration other = (DrmConfiguration) obj; return scheme.equals(other.scheme) && Util.areEqual(licenseUri, other.licenseUri) - && Util.areEqual(requestHeaders, other.requestHeaders) + && Util.areEqual(licenseRequestHeaders, other.licenseRequestHeaders) && multiSession == other.multiSession && forceDefaultLicenseUri == other.forceDefaultLicenseUri && playClearContentWithoutKey == other.playClearContentWithoutKey @@ -764,7 +769,7 @@ public final class MediaItem implements Bundleable { public int hashCode() { int result = scheme.hashCode(); result = 31 * result + (licenseUri != null ? licenseUri.hashCode() : 0); - result = 31 * result + requestHeaders.hashCode(); + result = 31 * result + licenseRequestHeaders.hashCode(); result = 31 * result + (multiSession ? 1 : 0); result = 31 * result + (forceDefaultLicenseUri ? 1 : 0); result = 31 * result + (playClearContentWithoutKey ? 1 : 0); diff --git a/library/common/src/test/java/com/google/android/exoplayer2/MediaItemTest.java b/library/common/src/test/java/com/google/android/exoplayer2/MediaItemTest.java index dc232c4bcf..d00a49ab67 100644 --- a/library/common/src/test/java/com/google/android/exoplayer2/MediaItemTest.java +++ b/library/common/src/test/java/com/google/android/exoplayer2/MediaItemTest.java @@ -86,7 +86,7 @@ public class MediaItemTest { } @Test - @SuppressWarnings("deprecation") // Testing deprecated methods + @SuppressWarnings("deprecation") // Testing deprecated methods and fields public void builderSetDrmPropertiesIndividually() { Uri licenseUri = Uri.parse(URI_STRING); Map requestHeaders = new HashMap<>(); @@ -111,6 +111,8 @@ public class MediaItemTest { assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri); assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders) .isEqualTo(requestHeaders); + assertThat(mediaItem.playbackProperties.drmConfiguration.licenseRequestHeaders) + .isEqualTo(requestHeaders); assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isTrue(); assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isTrue(); assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isTrue(); @@ -120,7 +122,7 @@ public class MediaItemTest { } @Test - @SuppressWarnings("deprecation") // Testing deprecated methods + @SuppressWarnings("deprecation") // Testing deprecated methods and fields public void builderSetDrmConfigurationOverwritesIndividualProperties() { Uri licenseUri = Uri.parse(URI_STRING); Map requestHeaders = new HashMap<>(); @@ -145,6 +147,7 @@ public class MediaItemTest { assertThat(mediaItem.playbackProperties.drmConfiguration.uuid).isEqualTo(C.CLEARKEY_UUID); assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isNull(); assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders).isEmpty(); + assertThat(mediaItem.playbackProperties.drmConfiguration.licenseRequestHeaders).isEmpty(); assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isFalse(); assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isFalse(); assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isFalse(); @@ -153,6 +156,7 @@ public class MediaItemTest { } @Test + @SuppressWarnings("deprecation") // Testing deprecated field public void builderSetDrmConfiguration() { Uri licenseUri = Uri.parse(URI_STRING); Map requestHeaders = new HashMap<>(); @@ -179,6 +183,8 @@ public class MediaItemTest { assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri); assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders) .isEqualTo(requestHeaders); + assertThat(mediaItem.playbackProperties.drmConfiguration.licenseRequestHeaders) + .isEqualTo(requestHeaders); assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isTrue(); assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isTrue(); assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isTrue(); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManagerProvider.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManagerProvider.java index e9cd7aa1de..65140c050c 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManagerProvider.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManagerProvider.java @@ -101,7 +101,7 @@ public final class DefaultDrmSessionManagerProvider implements DrmSessionManager drmConfiguration.licenseUri == null ? null : drmConfiguration.licenseUri.toString(), drmConfiguration.forceDefaultLicenseUri, dataSourceFactory); - for (Map.Entry entry : drmConfiguration.requestHeaders.entrySet()) { + for (Map.Entry entry : drmConfiguration.licenseRequestHeaders.entrySet()) { httpDrmCallback.setKeyRequestProperty(entry.getKey(), entry.getValue()); } DefaultDrmSessionManager drmSessionManager =