Commit 33fe3a47 by christosts Committed by kim-vde

Remove references to Downloads from IntentUtil

PiperOrigin-RevId: 324599130
parent 5c879ac8
...@@ -23,7 +23,6 @@ import android.net.Uri; ...@@ -23,7 +23,6 @@ import android.net.Uri;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.offline.DownloadRequest;
import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
...@@ -62,8 +61,8 @@ public class IntentUtil { ...@@ -62,8 +61,8 @@ public class IntentUtil {
public static final String URI_EXTRA = "uri"; public static final String URI_EXTRA = "uri";
public static final String IS_LIVE_EXTRA = "is_live"; public static final String IS_LIVE_EXTRA = "is_live";
public static final String MIME_TYPE_EXTRA = "mime_type"; public static final String MIME_TYPE_EXTRA = "mime_type";
public static final String START_POSITION_MS_EXTRA = "start_position_ms"; public static final String CLIP_START_POSITION_MS_EXTRA = "clip_start_position_ms";
public static final String END_POSITION_MS_EXTRA = "end_position_ms"; public static final String CLIP_END_POSITION_MS_EXTRA = "clip_end_position_ms";
// For backwards compatibility only. // For backwards compatibility only.
public static final String EXTENSION_EXTRA = "extension"; public static final String EXTENSION_EXTRA = "extension";
...@@ -83,24 +82,18 @@ public class IntentUtil { ...@@ -83,24 +82,18 @@ public class IntentUtil {
public static final String PREFER_EXTENSION_DECODERS_EXTRA = "prefer_extension_decoders"; public static final String PREFER_EXTENSION_DECODERS_EXTRA = "prefer_extension_decoders";
/** Creates a list of {@link MediaItem media items} from an {@link Intent}. */ /** Creates a list of {@link MediaItem media items} from an {@link Intent}. */
public static List<MediaItem> createMediaItemsFromIntent( public static List<MediaItem> createMediaItemsFromIntent(Intent intent) {
Intent intent, DownloadTracker downloadTracker) {
List<MediaItem> mediaItems = new ArrayList<>(); List<MediaItem> mediaItems = new ArrayList<>();
if (ACTION_VIEW_LIST.equals(intent.getAction())) { if (ACTION_VIEW_LIST.equals(intent.getAction())) {
int index = 0; int index = 0;
while (intent.hasExtra(URI_EXTRA + "_" + index)) { while (intent.hasExtra(URI_EXTRA + "_" + index)) {
String extrasSuffix = "_" + index; Uri uri = Uri.parse(intent.getStringExtra(URI_EXTRA + "_" + index));
Uri uri = Uri.parse(intent.getStringExtra(URI_EXTRA + extrasSuffix)); mediaItems.add(createMediaItemFromIntent(uri, intent, /* extrasKeySuffix= */ "_" + index));
mediaItems.add(
createMediaItemFromIntent(
uri, intent, extrasSuffix, downloadTracker.getDownloadRequest(uri)));
index++; index++;
} }
} else { } else {
Uri uri = intent.getData(); Uri uri = intent.getData();
mediaItems.add( mediaItems.add(createMediaItemFromIntent(uri, intent, /* extrasKeySuffix= */ ""));
createMediaItemFromIntent(
uri, intent, /* extrasKeySuffix= */ "", downloadTracker.getDownloadRequest(uri)));
} }
return mediaItems; return mediaItems;
} }
...@@ -147,7 +140,7 @@ public class IntentUtil { ...@@ -147,7 +140,7 @@ public class IntentUtil {
} }
private static MediaItem createMediaItemFromIntent( private static MediaItem createMediaItemFromIntent(
Uri uri, Intent intent, String extrasKeySuffix, @Nullable DownloadRequest downloadRequest) { Uri uri, Intent intent, String extrasKeySuffix) {
String mimeType = intent.getStringExtra(MIME_TYPE_EXTRA + extrasKeySuffix); String mimeType = intent.getStringExtra(MIME_TYPE_EXTRA + extrasKeySuffix);
if (mimeType == null) { if (mimeType == null) {
// Try to use extension for backwards compatibility. // Try to use extension for backwards compatibility.
...@@ -157,15 +150,14 @@ public class IntentUtil { ...@@ -157,15 +150,14 @@ public class IntentUtil {
MediaItem.Builder builder = MediaItem.Builder builder =
new MediaItem.Builder() new MediaItem.Builder()
.setUri(uri) .setUri(uri)
.setStreamKeys(downloadRequest != null ? downloadRequest.streamKeys : null)
.setCustomCacheKey(downloadRequest != null ? downloadRequest.customCacheKey : null)
.setMimeType(mimeType) .setMimeType(mimeType)
.setAdTagUri(intent.getStringExtra(AD_TAG_URI_EXTRA + extrasKeySuffix)) .setAdTagUri(intent.getStringExtra(AD_TAG_URI_EXTRA + extrasKeySuffix))
.setSubtitles(createSubtitlesFromIntent(intent, extrasKeySuffix)) .setSubtitles(createSubtitlesFromIntent(intent, extrasKeySuffix))
.setClipStartPositionMs( .setClipStartPositionMs(
intent.getLongExtra(START_POSITION_MS_EXTRA + extrasKeySuffix, 0)) intent.getLongExtra(CLIP_START_POSITION_MS_EXTRA + extrasKeySuffix, 0))
.setClipEndPositionMs( .setClipEndPositionMs(
intent.getLongExtra(END_POSITION_MS_EXTRA + extrasKeySuffix, C.TIME_END_OF_SOURCE)); intent.getLongExtra(
CLIP_END_POSITION_MS_EXTRA + extrasKeySuffix, C.TIME_END_OF_SOURCE));
return populateDrmPropertiesFromIntent(builder, intent, extrasKeySuffix).build(); return populateDrmPropertiesFromIntent(builder, intent, extrasKeySuffix).build();
} }
...@@ -294,10 +286,11 @@ public class IntentUtil { ...@@ -294,10 +286,11 @@ public class IntentUtil {
MediaItem.ClippingProperties clippingProperties, Intent intent, String extrasKeySuffix) { MediaItem.ClippingProperties clippingProperties, Intent intent, String extrasKeySuffix) {
if (clippingProperties.startPositionMs != 0) { if (clippingProperties.startPositionMs != 0) {
intent.putExtra( intent.putExtra(
START_POSITION_MS_EXTRA + extrasKeySuffix, clippingProperties.startPositionMs); CLIP_START_POSITION_MS_EXTRA + extrasKeySuffix, clippingProperties.startPositionMs);
} }
if (clippingProperties.endPositionMs != C.TIME_END_OF_SOURCE) { if (clippingProperties.endPositionMs != C.TIME_END_OF_SOURCE) {
intent.putExtra(END_POSITION_MS_EXTRA + extrasKeySuffix, clippingProperties.endPositionMs); intent.putExtra(
CLIP_END_POSITION_MS_EXTRA + extrasKeySuffix, clippingProperties.endPositionMs);
} }
} }
} }
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2.demo; package com.google.android.exoplayer2.demo;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.media.MediaDrm; import android.media.MediaDrm;
...@@ -29,6 +31,7 @@ import android.widget.LinearLayout; ...@@ -29,6 +31,7 @@ import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlaybackException; import com.google.android.exoplayer2.ExoPlaybackException;
...@@ -41,6 +44,7 @@ import com.google.android.exoplayer2.audio.AudioAttributes; ...@@ -41,6 +44,7 @@ import com.google.android.exoplayer2.audio.AudioAttributes;
import com.google.android.exoplayer2.ext.ima.ImaAdsLoader; import com.google.android.exoplayer2.ext.ima.ImaAdsLoader;
import com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.DecoderInitializationException; import com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.DecoderInitializationException;
import com.google.android.exoplayer2.mediacodec.MediaCodecUtil.DecoderQueryException; import com.google.android.exoplayer2.mediacodec.MediaCodecUtil.DecoderQueryException;
import com.google.android.exoplayer2.offline.DownloadRequest;
import com.google.android.exoplayer2.source.BehindLiveWindowException; import com.google.android.exoplayer2.source.BehindLiveWindowException;
import com.google.android.exoplayer2.source.DefaultMediaSourceFactory; import com.google.android.exoplayer2.source.DefaultMediaSourceFactory;
import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.source.TrackGroupArray;
...@@ -52,13 +56,13 @@ import com.google.android.exoplayer2.ui.DebugTextViewHelper; ...@@ -52,13 +56,13 @@ import com.google.android.exoplayer2.ui.DebugTextViewHelper;
import com.google.android.exoplayer2.ui.StyledPlayerControlView; import com.google.android.exoplayer2.ui.StyledPlayerControlView;
import com.google.android.exoplayer2.ui.StyledPlayerView; import com.google.android.exoplayer2.ui.StyledPlayerView;
import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.ErrorMessageProvider; import com.google.android.exoplayer2.util.ErrorMessageProvider;
import com.google.android.exoplayer2.util.EventLogger; import com.google.android.exoplayer2.util.EventLogger;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
import java.net.CookieHandler; import java.net.CookieHandler;
import java.net.CookieManager; import java.net.CookieManager;
import java.net.CookiePolicy; import java.net.CookiePolicy;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
...@@ -321,8 +325,7 @@ public class PlayerActivity extends AppCompatActivity ...@@ -321,8 +325,7 @@ public class PlayerActivity extends AppCompatActivity
} }
List<MediaItem> mediaItems = List<MediaItem> mediaItems =
IntentUtil.createMediaItemsFromIntent( createMediaItems(intent, DemoUtil.getDownloadTracker(/* context= */ this));
intent, DemoUtil.getDownloadTracker(/* context= */ this));
boolean hasAds = false; boolean hasAds = false;
for (int i = 0; i < mediaItems.size(); i++) { for (int i = 0; i < mediaItems.size(); i++) {
MediaItem mediaItem = mediaItems.get(i); MediaItem mediaItem = mediaItems.get(i);
...@@ -337,7 +340,7 @@ public class PlayerActivity extends AppCompatActivity ...@@ -337,7 +340,7 @@ public class PlayerActivity extends AppCompatActivity
} }
MediaItem.DrmConfiguration drmConfiguration = MediaItem.DrmConfiguration drmConfiguration =
Assertions.checkNotNull(mediaItem.playbackProperties).drmConfiguration; checkNotNull(mediaItem.playbackProperties).drmConfiguration;
if (drmConfiguration != null) { if (drmConfiguration != null) {
if (Util.SDK_INT < 18) { if (Util.SDK_INT < 18) {
showToast(R.string.error_drm_unsupported_before_api_18); showToast(R.string.error_drm_unsupported_before_api_18);
...@@ -541,7 +544,28 @@ public class PlayerActivity extends AppCompatActivity ...@@ -541,7 +544,28 @@ public class PlayerActivity extends AppCompatActivity
@Override @Override
public AdsLoader.AdViewProvider getAdViewProvider() { public AdsLoader.AdViewProvider getAdViewProvider() {
return Assertions.checkNotNull(playerView); return checkNotNull(playerView);
} }
} }
private static List<MediaItem> createMediaItems(Intent intent, DownloadTracker downloadTracker) {
List<MediaItem> mediaItems = new ArrayList<>();
for (MediaItem item : IntentUtil.createMediaItemsFromIntent(intent)) {
@Nullable
DownloadRequest downloadRequest =
downloadTracker.getDownloadRequest(checkNotNull(item.playbackProperties).uri);
if (downloadRequest != null) {
MediaItem mediaItem =
item.buildUpon()
.setStreamKeys(downloadRequest.streamKeys)
.setCustomCacheKey(downloadRequest.customCacheKey)
.setDrmKeySetId(downloadRequest.keySetId)
.build();
mediaItems.add(mediaItem);
} else {
mediaItems.add(item);
}
}
return mediaItems;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment