diff --git a/android/app/src/main/java/com/audiobookshelf/app/managers/DownloadItemManager.kt b/android/app/src/main/java/com/audiobookshelf/app/managers/DownloadItemManager.kt index 3e89211e..03c1506f 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/managers/DownloadItemManager.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/managers/DownloadItemManager.kt @@ -223,23 +223,27 @@ class DownloadItemManager(var downloadManager:DownloadManager, private var folde if (downloadItem.isDownloadFinished) { Log.i(tag, "Download Item finished ${downloadItem.media.metadata.title}") - folderScanner.scanDownloadItem(downloadItem) { downloadItemScanResult -> - Log.d(tag, "Item download complete ${downloadItem.itemTitle} | local library item id: ${downloadItemScanResult?.localLibraryItem?.id}") + GlobalScope.launch(Dispatchers.IO) { + folderScanner.scanDownloadItem(downloadItem) { downloadItemScanResult -> + Log.d(tag, "Item download complete ${downloadItem.itemTitle} | local library item id: ${downloadItemScanResult?.localLibraryItem?.id}") - val jsobj = JSObject() - jsobj.put("libraryItemId", downloadItem.id) - jsobj.put("localFolderId", downloadItem.localFolder.id) + val jsobj = JSObject() + jsobj.put("libraryItemId", downloadItem.id) + jsobj.put("localFolderId", downloadItem.localFolder.id) - downloadItemScanResult?.localLibraryItem?.let { localLibraryItem -> - jsobj.put("localLibraryItem", JSObject(jacksonMapper.writeValueAsString(localLibraryItem))) + downloadItemScanResult?.localLibraryItem?.let { localLibraryItem -> + jsobj.put("localLibraryItem", JSObject(jacksonMapper.writeValueAsString(localLibraryItem))) + } + downloadItemScanResult?.localMediaProgress?.let { localMediaProgress -> + jsobj.put("localMediaProgress", JSObject(jacksonMapper.writeValueAsString(localMediaProgress))) + } + + launch(Dispatchers.Main) { + clientEventEmitter.onDownloadItemComplete(jsobj) + downloadItemQueue.remove(downloadItem) + DeviceManager.dbManager.removeDownloadItem(downloadItem.id) + } } - downloadItemScanResult?.localMediaProgress?.let { localMediaProgress -> - jsobj.put("localMediaProgress", JSObject(jacksonMapper.writeValueAsString(localMediaProgress))) - } - - clientEventEmitter.onDownloadItemComplete(jsobj) - downloadItemQueue.remove(downloadItem) - DeviceManager.dbManager.removeDownloadItem(downloadItem.id) } } } diff --git a/components/widgets/DownloadProgressIndicator.vue b/components/widgets/DownloadProgressIndicator.vue index 1036ef19..6c57ed74 100644 --- a/components/widgets/DownloadProgressIndicator.vue +++ b/components/widgets/DownloadProgressIndicator.vue @@ -50,7 +50,7 @@ export default { onItemDownloadComplete(data) { console.log('DownloadProgressIndicator onItemDownloadComplete', JSON.stringify(data)) if (!data || !data.libraryItemId) { - console.error('Invalid item downlaod complete payload') + console.error('Invalid item download complete payload') return } diff --git a/pages/item/_id/index.vue b/pages/item/_id/index.vue index af8efa3c..4eefa7c3 100644 --- a/pages/item/_id/index.vue +++ b/pages/item/_id/index.vue @@ -19,7 +19,8 @@

@@ -27,7 +28,8 @@

by

@@ -78,7 +80,8 @@
-

Downloading! ({{ Math.round(downloadItem.itemProgress * 100) }}%)

+

Download complete. Processing...

+

Downloading! ({{ Math.round(downloadItem.itemProgress * 100) }}%)

@@ -86,7 +89,8 @@
Narrators
@@ -96,7 +100,8 @@
Genres