Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
c3282c9a
authored
Jun 08, 2020
by
sravan1213
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Propagate download exception through onDownloadChanged callback
parent
226583f0
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
26 additions
and
11 deletions
demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoDownloadService.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadManager.java
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadService.java
testutils/src/main/java/com/google/android/exoplayer2/testutil/TestDownloadManagerListener.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoDownloadService.java
View file @
c3282c9a
...
...
@@ -20,6 +20,7 @@ import static com.google.android.exoplayer2.demo.DemoApplication.DOWNLOAD_NOTIFI
import
android.app.Notification
;
import
android.content.Context
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
com.google.android.exoplayer2.offline.Download
;
import
com.google.android.exoplayer2.offline.DownloadManager
;
import
com.google.android.exoplayer2.offline.DownloadService
;
...
...
@@ -94,7 +95,8 @@ public class DemoDownloadService extends DownloadService {
}
@Override
public
void
onDownloadChanged
(
@NonNull
DownloadManager
manager
,
@NonNull
Download
download
)
{
public
void
onDownloadChanged
(
DownloadManager
downloadManager
,
Download
download
,
@Nullable
Throwable
error
)
{
Notification
notification
;
if
(
download
.
state
==
Download
.
STATE_COMPLETED
)
{
notification
=
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java
View file @
c3282c9a
...
...
@@ -126,7 +126,9 @@ public class DownloadTracker {
@Override
public
void
onDownloadChanged
(
@NonNull
DownloadManager
downloadManager
,
@NonNull
Download
download
)
{
@NonNull
DownloadManager
downloadManager
,
@NonNull
Download
download
,
@Nullable
Throwable
error
)
{
downloads
.
put
(
download
.
request
.
uri
,
download
);
for
(
Listener
listener
:
listeners
)
{
listener
.
onDownloadsChanged
();
...
...
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadManager.java
View file @
c3282c9a
...
...
@@ -93,8 +93,10 @@ public final class DownloadManager {
*
* @param downloadManager The reporting instance.
* @param download The state of the download.
* @param error exception occurred when a download is failed
*/
default
void
onDownloadChanged
(
DownloadManager
downloadManager
,
Download
download
)
{}
default
void
onDownloadChanged
(
DownloadManager
downloadManager
,
Download
download
,
@Nullable
Throwable
error
)
{}
/**
* Called when a download is removed.
...
...
@@ -614,7 +616,7 @@ public final class DownloadManager {
}
}
else
{
for
(
Listener
listener
:
listeners
)
{
listener
.
onDownloadChanged
(
this
,
updatedDownload
);
listener
.
onDownloadChanged
(
this
,
updatedDownload
,
update
.
error
);
}
}
if
(
waitingForRequirementsChanged
)
{
...
...
@@ -906,7 +908,7 @@ public final class DownloadManager {
ArrayList
<
Download
>
updateList
=
new
ArrayList
<>(
downloads
);
for
(
int
i
=
0
;
i
<
downloads
.
size
();
i
++)
{
DownloadUpdate
update
=
new
DownloadUpdate
(
downloads
.
get
(
i
),
/* isRemove= */
false
,
updateList
);
new
DownloadUpdate
(
downloads
.
get
(
i
),
/* isRemove= */
false
,
updateList
,
null
);
mainHandler
.
obtainMessage
(
MSG_DOWNLOAD_UPDATE
,
update
).
sendToTarget
();
}
syncTasks
();
...
...
@@ -1121,7 +1123,11 @@ public final class DownloadManager {
Log
.
e
(
TAG
,
"Failed to update index."
,
e
);
}
DownloadUpdate
update
=
new
DownloadUpdate
(
download
,
/* isRemove= */
false
,
new
ArrayList
<>(
downloads
));
new
DownloadUpdate
(
download
,
/* isRemove= */
false
,
new
ArrayList
<>(
downloads
),
finalError
);
mainHandler
.
obtainMessage
(
MSG_DOWNLOAD_UPDATE
,
update
).
sendToTarget
();
}
...
...
@@ -1139,7 +1145,7 @@ public final class DownloadManager {
Log
.
e
(
TAG
,
"Failed to remove from database"
);
}
DownloadUpdate
update
=
new
DownloadUpdate
(
download
,
/* isRemove= */
true
,
new
ArrayList
<>(
downloads
));
new
DownloadUpdate
(
download
,
/* isRemove= */
true
,
new
ArrayList
<>(
downloads
)
,
null
);
mainHandler
.
obtainMessage
(
MSG_DOWNLOAD_UPDATE
,
update
).
sendToTarget
();
}
}
...
...
@@ -1194,7 +1200,7 @@ public final class DownloadManager {
Log
.
e
(
TAG
,
"Failed to update index."
,
e
);
}
DownloadUpdate
update
=
new
DownloadUpdate
(
download
,
/* isRemove= */
false
,
new
ArrayList
<>(
downloads
));
new
DownloadUpdate
(
download
,
/* isRemove= */
false
,
new
ArrayList
<>(
downloads
)
,
null
);
mainHandler
.
obtainMessage
(
MSG_DOWNLOAD_UPDATE
,
update
).
sendToTarget
();
return
download
;
}
...
...
@@ -1355,11 +1361,14 @@ public final class DownloadManager {
public
final
Download
download
;
public
final
boolean
isRemove
;
public
final
List
<
Download
>
downloads
;
@Nullable
public
final
Throwable
error
;
public
DownloadUpdate
(
Download
download
,
boolean
isRemove
,
List
<
Download
>
downloads
)
{
public
DownloadUpdate
(
Download
download
,
boolean
isRemove
,
List
<
Download
>
downloads
,
@Nullable
Throwable
error
)
{
this
.
download
=
download
;
this
.
isRemove
=
isRemove
;
this
.
downloads
=
downloads
;
this
.
error
=
error
;
}
}
}
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadService.java
View file @
c3282c9a
...
...
@@ -974,7 +974,8 @@ public abstract class DownloadService extends Service {
}
@Override
public
void
onDownloadChanged
(
DownloadManager
downloadManager
,
Download
download
)
{
public
void
onDownloadChanged
(
DownloadManager
downloadManager
,
Download
download
,
@Nullable
Throwable
throwable
)
{
if
(
downloadService
!=
null
)
{
downloadService
.
notifyDownloadChanged
(
download
);
}
...
...
testutils/src/main/java/com/google/android/exoplayer2/testutil/TestDownloadManagerListener.java
View file @
c3282c9a
...
...
@@ -100,7 +100,8 @@ public final class TestDownloadManagerListener implements DownloadManager.Listen
}
@Override
public
void
onDownloadChanged
(
DownloadManager
downloadManager
,
Download
download
)
{
public
void
onDownloadChanged
(
DownloadManager
downloadManager
,
Download
download
,
@Nullable
Throwable
error
)
{
if
(
download
.
state
==
Download
.
STATE_FAILED
)
{
failureReason
=
download
.
failureReason
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment