diff --git a/app/src/common/shared/com/igalia/wolvic/downloads/DownloadsManager.java b/app/src/common/shared/com/igalia/wolvic/downloads/DownloadsManager.java index cafd9217fc..d1d91bc0c4 100644 --- a/app/src/common/shared/com/igalia/wolvic/downloads/DownloadsManager.java +++ b/app/src/common/shared/com/igalia/wolvic/downloads/DownloadsManager.java @@ -64,6 +64,10 @@ public DownloadsManager(@NonNull Context context) { mDiskExecutor = ((VRBrowserApplication) mContext.getApplicationContext()).getExecutors().diskIO(); } + private void removeDownloadOnDiskIO(long id) { + mDiskExecutor.execute(() -> { mDownloadManager.remove(id); }); + } + public void init() { IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { @@ -75,7 +79,7 @@ public void init() { downloads.forEach(download -> { File downloadedFile = download.getOutputFile(); if (mDownloadManager != null && (downloadedFile == null || !downloadedFile.exists())) { - mDownloadManager.remove(download.getId()); + removeDownloadOnDiskIO(download.getId()); } }); } @@ -235,19 +239,19 @@ public void removeDownload(long downloadId, boolean deleteFiles) { File newFile = new File(file.getAbsolutePath().concat(".bak")); file.renameTo(newFile); if (mDownloadManager != null) { - mDownloadManager.remove(downloadId); + removeDownloadOnDiskIO(downloadId); } newFile.renameTo(file); } else { if (mDownloadManager != null) { - mDownloadManager.remove(downloadId); + removeDownloadOnDiskIO(downloadId); } } } else { if (mDownloadManager != null) { - mDownloadManager.remove(downloadId); + removeDownloadOnDiskIO(downloadId); } } }