From 8fd1381a84470813827a83921cf3dd2b8603ecb0 Mon Sep 17 00:00:00 2001 From: ibaker Date: Fri, 15 Oct 2021 18:23:55 +0100 Subject: [PATCH] Update two MediaItem.DrmConfiguration setters to reject null Builder setters should only accept null when the underlying property can be null. In this case null is directly converted to an empty map/list. PiperOrigin-RevId: 403406626 --- .../google/android/exoplayer2/MediaItem.java | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) 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 aaefa282ee..7b4ed43d38 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 @@ -247,12 +247,15 @@ public final class MediaItem implements Bundleable { /** * @deprecated Use {@link #setDrmConfiguration(DrmConfiguration)} and {@link - * DrmConfiguration.Builder#setLicenseRequestHeaders(Map)} instead. + * DrmConfiguration.Builder#setLicenseRequestHeaders(Map)} instead. Note that {@link + * DrmConfiguration.Builder#setLicenseRequestHeaders(Map)} doesn't accept null, use an empty + * map to clear the headers. */ @Deprecated public Builder setDrmLicenseRequestHeaders( @Nullable Map licenseRequestHeaders) { - drmConfiguration.setLicenseRequestHeaders(licenseRequestHeaders); + drmConfiguration.setLicenseRequestHeaders( + licenseRequestHeaders != null ? licenseRequestHeaders : ImmutableMap.of()); return this; } @@ -308,12 +311,15 @@ public final class MediaItem implements Bundleable { /** * @deprecated Use {@link #setDrmConfiguration(DrmConfiguration)} and {@link - * DrmConfiguration.Builder#setForcedSessionTrackTypes(List)} instead. + * DrmConfiguration.Builder#setForcedSessionTrackTypes(List)} instead. Note that {@link + * DrmConfiguration.Builder#setForcedSessionTrackTypes(List)} doesn't accept null, use an + * empty list to clear the contents. */ @Deprecated public Builder setDrmSessionForClearTypes( @Nullable List<@C.TrackType Integer> sessionForClearTypes) { - drmConfiguration.setForcedSessionTrackTypes(sessionForClearTypes); + drmConfiguration.setForcedSessionTrackTypes( + sessionForClearTypes != null ? sessionForClearTypes : ImmutableList.of()); return this; } @@ -596,11 +602,8 @@ public final class MediaItem implements Bundleable { } /** Sets the optional request headers attached to DRM license requests. */ - public Builder setLicenseRequestHeaders(@Nullable Map licenseRequestHeaders) { - this.licenseRequestHeaders = - licenseRequestHeaders != null - ? ImmutableMap.copyOf(licenseRequestHeaders) - : ImmutableMap.of(); + public Builder setLicenseRequestHeaders(Map licenseRequestHeaders) { + this.licenseRequestHeaders = ImmutableMap.copyOf(licenseRequestHeaders); return this; } @@ -653,15 +656,10 @@ public final class MediaItem implements Bundleable { * *

This method overrides what has been set by previously calling {@link * #forceSessionsForAudioAndVideoTracks(boolean)}. - * - *

{@code null} or an empty {@link List} can be used for a reset. */ public Builder setForcedSessionTrackTypes( - @Nullable List<@C.TrackType Integer> forcedSessionTrackTypes) { - this.forcedSessionTrackTypes = - forcedSessionTrackTypes != null - ? ImmutableList.copyOf(forcedSessionTrackTypes) - : ImmutableList.of(); + List<@C.TrackType Integer> forcedSessionTrackTypes) { + this.forcedSessionTrackTypes = ImmutableList.copyOf(forcedSessionTrackTypes); return this; }