Move LibraryManga to domain layer (#8126)

(cherry picked from commit ea8383978b)

# Conflicts:
#	app/src/main/java/eu/kanade/data/manga/MangaMapper.kt
#	app/src/main/java/eu/kanade/presentation/library/LibraryState.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/models/LibraryManga.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
This commit is contained in:
AntsyLich
2022-10-01 21:30:51 +06:00
committed by Jobobby04
parent 37fd74f141
commit 71076bd56a
24 changed files with 329 additions and 350 deletions
@@ -15,7 +15,6 @@ import eu.kanade.domain.manga.interactor.GetManga
import eu.kanade.domain.manga.interactor.UpdateManga
import eu.kanade.domain.manga.model.Manga
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.models.toDomainManga
import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.network.await
import eu.kanade.tachiyomi.source.SourceManager
@@ -98,17 +97,17 @@ class FavoritesSyncHelper(val context: Context) {
status.value = FavoritesSyncStatus.Processing(context.getString(R.string.favorites_sync_verifying_library), context = context)
val libraryManga = getLibraryManga.await()
val seenManga = HashSet<Long>(libraryManga.size)
libraryManga.forEach {
if (!it.isEhBasedManga()) return@forEach
libraryManga.forEach { (manga) ->
if (!manga.isEhBasedManga()) return@forEach
if (it.id in seenManga) {
val inCategories = getCategories.await(it.id!!)
status.value = FavoritesSyncStatus.BadLibraryState.MangaInMultipleCategories(it.toDomainManga()!!, inCategories, context)
if (manga.id in seenManga) {
val inCategories = getCategories.await(manga.id)
status.value = FavoritesSyncStatus.BadLibraryState.MangaInMultipleCategories(manga, inCategories, context)
logger.w(context.getString(R.string.favorites_sync_manga_multiple_categories_error, it.id))
logger.w(context.getString(R.string.favorites_sync_manga_multiple_categories_error, manga.id))
return
} else {
seenManga += it.id!!
seenManga += manga.id
}
}
@@ -1,6 +1,6 @@
package exh.util
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.domain.manga.model.Manga
import eu.kanade.tachiyomi.source.SourceManager
import exh.source.isEhBasedManga
import exh.source.nHentaiSourceIds
@@ -9,15 +9,14 @@ import uy.kohesive.injekt.api.get
fun Manga.isLewd(): Boolean {
val sourceName = Injekt.get<SourceManager>().get(source)?.name
val currentTags = getGenres().orEmpty()
if (isEhBasedManga() || source in nHentaiSourceIds) {
return currentTags.none { tag -> isNonHentaiTag(tag) }
return genre.orEmpty().none { tag -> isNonHentaiTag(tag) }
}
return source in 6905L..6913L ||
(sourceName != null && isHentaiSource(sourceName)) ||
currentTags.any { tag -> isHentaiTag(tag) }
genre.orEmpty().any { tag -> isHentaiTag(tag) }
}
private fun isNonHentaiTag(tag: String): Boolean {