Demo app: Fail fast if parsing invalid DRM config from JSON

These fields can't be used if `drm_uuid` isn't set. Make that case throw
an exception, so it's obvious to a developer what's wrong.

Most of the fields 'obviously' need `drm_uuid` to be set, but it's not
obvious for `drm_session_for_clear_content` (because it might be
reasonable to assume it's possible to play clear content without
specifying a UUID). This tripped me up in
https://github.com/google/ExoPlayer/issues/8842#issuecomment-833659808.

PiperOrigin-RevId: 397328556
This commit is contained in:
ibaker 2021-09-17 16:47:12 +01:00 committed by Christos Tsilopoulos
parent 0f0e11aaeb
commit 701be41534

View File

@ -448,6 +448,18 @@ public class SampleChooserActivity extends AppCompatActivity
.setMultiSession(drmMultiSession)
.setForceDefaultLicenseUri(drmForceDefaultLicenseUri)
.build());
} else {
checkState(drmLicenseUri == null, "drm_uuid is required if drm_license_uri is set.");
checkState(
drmLicenseRequestHeaders == null,
"drm_uuid is required if drm_key_request_properties is set.");
checkState(
!drmSessionForClearContent,
"drm_uuid is required if drm_session_for_clear_content is set.");
checkState(!drmMultiSession, "drm_uuid is required if drm_multi_session is set.");
checkState(
!drmForceDefaultLicenseUri,
"drm_uuid is required if drm_force_default_license_uri is set.");
}
if (subtitleUri != null) {
MediaItem.Subtitle subtitle =