diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt index 4d57d055b..658f2652d 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt @@ -13,6 +13,7 @@ import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.util.lang.launchIO +import eu.kanade.tachiyomi.util.storage.DiskUtil import rx.Observable import timber.log.Timber import uy.kohesive.injekt.injectLazy @@ -382,6 +383,12 @@ class DownloadManager(private val context: Context) { } } + fun renameMangaDir(oldTitle: String, newTitle: String, source: Long) { + val sourceDir = provider.findSourceDir(sourceManager.getOrStub(source)) ?: return + val mangaDir = sourceDir.findFile(DiskUtil.buildValidFilename(oldTitle), true) ?: return + mangaDir.renameTo(DiskUtil.buildValidFilename(newTitle)) + } + private fun getChaptersToDelete(chapters: List): List { return if (!preferences.removeBookmarkedChapters()) { chapters.filterNot { it.bookmark } diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/model/SManga.kt b/app/src/main/java/eu/kanade/tachiyomi/source/model/SManga.kt index 6792dfc9d..15093c263 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/model/SManga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/model/SManga.kt @@ -1,7 +1,11 @@ package eu.kanade.tachiyomi.source.model +import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaImpl +import eu.kanade.tachiyomi.data.download.DownloadManager import tachiyomi.source.model.MangaInfo +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get import java.io.Serializable interface SManga : Serializable { @@ -41,8 +45,13 @@ interface SManga : Serializable { fun copyFrom(other: SManga) { // EXH --> - if (other.title.isNotBlank()) { + if (other.title.isNotBlank() && originalTitle != other.title) { + val oldTitle = originalTitle title = other.originalTitle + val source = (this as? Manga)?.source + if (source != null) { + Injekt.get().renameMangaDir(oldTitle, other.originalTitle, source) + } } // EXH <--