diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt index 2c1a2952d7..6451a36847 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt @@ -14,10 +14,7 @@ import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.download.ImageNotifier import eu.kanade.tachiyomi.data.mangasync.MangaSyncManager import eu.kanade.tachiyomi.data.mangasync.UpdateMangaSyncService -import eu.kanade.tachiyomi.data.network.GET import eu.kanade.tachiyomi.data.network.NetworkHelper -import eu.kanade.tachiyomi.data.network.ProgressListener -import eu.kanade.tachiyomi.data.network.newCallWithProgress import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.source.SourceManager import eu.kanade.tachiyomi.data.source.model.Page @@ -25,9 +22,7 @@ import eu.kanade.tachiyomi.data.source.online.OnlineSource import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter import eu.kanade.tachiyomi.util.RetryWithDelay import eu.kanade.tachiyomi.util.SharedData -import eu.kanade.tachiyomi.util.saveTo import eu.kanade.tachiyomi.util.toast -import okio.BufferedSource import rx.Observable import rx.Subscription import rx.android.schedulers.AndroidSchedulers @@ -35,7 +30,6 @@ import rx.schedulers.Schedulers import timber.log.Timber import uy.kohesive.injekt.injectLazy import java.io.File -import java.io.FileInputStream import java.io.IOException import java.io.InputStream import java.util.* @@ -589,24 +583,31 @@ class ReaderPresenter : BasePresenter() { @Throws(IOException::class) internal fun savePage() { chapter.pages?.get(chapter.last_page_read)?.let { page -> + // Location of image file. val inputFile = File(page.imagePath) - // File where the image will be saved + // File where the image will be saved. val destFile = File(pictureDirectory, manga.title + " - " + chapter.name + " - " + downloadManager.getImageFilename(page)) + //Remove the notification if already exist (user feedback) + imageNotifier.onClear() + + //Check if file doesn't already exist if (destFile.exists()) { imageNotifier.onComplete(destFile) } else { if (inputFile.exists()) { + // Copy file Observable.fromCallable { inputFile.copyTo(destFile) } .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe( - { imageNotifier.onComplete(it) }, { error -> - Timber.e(error.message) - imageNotifier.onError(error.message) - }) + { imageNotifier.onComplete(it) }, + { error -> + Timber.e(error.message) + imageNotifier.onError(error.message) + }) } } }