diff --git a/app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt b/app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt index 42f8c0585..a2153fb31 100644 --- a/app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt +++ b/app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt @@ -7,7 +7,6 @@ import eu.kanade.domain.chapter.model.toDbChapter import eu.kanade.domain.chapter.repository.ChapterRepository import eu.kanade.domain.manga.interactor.UpdateManga import eu.kanade.domain.manga.model.Manga -import eu.kanade.domain.manga.model.toDbManga import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.source.Source @@ -98,7 +97,7 @@ class SyncChaptersWithSource( } else { if (shouldUpdateDbChapter.await(dbChapter, chapter)) { if (dbChapter.name != chapter.name && downloadManager.isChapterDownloaded(dbChapter.name, dbChapter.scanlator, /* SY --> */ manga.ogTitle /* SY <-- */, manga.source)) { - downloadManager.renameChapter(source, manga.toDbManga(), dbChapter.toDbChapter(), chapter.toDbChapter()) + downloadManager.renameChapter(source, manga, dbChapter.toDbChapter(), chapter.toDbChapter()) } var toChangeChapter = dbChapter.copy( name = chapter.name, diff --git a/app/src/main/java/eu/kanade/domain/chapter/model/Chapter.kt b/app/src/main/java/eu/kanade/domain/chapter/model/Chapter.kt index ba67b6917..24da27348 100644 --- a/app/src/main/java/eu/kanade/domain/chapter/model/Chapter.kt +++ b/app/src/main/java/eu/kanade/domain/chapter/model/Chapter.kt @@ -42,22 +42,20 @@ data class Chapter( } companion object { - fun create(): Chapter { - return Chapter( - id = -1, - mangaId = -1, - read = false, - bookmark = false, - lastPageRead = 0, - dateFetch = 0, - sourceOrder = 0, - url = "", - name = "", - dateUpload = -1, - chapterNumber = -1f, - scanlator = null, - ) - } + fun create() = Chapter( + id = -1, + mangaId = -1, + read = false, + bookmark = false, + lastPageRead = 0, + dateFetch = 0, + sourceOrder = 0, + url = "", + name = "", + dateUpload = -1, + chapterNumber = -1f, + scanlator = null, + ) } } diff --git a/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt b/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt index 9c9d3d12a..36cc2a865 100644 --- a/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt +++ b/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt @@ -64,20 +64,6 @@ data class Manga( get() = customMangaInfo?.statusLong ?: ogStatus // SY <-- - fun toSManga(): SManga { - return SManga.create().also { - it.url = url - it.title = title - it.artist = artist - it.author = author - it.description = description - it.genre = genre.orEmpty().joinToString() - it.status = status.toInt() - it.thumbnail_url = thumbnailUrl - it.initialized = initialized - } - } - val sorting: Long get() = chapterFlags and CHAPTER_SORTING_MASK @@ -131,6 +117,18 @@ data class Manga( return chapterFlags and CHAPTER_SORT_DIR_MASK == CHAPTER_SORT_DESC } + fun toSManga(): SManga = SManga.create().also { + it.url = url + it.title = title + it.artist = artist + it.author = author + it.description = description + it.genre = genre.orEmpty().joinToString() + it.status = status.toInt() + it.thumbnail_url = thumbnailUrl + it.initialized = initialized + } + companion object { // Generic filter that does not filter anything const val SHOW_ALL = 0x00000000L @@ -160,6 +158,33 @@ data class Manga( const val CHAPTER_DISPLAY_NUMBER = 0x00100000L const val CHAPTER_DISPLAY_MASK = 0x00100000L + fun create() = Manga( + id = -1L, + url = "", + // Sy --> + ogTitle = "", + // SY <-- + source = -1L, + favorite = false, + lastUpdate = -1L, + dateAdded = -1L, + viewerFlags = -1L, + chapterFlags = -1L, + coverLastModified = -1L, + // SY --> + ogArtist = null, + ogAuthor = null, + ogDescription = null, + ogGenre = null, + ogStatus = 0L, + // SY <-- + thumbnailUrl = null, + initialized = false, + // SY --> + filteredScanlators = null, + // SY <-- + ) + // SY --> private val customMangaManager: CustomMangaManager by injectLazy() // SY <-- diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt index b2c777c9b..aae49d3fa 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt @@ -3,8 +3,8 @@ package eu.kanade.tachiyomi.data.download import android.content.Context import androidx.core.net.toUri import com.hippo.unifile.UniFile +import eu.kanade.domain.manga.model.Manga import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.source.SourceManager import kotlinx.coroutines.flow.onEach @@ -105,7 +105,7 @@ class DownloadCache( val sourceDir = rootDir.files[manga.source] if (sourceDir != null) { - val mangaDir = sourceDir.files[provider.getMangaDirName(/* SY --> */ manga.originalTitle /* SY <-- */)] + val mangaDir = sourceDir.files[provider.getMangaDirName(/* SY --> */ manga.ogTitle /* SY <-- */)] if (mangaDir != null) { return mangaDir.files .filter { !it.endsWith(Downloader.TMP_DIR_SUFFIX) } @@ -184,7 +184,7 @@ class DownloadCache( } // Retrieve the cached manga directory or cache a new one - val mangaDirName = provider.getMangaDirName(/* SY --> */ manga.originalTitle /* SY <-- */) + val mangaDirName = provider.getMangaDirName(/* SY --> */ manga.ogTitle /* SY <-- */) var mangaDir = sourceDir.files[mangaDirName] if (mangaDir == null) { mangaDir = MangaDirectory(mangaUniFile) @@ -204,7 +204,7 @@ class DownloadCache( @Synchronized fun removeChapter(chapter: Chapter, manga: Manga) { val sourceDir = rootDir.files[manga.source] ?: return - val mangaDir = sourceDir.files[provider.getMangaDirName(/* SY --> */ manga.originalTitle /* SY <-- */)] ?: return + val mangaDir = sourceDir.files[provider.getMangaDirName(/* SY --> */ manga.ogTitle /* SY <-- */)] ?: return provider.getValidChapterDirNames(chapter.name, chapter.scanlator).forEach { if (it in mangaDir.files) { mangaDir.files -= it @@ -215,7 +215,7 @@ class DownloadCache( // SY --> fun removeFolders(folders: List, manga: Manga) { val sourceDir = rootDir.files[manga.source] ?: return - val mangaDir = sourceDir.files[provider.getMangaDirName(manga.originalTitle)] ?: return + val mangaDir = sourceDir.files[provider.getMangaDirName(manga.ogTitle)] ?: return folders.forEach { chapter -> if (chapter in mangaDir.files) { mangaDir.files -= chapter @@ -234,7 +234,7 @@ class DownloadCache( @Synchronized fun removeChapters(chapters: List, manga: Manga) { val sourceDir = rootDir.files[manga.source] ?: return - val mangaDir = sourceDir.files[provider.getMangaDirName(/* SY --> */ manga.originalTitle /* SY <-- */)] ?: return + val mangaDir = sourceDir.files[provider.getMangaDirName(/* SY --> */ manga.ogTitle /* SY <-- */)] ?: return chapters.forEach { chapter -> provider.getValidChapterDirNames(chapter.name, chapter.scanlator).forEach { if (it in mangaDir.files) { @@ -252,7 +252,7 @@ class DownloadCache( @Synchronized fun removeManga(manga: Manga) { val sourceDir = rootDir.files[manga.source] ?: return - val mangaDirName = provider.getMangaDirName(/* SY --> */ manga.originalTitle /* SY <-- */) + val mangaDirName = provider.getMangaDirName(/* SY --> */ manga.ogTitle /* SY <-- */) if (mangaDirName in sourceDir.files) { sourceDir.files -= mangaDirName } 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 3adf7b7f5..58b7916c8 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 @@ -4,9 +4,9 @@ import android.content.Context import com.hippo.unifile.UniFile import com.jakewharton.rxrelay.BehaviorRelay import eu.kanade.domain.category.interactor.GetCategories +import eu.kanade.domain.manga.model.Manga import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.data.download.model.DownloadQueue import eu.kanade.tachiyomi.data.preference.PreferencesHelper @@ -168,7 +168,7 @@ class DownloadManager( * @return an observable containing the list of pages from the chapter. */ fun buildPageList(source: Source, manga: Manga, chapter: Chapter): Observable> { - return buildPageList(provider.findChapterDir(chapter.name, chapter.scanlator, /* SY --> */ manga.originalTitle /* SY <-- */, source)) + return buildPageList(provider.findChapterDir(chapter.name, chapter.scanlator, /* SY --> */ manga.ogTitle /* SY <-- */, source)) } /** @@ -315,7 +315,7 @@ class DownloadManager( var cleaned = 0 if (removeNonFavorite && !manga.favorite) { - val mangaFolder = provider.getMangaDir(manga.originalTitle, source) + val mangaFolder = provider.getMangaDir(/* SY --> */ manga.ogTitle /* SY <-- */, source) cleaned += 1 + mangaFolder.listFiles().orEmpty().size mangaFolder.delete() cache.removeManga(manga) @@ -336,12 +336,12 @@ class DownloadManager( } if (cache.getDownloadCount(manga) == 0) { - val mangaFolder = provider.getMangaDir(manga.originalTitle, source) + val mangaFolder = provider.getMangaDir(/* SY --> */ manga.ogTitle /* SY <-- */, source) if (!mangaFolder.listFiles().isNullOrEmpty()) { mangaFolder.delete() cache.removeManga(manga) } else { - xLogE("Cache and download folder doesn't match for " + manga.originalTitle) + xLogE("Cache and download folder doesn't match for " + /* SY --> */ manga.ogTitle /* SY <-- */) } } return cleaned @@ -357,7 +357,7 @@ class DownloadManager( fun deleteManga(manga: Manga, source: Source) { launchIO { downloader.queue.remove(manga) - provider.findMangaDir(/* SY --> */ manga.originalTitle /* SY <-- */, source)?.delete() + provider.findMangaDir(/* SY --> */ manga.ogTitle /* SY <-- */, source)?.delete() cache.removeManga(manga) } } @@ -393,7 +393,7 @@ class DownloadManager( */ fun renameChapter(source: Source, manga: Manga, oldChapter: Chapter, newChapter: Chapter) { val oldNames = provider.getValidChapterDirNames(oldChapter.name, oldChapter.scanlator) - val mangaDir = provider.getMangaDir(/* SY --> */ manga.originalTitle /* SY <-- */, source) + val mangaDir = provider.getMangaDir(/* SY --> */ manga.ogTitle /* SY <-- */, source) // Assume there's only 1 version of the chapter name formats present val oldDownload = oldNames.asSequence() diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadPendingDeleter.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadPendingDeleter.kt index 8c50559bd..b2aed6597 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadPendingDeleter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadPendingDeleter.kt @@ -2,8 +2,8 @@ package eu.kanade.tachiyomi.data.download import android.content.Context import androidx.core.content.edit +import eu.kanade.domain.manga.model.Manga import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import kotlinx.serialization.Serializable import kotlinx.serialization.decodeFromString import kotlinx.serialization.encodeToString @@ -155,7 +155,7 @@ class DownloadPendingDeleter(context: Context) { * Returns a manga entry from a manga model. */ private fun Manga.toEntry(): MangaEntry { - return MangaEntry(id!!, url, originalTitle, source) + return MangaEntry(id!!, url, /* SY --> */ ogTitle /* SY <-- */, source) } /** @@ -169,9 +169,14 @@ class DownloadPendingDeleter(context: Context) { * Returns a manga model from a manga entry. */ private fun MangaEntry.toModel(): Manga { - return Manga.create(url, title, source).also { - it.id = id - } + return Manga.create().copy( + url = url, + // SY --> + ogTitle = title, + // SY <-- + source = source, + id = id, + ) } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt index fc7a30fd0..9f4a58b6d 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt @@ -3,9 +3,9 @@ package eu.kanade.tachiyomi.data.download import android.content.Context import androidx.core.net.toUri import com.hippo.unifile.UniFile +import eu.kanade.domain.manga.model.Manga import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.util.storage.DiskUtil @@ -103,7 +103,7 @@ class DownloadProvider(private val context: Context) { * @param source the source of the chapter. */ fun findChapterDirs(chapters: List, manga: Manga, source: Source): List { - val mangaDir = findMangaDir(/* SY --> */ manga.originalTitle /* SY <-- */, source) ?: return emptyList() + val mangaDir = findMangaDir(/* SY --> */ manga.ogTitle /* SY <-- */, source) ?: return emptyList() return chapters.mapNotNull { chapter -> getValidChapterDirNames(chapter.name, chapter.scanlator).asSequence() .mapNotNull { mangaDir.findFile(it) } @@ -124,7 +124,7 @@ class DownloadProvider(private val context: Context) { manga: Manga, source: Source, ): List { - val mangaDir = findMangaDir(manga.originalTitle, source) ?: return emptyList() + val mangaDir = findMangaDir(/* SY --> */ manga.ogTitle /* SY <-- */, source) ?: return emptyList() return mangaDir.listFiles().orEmpty().asList().filter { chapters.find { chp -> getValidChapterDirNames(chp.name, chp.scanlator).any { dir -> diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadStore.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadStore.kt index 9c92fd054..19a4f45c9 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadStore.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadStore.kt @@ -5,8 +5,7 @@ import androidx.core.content.edit import eu.kanade.domain.chapter.interactor.GetChapter import eu.kanade.domain.chapter.model.toDbChapter import eu.kanade.domain.manga.interactor.GetManga -import eu.kanade.domain.manga.model.toDbManga -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.domain.manga.model.Manga import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.online.HttpSource @@ -96,7 +95,7 @@ class DownloadStore( val cachedManga = mutableMapOf() for ((mangaId, chapterId) in objs) { val manga = cachedManga.getOrPut(mangaId) { - runBlocking { getManga.await(mangaId)?.toDbManga() } + runBlocking { getManga.await(mangaId) } } ?: continue val source = sourceManager.get(manga.source) as? HttpSource ?: continue val chapter = runBlocking { getChapter.await(chapterId) }?.toDbChapter() ?: continue diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt index 4ae74b06d..e0a51da40 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt @@ -5,10 +5,10 @@ import android.webkit.MimeTypeMap import com.hippo.unifile.UniFile import com.jakewharton.rxrelay.BehaviorRelay import com.jakewharton.rxrelay.PublishRelay +import eu.kanade.domain.manga.model.Manga import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.cache.ChapterCache import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.data.download.model.DownloadQueue import eu.kanade.tachiyomi.data.library.LibraryUpdateNotifier @@ -254,7 +254,7 @@ class Downloader( val chaptersWithoutDir = async { chapters // Filter out those already downloaded. - .filter { provider.findChapterDir(it.name, it.scanlator, /* SY --> */ manga.originalTitle /* SY <-- */, source) == null } + .filter { provider.findChapterDir(it.name, it.scanlator, /* SY --> */ manga.ogTitle /* SY <-- */, source) == null } // Add chapters to queue from the start. .sortedByDescending { it.source_order } } @@ -305,7 +305,7 @@ class Downloader( * @param download the chapter to be downloaded. */ private fun downloadChapter(download: Download): Observable = Observable.defer { - val mangaDir = provider.getMangaDir(/* SY --> */ download.manga.originalTitle /* SY <-- */, download.source) + val mangaDir = provider.getMangaDir(/* SY --> */ download.manga.ogTitle /* SY <-- */, download.source) val availSpace = DiskUtil.getAvailableStorageSpace(mangaDir) if (availSpace != -1L && availSpace < MIN_DISK_SPACE) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/model/Download.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/model/Download.kt index 0ea7a6333..d632bafc4 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/model/Download.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/model/Download.kt @@ -3,9 +3,8 @@ package eu.kanade.tachiyomi.data.download.model import eu.kanade.domain.chapter.interactor.GetChapter import eu.kanade.domain.chapter.model.toDbChapter import eu.kanade.domain.manga.interactor.GetManga -import eu.kanade.domain.manga.model.toDbManga +import eu.kanade.domain.manga.model.Manga import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.online.HttpSource @@ -76,7 +75,7 @@ data class Download( val manga = getManga.await(chapter.mangaId) ?: return null val source = sourceManager.get(manga.source) as? HttpSource ?: return null - return Download(source, manga.toDbManga(), chapter.toDbChapter()) + return Download(source, manga, chapter.toDbChapter()) } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/model/DownloadQueue.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/model/DownloadQueue.kt index 4b7b623c2..33cc2d52d 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/model/DownloadQueue.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/model/DownloadQueue.kt @@ -1,8 +1,8 @@ package eu.kanade.tachiyomi.data.download.model import com.jakewharton.rxrelay.PublishRelay +import eu.kanade.domain.manga.model.Manga import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.DownloadStore import eu.kanade.tachiyomi.source.model.Page import rx.Observable diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt index 47bbd5544..b006171e6 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt @@ -513,7 +513,7 @@ class LibraryUpdateService( chapters.groupBy { it.manga_id } .forEach { downloadManager.downloadChapters( - downloadingManga[it.key]?.toDbManga() ?: return@forEach, + downloadingManga[it.key] ?: return@forEach, chapters, false, ) @@ -522,7 +522,7 @@ class LibraryUpdateService( return } // SY <-- - downloadManager.downloadChapters(manga, chapters, false) + downloadManager.downloadChapters(manga.toDomainManga()!!, chapters, false) } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt index a64a6a34f..26d0a3179 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt @@ -14,7 +14,6 @@ import eu.kanade.domain.chapter.model.toChapterUpdate import eu.kanade.domain.chapter.model.toDbChapter import eu.kanade.domain.manga.interactor.GetManga import eu.kanade.domain.manga.model.Manga -import eu.kanade.domain.manga.model.toDbManga import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.backup.BackupRestoreService import eu.kanade.tachiyomi.data.download.DownloadManager @@ -252,7 +251,7 @@ class NotificationReceiver : BroadcastReceiver() { if (manga != null) { val source = sourceManager.get(manga.source) if (source != null) { - downloadManager.deleteChapters(listOf(it.toDbChapter()), manga.toDbManga(), source) + downloadManager.deleteChapters(listOf(it.toDbChapter()), manga, source) } } } @@ -270,7 +269,7 @@ class NotificationReceiver : BroadcastReceiver() { */ private fun downloadChapters(chapterUrls: Array, mangaId: Long) { launchIO { - val manga = getManga.await(mangaId)?.toDbManga() + val manga = getManga.await(mangaId) val chapters = chapterUrls.mapNotNull { getChapter.await(it, mangaId)?.toDbChapter() } if (manga != null && chapters.isNotEmpty()) { downloadManager.downloadChapters(manga, chapters) diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MergedSource.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MergedSource.kt index a3361e96c..d06efe96c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MergedSource.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MergedSource.kt @@ -7,7 +7,6 @@ import eu.kanade.domain.chapter.model.toDbChapter import eu.kanade.domain.manga.interactor.GetManga import eu.kanade.domain.manga.interactor.GetMergedReferencesById import eu.kanade.domain.manga.interactor.InsertManga -import eu.kanade.domain.manga.model.toDbManga import eu.kanade.domain.manga.model.toMangaInfo import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.MangaImpl @@ -199,7 +198,7 @@ class MergedSource : HttpSource() { syncChaptersWithSource.await(chapterList, loadedManga, source) if (ifDownloadNewChapters && reference.downloadChapters) { downloadManager.downloadChapters( - loadedManga.toDbManga(), + loadedManga, results.first.map(DomainChapter::toDbChapter), ) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt index 106fd02d6..631230888 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt @@ -19,7 +19,6 @@ import eu.kanade.domain.manga.interactor.UpdateManga import eu.kanade.domain.manga.model.Manga import eu.kanade.domain.manga.model.MangaUpdate import eu.kanade.domain.manga.model.isLocal -import eu.kanade.domain.manga.model.toDbManga import eu.kanade.domain.track.interactor.GetTracks import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.cache.CoverCache @@ -205,7 +204,7 @@ class LibraryPresenter( val isDownloaded = when { item.manga.toDomainManga()!!.isLocal() -> true item.downloadCount != -1 -> item.downloadCount > 0 - else -> downloadManager.getDownloadCount(item.manga) > 0 + else -> downloadManager.getDownloadCount(item.manga.toDomainManga()!!) > 0 } return@downloaded if (downloadedOnly || filterDownloaded == State.INCLUDE.value) isDownloaded @@ -322,9 +321,9 @@ class LibraryPresenter( item.manga.id?.let { mergeMangaId -> runBlocking { getMergedMangaById.await(mergeMangaId) - }.sumOf { downloadManager.getDownloadCount(it.toDbManga()) } + }.sumOf { downloadManager.getDownloadCount(it) } } ?: 0 - } else /* SY <-- */ downloadManager.getDownloadCount(item.manga) + } else /* SY <-- */ downloadManager.getDownloadCount(item.manga.toDomainManga()!!) } else { // Unset download count if not enabled -1 @@ -693,7 +692,7 @@ class LibraryPresenter( .groupBy { it.manga_id!! } .forEach ab@{ (mangaId, chapters) -> val mergedManga = mergedMangas.firstOrNull { it.id == mangaId } ?: return@ab - downloadManager.downloadChapters(mergedManga.toDbManga(), chapters) + downloadManager.downloadChapters(mergedManga, chapters) } } else { /* SY --> */ @@ -704,7 +703,7 @@ class LibraryPresenter( } else /* SY <-- */ getChapterByMangaId.await(manga.id) .filter { !it.read } - downloadManager.downloadChapters(manga.toDbManga(), chapters.map { it.toDbChapter() }) + downloadManager.downloadChapters(manga, chapters.map { it.toDbChapter() }) } } } @@ -782,9 +781,9 @@ class LibraryPresenter( chapters.groupBy { it.mangaId }.forEach { (mangaId, chapters) -> val mergedManga = mergedMangas.firstOrNull { it.id == mangaId } ?: return@forEach val mergedMangaSource = sources.firstOrNull { it.id == mergedManga.source } ?: return@forEach - downloadManager.deleteChapters(chapters.map { it.toDbChapter() }, mergedManga.toDbManga(), mergedMangaSource) + downloadManager.deleteChapters(chapters.map { it.toDbChapter() }, mergedManga, mergedMangaSource) } - } else /* SY <-- */ downloadManager.deleteChapters(chapters.map { it.toDbChapter() }, manga.toDbManga(), source) + } else /* SY <-- */ downloadManager.deleteChapters(chapters.map { it.toDbChapter() }, manga, source) } } @@ -819,9 +818,9 @@ class LibraryPresenter( val sources = mergedMangas.distinctBy { it.source }.map { sourceManager.getOrStub(it.source) } mergedMangas.forEach merge@{ mergedManga -> val mergedSource = sources.firstOrNull { mergedManga.source == it.id } as? HttpSource ?: return@merge - downloadManager.deleteManga(mergedManga.toDbManga(), mergedSource) + downloadManager.deleteManga(mergedManga, mergedSource) } - } else downloadManager.deleteManga(manga, source) + } else downloadManager.deleteManga(manga.toDomainManga()!!, source) } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt index ce6db5a48..be91b1f39 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt @@ -679,7 +679,7 @@ class MangaPresenter( */ fun hasDownloads(): Boolean { val manga = successState?.manga ?: return false - return downloadManager.getDownloadCount(manga.toDbManga()) > 0 + return downloadManager.getDownloadCount(manga) > 0 } /** @@ -691,9 +691,9 @@ class MangaPresenter( if (state.source is MergedSource) { val mergedManga = state.mergedData?.manga?.map { it.value to sourceManager.getOrStub(it.value.source) } mergedManga?.forEach { (manga, source) -> - downloadManager.deleteManga(manga.toDbManga(), source) + downloadManager.deleteManga(manga, source) } - } else /* SY <-- */ downloadManager.deleteManga(state.manga.toDbManga(), state.source) + } else /* SY <-- */ downloadManager.deleteManga(state.manga, state.source) } /** @@ -956,11 +956,11 @@ class MangaPresenter( if (state.source is MergedSource) { chapters.groupBy { it.mangaId }.forEach { map -> val manga = state.mergedData?.manga?.get(map.key) ?: return@forEach - downloadManager.downloadChapters(manga.toDbManga(), map.value.map { it.toMergedDownloadedChapter().toDbChapter() }) + downloadManager.downloadChapters(manga, map.value.map { it.toMergedDownloadedChapter().toDbChapter() }) } } else { /* SY <-- */ val manga = state.manga - downloadManager.downloadChapters(manga.toDbManga(), chapters.map { it.toDbChapter() }) + downloadManager.downloadChapters(manga, chapters.map { it.toDbChapter() }) } } @@ -987,7 +987,7 @@ class MangaPresenter( try { updateSuccessState { successState -> val deletedIds = downloadManager - .deleteChapters(chapters2, successState.manga.toDbManga(), successState.source) + .deleteChapters(chapters2, successState.manga, successState.source) .map { it.id } val deletedChapters = successState.chapters.filter { deletedIds.contains(it.chapter.id) } if (deletedChapters.isEmpty()) return@updateSuccessState successState 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 887f41ceb..f33890f98 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 @@ -1029,7 +1029,7 @@ class ReaderPresenter( // SY <-- launchIO { - downloadManager.enqueueDeleteChapters(listOf(chapter.chapter), manga) + downloadManager.enqueueDeleteChapters(listOf(chapter.chapter), manga.toDomainManga()!!) } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/DownloadPageLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/DownloadPageLoader.kt index 66212d0d4..49ec9d1fb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/DownloadPageLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/DownloadPageLoader.kt @@ -4,7 +4,6 @@ import android.app.Application import android.net.Uri import com.hippo.unifile.UniFile import eu.kanade.domain.manga.model.Manga -import eu.kanade.domain.manga.model.toDbManga import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.model.Page @@ -46,7 +45,7 @@ class DownloadPageLoader( } private fun getPagesFromDirectory(): Observable> { - return downloadManager.buildPageList(source, manga.toDbManga(), chapter.chapter) + return downloadManager.buildPageList(source, manga, chapter.chapter) .map { pages -> pages.map { page -> ReaderPage(page.index, page.url, page.imageUrl) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recent/updates/UpdatesPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recent/updates/UpdatesPresenter.kt index 4be4170c1..79968240f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recent/updates/UpdatesPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recent/updates/UpdatesPresenter.kt @@ -8,7 +8,6 @@ import eu.kanade.domain.chapter.model.Chapter import eu.kanade.domain.chapter.model.ChapterUpdate import eu.kanade.domain.chapter.model.toDbChapter import eu.kanade.domain.manga.model.Manga -import eu.kanade.domain.manga.model.toDbManga import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.data.preference.PreferencesHelper @@ -219,7 +218,7 @@ class UpdatesPresenter : BasePresenter() { * @param items list of recent chapters seleted. */ fun downloadChapters(items: List) { - items.forEach { downloadManager.downloadChapters(it.manga.toDbManga(), listOf(it.chapter.toDbChapter())) } + items.forEach { downloadManager.downloadChapters(it.manga, listOf(it.chapter.toDbChapter())) } } /** @@ -230,7 +229,7 @@ class UpdatesPresenter : BasePresenter() { private fun deleteChaptersInternal(chapterItems: List) { val itemsByManga = chapterItems.groupBy { it.manga.id } for ((_, items) in itemsByManga) { - val manga = items.first().manga.toDbManga() + val manga = items.first().manga val source = sourceManager.get(manga.source) ?: continue val chapters = items.map { it.chapter.toDbChapter() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt index 8245caab8..709641343 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt @@ -17,7 +17,6 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder import eu.kanade.domain.chapter.interactor.GetChapterByMangaId import eu.kanade.domain.chapter.model.toDbChapter import eu.kanade.domain.manga.interactor.GetAllManga -import eu.kanade.domain.manga.model.toDbManga import eu.kanade.domain.manga.repository.MangaRepository import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.cache.ChapterCache @@ -498,7 +497,7 @@ class SettingsAdvancedController( mangaFolder.delete() } else { val chapterList = getChapterByMangaId.await(manga.id) - foldersCleared += downloadManager.cleanupChapters(chapterList.map { it.toDbChapter() }, manga.toDbManga(), source, removeRead, removeNonFavorite) + foldersCleared += downloadManager.cleanupChapters(chapterList.map { it.toDbChapter() }, manga, source, removeRead, removeNonFavorite) } } }