mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
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
This commit is contained in:
parent
9932c12d77
commit
dd39513a2e
@ -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);
|
||||
|
@ -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<String, String> entry : drmConfiguration.requestHeaders.entrySet()) {
|
||||
for (Map.Entry<String, String> entry : drmConfiguration.licenseRequestHeaders.entrySet()) {
|
||||
drmKeyRequestProperties[index++] = entry.getKey();
|
||||
drmKeyRequestProperties[index++] = entry.getValue();
|
||||
}
|
||||
|
@ -527,6 +527,6 @@ public class PlayerActivity extends AppCompatActivity
|
||||
@Nullable
|
||||
private static Map<String, String> getDrmRequestHeaders(MediaItem item) {
|
||||
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 {
|
||||
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;
|
||||
|
@ -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<String, String> requestHeaders;
|
||||
/** @deprecated Use {@link #licenseRequestHeaders} instead. */
|
||||
@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. */
|
||||
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);
|
||||
|
@ -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<String, String> 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<String, String> 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<String, String> 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();
|
||||
|
@ -101,7 +101,7 @@ public final class DefaultDrmSessionManagerProvider implements DrmSessionManager
|
||||
drmConfiguration.licenseUri == null ? null : drmConfiguration.licenseUri.toString(),
|
||||
drmConfiguration.forceDefaultLicenseUri,
|
||||
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());
|
||||
}
|
||||
DefaultDrmSessionManager drmSessionManager =
|
||||
|
Loading…
x
Reference in New Issue
Block a user