Commit 0c0a67bb by bachinger Committed by Oliver Woodman

Fail at preparation when trying to download live content.

PiperOrigin-RevId: 275293735
parent 36f8bd78
......@@ -216,7 +216,12 @@ public class DownloadTracker {
@Override
public void onPrepareError(DownloadHelper helper, IOException e) {
Toast.makeText(context, R.string.download_start_error, Toast.LENGTH_LONG).show();
Log.e(TAG, "Failed to start download", e);
Log.e(
TAG,
e instanceof DownloadHelper.LiveContentUnsupportedException
? "Downloading live content unsupported"
: "Failed to start download",
e);
}
// DialogInterface.OnClickListener implementation.
......
......@@ -137,6 +137,9 @@ public final class DownloadHelper {
void onPrepareError(DownloadHelper helper, IOException e);
}
/** Thrown at an attempt to download live content. */
public static class LiveContentUnsupportedException extends IOException {}
@Nullable
private static final Constructor<? extends MediaSourceFactory> DASH_FACTORY_CONSTRUCTOR =
getConstructor("com.google.android.exoplayer2.source.dash.DashMediaSource$Factory");
......@@ -999,6 +1002,14 @@ public final class DownloadHelper {
// Ignore dynamic updates.
return;
}
if (timeline.getWindow(/* windowIndex= */ 0, new Timeline.Window()).isLive) {
downloadHelperHandler
.obtainMessage(
DOWNLOAD_HELPER_CALLBACK_MESSAGE_FAILED,
/* obj= */ new LiveContentUnsupportedException())
.sendToTarget();
return;
}
this.timeline = timeline;
mediaPeriods = new MediaPeriod[timeline.getPeriodCount()];
for (int i = 0; i < mediaPeriods.length; i++) {
......
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