From 52e39cd7558d5e55c65d1f737acf7ca5f8d157ab Mon Sep 17 00:00:00 2001 From: bachinger Date: Fri, 29 May 2020 14:40:08 +0100 Subject: [PATCH] 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 --- .../exoplayer2/source/dash/DashMediaSource.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java index e2954fb6ff..f60e1c15a2 100644 --- a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java +++ b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java @@ -376,15 +376,21 @@ public final class DashMediaSource extends BaseMediaSource { manifestParser = new DashManifestParser(); } List 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(