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();
}
List<StreamKey> streamKeys =
!mediaItem.playbackProperties.streamKeys.isEmpty()
? mediaItem.playbackProperties.streamKeys
: this.streamKeys;
mediaItem.playbackProperties.streamKeys.isEmpty()
? this.streamKeys
: mediaItem.playbackProperties.streamKeys;
if (!streamKeys.isEmpty()) {
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();
} 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();
}
return new DashMediaSource(