Przeglądaj źródła

Delete file when exception is thrown

len 8 lat temu
rodzic
commit
682a2c7546

+ 5 - 4
app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt

@@ -258,16 +258,17 @@ class DownloadManager(private val context: Context, private val sourceManager: S
     private fun downloadImage(page: Page, source: OnlineSource, directory: File, filename: String): Observable<Page> {
         page.status = Page.DOWNLOAD_IMAGE
         return source.imageResponse(page)
-                .flatMap {
+                .map {
+                    val file = File(directory, filename)
                     try {
-                        val file = File(directory, filename)
                         file.parentFile.mkdirs()
                         it.body().source().saveImageTo(file.outputStream(), preferences.reencodeImage())
                     } catch (e: Exception) {
-                        it.body().close()
+                        it.close()
+                        file.delete()
                         throw e
                     }
-                    Observable.just(page)
+                    page
                 }
                 .retryWhen {
                     it.zipWith(Observable.range(1, 3)) { errors, retries -> retries }