diff --git a/app/src/main/kotlin/me/eternal/purrfectsnap/download/DownloadProcessor.kt b/app/src/main/kotlin/me/eternal/purrfectsnap/download/DownloadProcessor.kt index 112bf8cc..a06c44c5 100644 --- a/app/src/main/kotlin/me/eternal/purrfectsnap/download/DownloadProcessor.kt +++ b/app/src/main/kotlin/me/eternal/purrfectsnap/download/DownloadProcessor.kt @@ -616,31 +616,27 @@ class DownloadProcessor ( var shouldMergeOverlay = downloadRequest.shouldMergeOverlay - //if there is a zip file, extract it and replace the downloaded media with the extracted ones + //if there is a zip file, extract it and save only the base media (discard overlay) downloadedMedias.values.find { FileType.fromFile(it) == FileType.ZIP }?.let { zipFile -> val oldDownloadedMedias = downloadedMedias.toMap() - downloadedMedias.clear() + var baseMediaFile: File? = null zipFile.inputStream().use { zipFileInputStream -> MediaDownloaderHelper.getSplitElements(zipFileInputStream) { type, inputStream -> if (type == SplitMediaAssetType.OVERLAY) return@getSplitElements - createMediaTempFile().apply { - outputStream().use { - inputStream.copyTo(it) - } - }.also { - downloadedMedias[InputMedia( - type = DownloadMediaType.LOCAL_MEDIA, - content = it.absolutePath, - isOverlay = false - )] = it + baseMediaFile = createMediaTempFile().apply { + outputStream().use { inputStream.copyTo(it) } } } } - oldDownloadedMedias.forEach { (_, value) -> - value.delete() + oldDownloadedMedias.forEach { (_, value) -> value.delete() } + + baseMediaFile?.let { baseMedia -> + saveMediaToGallery(pendingTask, baseMedia, downloadMetadata) + baseMedia.delete() } + return@launch } if (shouldMergeOverlay) {