Handle factory attributes consistently

This change applies the same approach of handling tag/streamKeys from factories like in the SmoothStreaming and Hls factories. It is functionally equivalent but improves readability.

PiperOrigin-RevId: 313771318
This commit is contained in:
bachinger 2020-05-29 14:40:08 +01:00 committed by Oliver Woodman
parent 20ace93706
commit 52e39cd755

View File

@ -376,15 +376,21 @@ public final class DashMediaSource extends BaseMediaSource {
manifestParser = new DashManifestParser(); manifestParser = new DashManifestParser();
} }
List<StreamKey> streamKeys = List<StreamKey> streamKeys =
!mediaItem.playbackProperties.streamKeys.isEmpty() mediaItem.playbackProperties.streamKeys.isEmpty()
? mediaItem.playbackProperties.streamKeys ? this.streamKeys
: this.streamKeys; : mediaItem.playbackProperties.streamKeys;
if (!streamKeys.isEmpty()) { if (!streamKeys.isEmpty()) {
manifestParser = new FilteringManifestParser<>(manifestParser, streamKeys); manifestParser = new FilteringManifestParser<>(manifestParser, streamKeys);
} }
if (mediaItem.playbackProperties.tag == null && tag != null) {
boolean needsTag = mediaItem.playbackProperties.tag == null && tag != null;
boolean needsStreamKeys =
mediaItem.playbackProperties.streamKeys.isEmpty() && !streamKeys.isEmpty();
if (needsTag && needsStreamKeys) {
mediaItem = mediaItem.buildUpon().setTag(tag).setStreamKeys(streamKeys).build(); mediaItem = mediaItem.buildUpon().setTag(tag).setStreamKeys(streamKeys).build();
} else if (mediaItem.playbackProperties.streamKeys.isEmpty() && !streamKeys.isEmpty()) { } else if (needsTag) {
mediaItem = mediaItem.buildUpon().setTag(tag).build();
} else if (needsStreamKeys) {
mediaItem = mediaItem.buildUpon().setStreamKeys(streamKeys).build(); mediaItem = mediaItem.buildUpon().setStreamKeys(streamKeys).build();
} }
return new DashMediaSource( return new DashMediaSource(