From 7a5159b2b8e3a1bbb9e93bef85526f675332082b Mon Sep 17 00:00:00 2001 From: Tianhua Ran Date: Thu, 7 Nov 2019 17:24:34 +0800 Subject: [PATCH] fix: replace listener --- .../liulishuo/filedownloader/DownloadTaskAdapter.java | 10 ++++++++++ .../com/liulishuo/filedownloader/FileDownloader.java | 5 +++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/okdownload-filedownloader/src/main/java/com/liulishuo/filedownloader/DownloadTaskAdapter.java b/okdownload-filedownloader/src/main/java/com/liulishuo/filedownloader/DownloadTaskAdapter.java index 51a3b310..d18a6d95 100644 --- a/okdownload-filedownloader/src/main/java/com/liulishuo/filedownloader/DownloadTaskAdapter.java +++ b/okdownload-filedownloader/src/main/java/com/liulishuo/filedownloader/DownloadTaskAdapter.java @@ -567,6 +567,16 @@ public boolean isContainFinishListener() { return !finishListeners.isEmpty(); } + public void replaceListener(FileDownloadListener fileDownloadListener) { + setListener(fileDownloadListener); + if (downloadTask == null) { + return; + } + + compatListener = CompatListenerAdapter.create(listener); + downloadTask.replaceListener(compatListener); + } + static final class Builder { private String url; diff --git a/okdownload-filedownloader/src/main/java/com/liulishuo/filedownloader/FileDownloader.java b/okdownload-filedownloader/src/main/java/com/liulishuo/filedownloader/FileDownloader.java index f0a9adb4..0dd02d57 100644 --- a/okdownload-filedownloader/src/main/java/com/liulishuo/filedownloader/FileDownloader.java +++ b/okdownload-filedownloader/src/main/java/com/liulishuo/filedownloader/FileDownloader.java @@ -472,8 +472,9 @@ public int replaceListener(int id, FileDownloadListener listener) { return 0; } - task.getOrigin().setListener(listener); - return task.getOrigin().getId(); + final DownloadTaskAdapter downloadTask = (DownloadTaskAdapter) task.getOrigin(); + downloadTask.replaceListener(listener); + return downloadTask.getId(); } /**