Commit dd39513a by ibaker Committed by bachinger

Rename `MediaItem.DrmConfiguration.requestHeaders` to add `license`

Both license and provisioning requests could be considered 'DRM
requests', and these headers are only sent on license requests, so
rename them to reflect that.

The old field remains deprecated for backwards compatibility.

PiperOrigin-RevId: 397980021
parent 9932c12d
...@@ -402,7 +402,7 @@ public class DownloadTracker { ...@@ -402,7 +402,7 @@ public class DownloadTracker {
drmConfiguration.licenseUri.toString(), drmConfiguration.licenseUri.toString(),
drmConfiguration.forceDefaultLicenseUri, drmConfiguration.forceDefaultLicenseUri,
httpDataSourceFactory, httpDataSourceFactory,
drmConfiguration.requestHeaders, drmConfiguration.licenseRequestHeaders,
new DrmSessionEventListener.EventDispatcher()); new DrmSessionEventListener.EventDispatcher());
try { try {
keySetId = offlineLicenseHelper.downloadLicense(format); keySetId = offlineLicenseHelper.downloadLicense(format);
......
...@@ -212,9 +212,10 @@ public class IntentUtil { ...@@ -212,9 +212,10 @@ public class IntentUtil {
DRM_FORCE_DEFAULT_LICENSE_URI_EXTRA + extrasKeySuffix, DRM_FORCE_DEFAULT_LICENSE_URI_EXTRA + extrasKeySuffix,
drmConfiguration.forceDefaultLicenseUri); drmConfiguration.forceDefaultLicenseUri);
String[] drmKeyRequestProperties = new String[drmConfiguration.requestHeaders.size() * 2]; String[] drmKeyRequestProperties =
new String[drmConfiguration.licenseRequestHeaders.size() * 2];
int index = 0; int index = 0;
for (Map.Entry<String, String> entry : drmConfiguration.requestHeaders.entrySet()) { for (Map.Entry<String, String> entry : drmConfiguration.licenseRequestHeaders.entrySet()) {
drmKeyRequestProperties[index++] = entry.getKey(); drmKeyRequestProperties[index++] = entry.getKey();
drmKeyRequestProperties[index++] = entry.getValue(); drmKeyRequestProperties[index++] = entry.getValue();
} }
......
...@@ -527,6 +527,6 @@ public class PlayerActivity extends AppCompatActivity ...@@ -527,6 +527,6 @@ public class PlayerActivity extends AppCompatActivity
@Nullable @Nullable
private static Map<String, String> getDrmRequestHeaders(MediaItem item) { private static Map<String, String> getDrmRequestHeaders(MediaItem item) {
MediaItem.DrmConfiguration drmConfiguration = item.playbackProperties.drmConfiguration; MediaItem.DrmConfiguration drmConfiguration = item.playbackProperties.drmConfiguration;
return drmConfiguration != null ? drmConfiguration.requestHeaders : null; return drmConfiguration != null ? drmConfiguration.licenseRequestHeaders : null;
} }
} }
...@@ -146,7 +146,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter { ...@@ -146,7 +146,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
json.put(KEY_UUID, drmConfiguration.scheme); json.put(KEY_UUID, drmConfiguration.scheme);
json.put(KEY_LICENSE_URI, drmConfiguration.licenseUri); 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; return json;
} }
...@@ -173,8 +173,8 @@ public final class DefaultMediaItemConverter implements MediaItemConverter { ...@@ -173,8 +173,8 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
if (drmConfiguration.licenseUri != null) { if (drmConfiguration.licenseUri != null) {
exoPlayerConfigJson.put("licenseUrl", drmConfiguration.licenseUri); exoPlayerConfigJson.put("licenseUrl", drmConfiguration.licenseUri);
} }
if (!drmConfiguration.requestHeaders.isEmpty()) { if (!drmConfiguration.licenseRequestHeaders.isEmpty()) {
exoPlayerConfigJson.put("headers", new JSONObject(drmConfiguration.requestHeaders)); exoPlayerConfigJson.put("headers", new JSONObject(drmConfiguration.licenseRequestHeaders));
} }
return exoPlayerConfigJson; return exoPlayerConfigJson;
......
...@@ -555,7 +555,7 @@ public final class MediaItem implements Bundleable { ...@@ -555,7 +555,7 @@ public final class MediaItem implements Bundleable {
private Builder(DrmConfiguration drmConfiguration) { private Builder(DrmConfiguration drmConfiguration) {
this.scheme = drmConfiguration.scheme; this.scheme = drmConfiguration.scheme;
this.licenseUri = drmConfiguration.licenseUri; this.licenseUri = drmConfiguration.licenseUri;
this.licenseRequestHeaders = drmConfiguration.requestHeaders; this.licenseRequestHeaders = drmConfiguration.licenseRequestHeaders;
this.multiSession = drmConfiguration.multiSession; this.multiSession = drmConfiguration.multiSession;
this.playClearContentWithoutKey = drmConfiguration.playClearContentWithoutKey; this.playClearContentWithoutKey = drmConfiguration.playClearContentWithoutKey;
this.forceDefaultLicenseUri = drmConfiguration.forceDefaultLicenseUri; this.forceDefaultLicenseUri = drmConfiguration.forceDefaultLicenseUri;
...@@ -690,8 +690,11 @@ public final class MediaItem implements Bundleable { ...@@ -690,8 +690,11 @@ public final class MediaItem implements Bundleable {
*/ */
@Nullable public final Uri licenseUri; @Nullable public final Uri licenseUri;
/** The headers to attach to the request to the DRM license server. */ /** @deprecated Use {@link #licenseRequestHeaders} instead. */
public final ImmutableMap<String, String> requestHeaders; @Deprecated public final ImmutableMap<String, String> requestHeaders;
/** The headers to attach to requests sent to the DRM license server. */
public final ImmutableMap<String, String> licenseRequestHeaders;
/** Whether the DRM configuration is multi session enabled. */ /** Whether the DRM configuration is multi session enabled. */
public final boolean multiSession; public final boolean multiSession;
...@@ -713,12 +716,14 @@ public final class MediaItem implements Bundleable { ...@@ -713,12 +716,14 @@ public final class MediaItem implements Bundleable {
@Nullable private final byte[] keySetId; @Nullable private final byte[] keySetId;
@SuppressWarnings("deprecation") // Setting deprecated field
private DrmConfiguration(Builder builder) { private DrmConfiguration(Builder builder) {
checkState(!(builder.forceDefaultLicenseUri && builder.licenseUri == null)); checkState(!(builder.forceDefaultLicenseUri && builder.licenseUri == null));
this.scheme = checkNotNull(builder.scheme); this.scheme = checkNotNull(builder.scheme);
this.uuid = scheme; this.uuid = scheme;
this.licenseUri = builder.licenseUri; this.licenseUri = builder.licenseUri;
this.requestHeaders = builder.licenseRequestHeaders; this.requestHeaders = builder.licenseRequestHeaders;
this.licenseRequestHeaders = builder.licenseRequestHeaders;
this.multiSession = builder.multiSession; this.multiSession = builder.multiSession;
this.forceDefaultLicenseUri = builder.forceDefaultLicenseUri; this.forceDefaultLicenseUri = builder.forceDefaultLicenseUri;
this.playClearContentWithoutKey = builder.playClearContentWithoutKey; this.playClearContentWithoutKey = builder.playClearContentWithoutKey;
...@@ -752,7 +757,7 @@ public final class MediaItem implements Bundleable { ...@@ -752,7 +757,7 @@ public final class MediaItem implements Bundleable {
DrmConfiguration other = (DrmConfiguration) obj; DrmConfiguration other = (DrmConfiguration) obj;
return scheme.equals(other.scheme) return scheme.equals(other.scheme)
&& Util.areEqual(licenseUri, other.licenseUri) && Util.areEqual(licenseUri, other.licenseUri)
&& Util.areEqual(requestHeaders, other.requestHeaders) && Util.areEqual(licenseRequestHeaders, other.licenseRequestHeaders)
&& multiSession == other.multiSession && multiSession == other.multiSession
&& forceDefaultLicenseUri == other.forceDefaultLicenseUri && forceDefaultLicenseUri == other.forceDefaultLicenseUri
&& playClearContentWithoutKey == other.playClearContentWithoutKey && playClearContentWithoutKey == other.playClearContentWithoutKey
...@@ -764,7 +769,7 @@ public final class MediaItem implements Bundleable { ...@@ -764,7 +769,7 @@ public final class MediaItem implements Bundleable {
public int hashCode() { public int hashCode() {
int result = scheme.hashCode(); int result = scheme.hashCode();
result = 31 * result + (licenseUri != null ? licenseUri.hashCode() : 0); 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 + (multiSession ? 1 : 0);
result = 31 * result + (forceDefaultLicenseUri ? 1 : 0); result = 31 * result + (forceDefaultLicenseUri ? 1 : 0);
result = 31 * result + (playClearContentWithoutKey ? 1 : 0); result = 31 * result + (playClearContentWithoutKey ? 1 : 0);
......
...@@ -86,7 +86,7 @@ public class MediaItemTest { ...@@ -86,7 +86,7 @@ public class MediaItemTest {
} }
@Test @Test
@SuppressWarnings("deprecation") // Testing deprecated methods @SuppressWarnings("deprecation") // Testing deprecated methods and fields
public void builderSetDrmPropertiesIndividually() { public void builderSetDrmPropertiesIndividually() {
Uri licenseUri = Uri.parse(URI_STRING); Uri licenseUri = Uri.parse(URI_STRING);
Map<String, String> requestHeaders = new HashMap<>(); Map<String, String> requestHeaders = new HashMap<>();
...@@ -111,6 +111,8 @@ public class MediaItemTest { ...@@ -111,6 +111,8 @@ public class MediaItemTest {
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri); assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri);
assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders) assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders)
.isEqualTo(requestHeaders); .isEqualTo(requestHeaders);
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseRequestHeaders)
.isEqualTo(requestHeaders);
assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isTrue(); assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isTrue();
assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isTrue(); assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isTrue();
assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isTrue(); assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isTrue();
...@@ -120,7 +122,7 @@ public class MediaItemTest { ...@@ -120,7 +122,7 @@ public class MediaItemTest {
} }
@Test @Test
@SuppressWarnings("deprecation") // Testing deprecated methods @SuppressWarnings("deprecation") // Testing deprecated methods and fields
public void builderSetDrmConfigurationOverwritesIndividualProperties() { public void builderSetDrmConfigurationOverwritesIndividualProperties() {
Uri licenseUri = Uri.parse(URI_STRING); Uri licenseUri = Uri.parse(URI_STRING);
Map<String, String> requestHeaders = new HashMap<>(); Map<String, String> requestHeaders = new HashMap<>();
...@@ -145,6 +147,7 @@ public class MediaItemTest { ...@@ -145,6 +147,7 @@ public class MediaItemTest {
assertThat(mediaItem.playbackProperties.drmConfiguration.uuid).isEqualTo(C.CLEARKEY_UUID); assertThat(mediaItem.playbackProperties.drmConfiguration.uuid).isEqualTo(C.CLEARKEY_UUID);
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isNull(); assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isNull();
assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders).isEmpty(); assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders).isEmpty();
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseRequestHeaders).isEmpty();
assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isFalse(); assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isFalse();
assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isFalse(); assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isFalse();
assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isFalse(); assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isFalse();
...@@ -153,6 +156,7 @@ public class MediaItemTest { ...@@ -153,6 +156,7 @@ public class MediaItemTest {
} }
@Test @Test
@SuppressWarnings("deprecation") // Testing deprecated field
public void builderSetDrmConfiguration() { public void builderSetDrmConfiguration() {
Uri licenseUri = Uri.parse(URI_STRING); Uri licenseUri = Uri.parse(URI_STRING);
Map<String, String> requestHeaders = new HashMap<>(); Map<String, String> requestHeaders = new HashMap<>();
...@@ -179,6 +183,8 @@ public class MediaItemTest { ...@@ -179,6 +183,8 @@ public class MediaItemTest {
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri); assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri);
assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders) assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders)
.isEqualTo(requestHeaders); .isEqualTo(requestHeaders);
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseRequestHeaders)
.isEqualTo(requestHeaders);
assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isTrue(); assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isTrue();
assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isTrue(); assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isTrue();
assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isTrue(); assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isTrue();
......
...@@ -101,7 +101,7 @@ public final class DefaultDrmSessionManagerProvider implements DrmSessionManager ...@@ -101,7 +101,7 @@ public final class DefaultDrmSessionManagerProvider implements DrmSessionManager
drmConfiguration.licenseUri == null ? null : drmConfiguration.licenseUri.toString(), drmConfiguration.licenseUri == null ? null : drmConfiguration.licenseUri.toString(),
drmConfiguration.forceDefaultLicenseUri, drmConfiguration.forceDefaultLicenseUri,
dataSourceFactory); dataSourceFactory);
for (Map.Entry<String, String> entry : drmConfiguration.requestHeaders.entrySet()) { for (Map.Entry<String, String> entry : drmConfiguration.licenseRequestHeaders.entrySet()) {
httpDrmCallback.setKeyRequestProperty(entry.getKey(), entry.getValue()); httpDrmCallback.setKeyRequestProperty(entry.getKey(), entry.getValue());
} }
DefaultDrmSessionManager drmSessionManager = DefaultDrmSessionManager drmSessionManager =
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment