Delete file when exception is thrown

This commit is contained in:
len 2016-06-09 15:46:08 +02:00
parent 2d1e85f280
commit 682a2c7546

View file

@ -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 {
try {
.map {
val file = File(directory, filename)
try {
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 }