From 5a38b5242c6a386a2f1c7124c2bca374627c4322 Mon Sep 17 00:00:00 2001 From: mujie1970 Date: Mon, 1 Sep 2025 22:02:47 +0800 Subject: [PATCH] Fix bug: StopDownload fails when triggered immediately after StartDownload Signed-off-by: mujie1970 --- .../js/ani/file_cloud_sync/include/download_progress_ani.h | 3 ++- .../js/ani/file_cloud_sync/src/download_callback_impl_ani.cpp | 4 ++-- interfaces/kits/js/cloudfilesync/cloud_file_cache_napi.cpp | 2 +- interfaces/kits/js/cloudfilesync/cloud_file_napi.cpp | 2 +- interfaces/kits/js/cloudfilesync/download_progress_napi.h | 3 ++- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/interfaces/kits/js/ani/file_cloud_sync/include/download_progress_ani.h b/interfaces/kits/js/ani/file_cloud_sync/include/download_progress_ani.h index 4f36ff4c4..4ce2986c7 100644 --- a/interfaces/kits/js/ani/file_cloud_sync/include/download_progress_ani.h +++ b/interfaces/kits/js/ani/file_cloud_sync/include/download_progress_ani.h @@ -75,7 +75,8 @@ protected: class SingleProgressAni : public DlProgressAni { public: - explicit SingleProgressAni(int64_t downloadId) : DlProgressAni(downloadId) {} + SingleProgressAni(int64_t downloadId, const std::string &uri) + : DlProgressAni(downloadId), uri_(uri) {} void Update(const DownloadProgressObj &progress) override; ani_object ConvertToObject(ani_env *env) override; std::shared_ptr CreateNewObject() override; diff --git a/interfaces/kits/js/ani/file_cloud_sync/src/download_callback_impl_ani.cpp b/interfaces/kits/js/ani/file_cloud_sync/src/download_callback_impl_ani.cpp index cdc17f693..aacdad5f5 100644 --- a/interfaces/kits/js/ani/file_cloud_sync/src/download_callback_impl_ani.cpp +++ b/interfaces/kits/js/ani/file_cloud_sync/src/download_callback_impl_ani.cpp @@ -29,7 +29,7 @@ int32_t CloudDownloadCallbackImplAni::StartDownloadInner(const std::string &uri) return ret; } - downloadInfos_[downloadId] = std::make_shared(downloadId); + downloadInfos_[downloadId] = std::make_shared(downloadId, uri); return ret; } @@ -61,7 +61,7 @@ int32_t CloudFileCacheCallbackImplAni::StartDownloadInner(const std::string &uri LOGE("Start single download failed! ret = %{public}d", ret); return ret; } - downloadInfos_[downloadId] = std::make_shared(downloadId); + downloadInfos_[downloadId] = std::make_shared(downloadId, uri); return ret; } diff --git a/interfaces/kits/js/cloudfilesync/cloud_file_cache_napi.cpp b/interfaces/kits/js/cloudfilesync/cloud_file_cache_napi.cpp index 4dcdafeaa..b3f80f7fd 100644 --- a/interfaces/kits/js/cloudfilesync/cloud_file_cache_napi.cpp +++ b/interfaces/kits/js/cloudfilesync/cloud_file_cache_napi.cpp @@ -44,7 +44,7 @@ int32_t CloudFileCacheCallbackImplNapi::StartDownloadInner(const std::string &ur LOGE("Start single download failed! ret = %{public}d", ret); return ret; } - downloadInfos_[downloadId] = std::make_shared(downloadId); + downloadInfos_[downloadId] = std::make_shared(downloadId, uri); return ret; } diff --git a/interfaces/kits/js/cloudfilesync/cloud_file_napi.cpp b/interfaces/kits/js/cloudfilesync/cloud_file_napi.cpp index 31d7d4e83..cd5c1a3ed 100644 --- a/interfaces/kits/js/cloudfilesync/cloud_file_napi.cpp +++ b/interfaces/kits/js/cloudfilesync/cloud_file_napi.cpp @@ -40,7 +40,7 @@ int32_t CloudDownloadCallbackImplNapi::StartDownloadInner(const std::string &uri return ret; } - downloadInfos_[downloadId] = std::make_shared(downloadId); + downloadInfos_[downloadId] = std::make_shared(downloadId, uri); return ret; } diff --git a/interfaces/kits/js/cloudfilesync/download_progress_napi.h b/interfaces/kits/js/cloudfilesync/download_progress_napi.h index 3d54400ec..9aa5c243a 100644 --- a/interfaces/kits/js/cloudfilesync/download_progress_napi.h +++ b/interfaces/kits/js/cloudfilesync/download_progress_napi.h @@ -76,7 +76,8 @@ protected: class SingleProgressNapi : public DlProgressNapi { public: - explicit SingleProgressNapi(int64_t downloadId) : DlProgressNapi(downloadId) {} + SingleProgressNapi(int64_t downloadId, const std::string &uri) + : DlProgressNapi(downloadId), uri_(uri) {} void Update(const DownloadProgressObj &progress) override; napi_value ConvertToValue(napi_env env) override; std::shared_ptr CreateNewObject() override; -- Gitee