Sending event if download was cancelled
This commit is contained in:
parent
3041336b92
commit
66cf4a8a43
|
@ -13,6 +13,7 @@ import android.os.Build;
|
|||
import android.os.Handler;
|
||||
import android.os.IBinder;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.NotificationCompat;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
@ -190,10 +191,8 @@ public class DownloadService extends Service {
|
|||
handleFailedDownload(status, downloader.getDownloadRequest());
|
||||
|
||||
if (type == FeedMedia.FEEDFILETYPE_FEEDMEDIA) {
|
||||
long id = status.getFeedfileId();
|
||||
FeedMedia media = DBReader.getFeedMedia(id);
|
||||
FeedItem item;
|
||||
if (media == null || (item = media.getItem()) == null) {
|
||||
FeedItem item = getFeedItemFromId(status.getFeedfileId());
|
||||
if (item == null) {
|
||||
return;
|
||||
}
|
||||
boolean httpNotFound = status.getReason() == DownloadError.ERROR_HTTP_DATA_ERROR
|
||||
|
@ -213,9 +212,8 @@ public class DownloadService extends Service {
|
|||
// if FeedMedia download has been canceled, fake FeedItem update
|
||||
// so that lists reload that it
|
||||
if (status.getFeedfileType() == FeedMedia.FEEDFILETYPE_FEEDMEDIA) {
|
||||
FeedMedia media = DBReader.getFeedMedia(status.getFeedfileId());
|
||||
FeedItem item;
|
||||
if (media == null || (item = media.getItem()) == null) {
|
||||
FeedItem item = getFeedItemFromId(status.getFeedfileId());
|
||||
if (item == null) {
|
||||
return;
|
||||
}
|
||||
EventBus.getDefault().post(FeedItemEvent.updated(item));
|
||||
|
@ -386,6 +384,12 @@ public class DownloadService extends Service {
|
|||
Downloader d = getDownloader(url);
|
||||
if (d != null) {
|
||||
d.cancel();
|
||||
DownloadRequester.getInstance().removeDownload(d.getDownloadRequest());
|
||||
|
||||
FeedItem item = getFeedItemFromId(d.getDownloadRequest().getFeedfileId());
|
||||
if (item != null) {
|
||||
EventBus.getDefault().post(FeedItemEvent.updated(item));
|
||||
}
|
||||
} else {
|
||||
Log.e(TAG, "Could not cancel download with url " + url);
|
||||
}
|
||||
|
@ -578,6 +582,16 @@ public class DownloadService extends Service {
|
|||
syncExecutor.execute(new FailedDownloadHandler(status, request));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private FeedItem getFeedItemFromId(long id) {
|
||||
FeedMedia media = DBReader.getFeedMedia(id);
|
||||
if (media != null) {
|
||||
return media.getItem();
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes a single Feed, parses the corresponding file and refreshes
|
||||
* information in the manager
|
||||
|
|
Loading…
Reference in New Issue