diff --git a/app/src/main/java/eu/kanade/tachiyomi/appwidget/UpdatesGridGlanceWidget.kt b/app/src/main/java/eu/kanade/tachiyomi/appwidget/UpdatesGridGlanceWidget.kt index 92dccac475..e240334628 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/appwidget/UpdatesGridGlanceWidget.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/appwidget/UpdatesGridGlanceWidget.kt @@ -26,8 +26,6 @@ import coil3.size.Precision import coil3.size.Scale import coil3.transform.RoundedCornersTransformation import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString import eu.kanade.tachiyomi.appwidget.components.CoverHeight import eu.kanade.tachiyomi.appwidget.components.CoverWidth import eu.kanade.tachiyomi.appwidget.components.LockedWidget @@ -35,7 +33,7 @@ import eu.kanade.tachiyomi.appwidget.components.UpdatesWidget import eu.kanade.tachiyomi.appwidget.util.appWidgetBackgroundRadius import eu.kanade.tachiyomi.appwidget.util.calculateRowAndColumnCount import eu.kanade.tachiyomi.core.security.SecurityPreferences -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.recents.RecentsPresenter import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.launchIO diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/creators/MangaBackupCreator.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/creators/MangaBackupCreator.kt index 154fe51e0a..00fb5c4e60 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/creators/MangaBackupCreator.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/creators/MangaBackupCreator.kt @@ -6,8 +6,8 @@ import eu.kanade.tachiyomi.data.backup.models.BackupHistory import eu.kanade.tachiyomi.data.backup.models.BackupManga import eu.kanade.tachiyomi.data.backup.models.BackupTracking import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.library.CustomMangaManager +import eu.kanade.tachiyomi.domain.manga.models.Manga import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/creators/SourcesBackupCreator.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/creators/SourcesBackupCreator.kt index ab36056887..168e926ce5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/creators/SourcesBackupCreator.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/creators/SourcesBackupCreator.kt @@ -2,7 +2,7 @@ package eu.kanade.tachiyomi.data.backup.create.creators import eu.kanade.tachiyomi.data.backup.create.BackupOptions import eu.kanade.tachiyomi.data.backup.models.BackupSource -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.SourceManager import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt index b02d67cfbd..00521bafe0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt @@ -1,10 +1,11 @@ package eu.kanade.tachiyomi.data.backup.models import eu.kanade.tachiyomi.data.database.models.ChapterImpl -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaImpl import eu.kanade.tachiyomi.data.database.models.TrackImpl +import eu.kanade.tachiyomi.data.database.models.readingModeType import eu.kanade.tachiyomi.data.library.CustomMangaManager +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.model.UpdateStrategy import eu.kanade.tachiyomi.util.chapter.ChapterUtil import kotlinx.serialization.Serializable diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/MangaBackupRestorer.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/MangaBackupRestorer.kt index 30fae5afec..f9250159ec 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/MangaBackupRestorer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/MangaBackupRestorer.kt @@ -6,11 +6,11 @@ import eu.kanade.tachiyomi.data.backup.models.BackupManga import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.History -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaCategory import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.data.library.CustomMangaManager import eu.kanade.tachiyomi.data.library.LibraryUpdateJob +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.util.chapter.ChapterUtil import eu.kanade.tachiyomi.util.manga.MangaUtil diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/cache/CoverCache.kt b/app/src/main/java/eu/kanade/tachiyomi/data/cache/CoverCache.kt index 869a183916..05a96b866f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/cache/CoverCache.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/cache/CoverCache.kt @@ -6,8 +6,8 @@ import co.touchlab.kermit.Logger import coil3.imageLoader import coil3.memory.MemoryCache import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaImpl +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.util.storage.DiskUtil import eu.kanade.tachiyomi.util.system.e import eu.kanade.tachiyomi.util.system.executeOnIO diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/coil/LibraryMangaImageTarget.kt b/app/src/main/java/eu/kanade/tachiyomi/data/coil/LibraryMangaImageTarget.kt index 4490e1178b..ef2dbfa17b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/coil/LibraryMangaImageTarget.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/coil/LibraryMangaImageTarget.kt @@ -11,7 +11,7 @@ import coil3.request.Disposable import coil3.request.ImageRequest import coil3.target.ImageViewTarget import eu.kanade.tachiyomi.data.cache.CoverCache -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.util.system.launchIO import uy.kohesive.injekt.injectLazy diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverFetcher.kt b/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverFetcher.kt index 70c97b6ef6..c40cbe010c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverFetcher.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverFetcher.kt @@ -15,7 +15,7 @@ import coil3.getOrDefault import coil3.request.Options import com.hippo.unifile.UniFile import eu.kanade.tachiyomi.data.cache.CoverCache -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.network.await import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.online.HttpSource diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverKeyer.kt b/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverKeyer.kt index 8a041e2048..8e3bd388a8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverKeyer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/coil/MangaCoverKeyer.kt @@ -2,7 +2,7 @@ package eu.kanade.tachiyomi.data.coil import coil3.key.Keyer import coil3.request.Options -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.util.storage.DiskUtil class MangaCoverKeyer : Keyer { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt index 4932dc2ca9..901e19d3c6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt @@ -13,7 +13,6 @@ import eu.kanade.tachiyomi.data.database.mappers.TrackTypeMapping import eu.kanade.tachiyomi.data.database.models.Category import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.History -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaCategory import eu.kanade.tachiyomi.data.database.models.SearchMetadata import eu.kanade.tachiyomi.data.database.models.Track @@ -24,7 +23,7 @@ import eu.kanade.tachiyomi.data.database.queries.MangaCategoryQueries import eu.kanade.tachiyomi.data.database.queries.MangaQueries import eu.kanade.tachiyomi.data.database.queries.SearchMetadataQueries import eu.kanade.tachiyomi.data.database.queries.TrackQueries -import io.requery.android.database.sqlite.RequerySQLiteOpenHelperFactory +import eu.kanade.tachiyomi.domain.manga.models.Manga /** * This class provides operations to manage the database through its interfaces. diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaTypeMapping.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaTypeMapping.kt index a45e6af26c..7e62c5cd16 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaTypeMapping.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaTypeMapping.kt @@ -9,7 +9,6 @@ import com.pushtorefresh.storio.sqlite.operations.put.DefaultPutResolver import com.pushtorefresh.storio.sqlite.queries.DeleteQuery import com.pushtorefresh.storio.sqlite.queries.InsertQuery import com.pushtorefresh.storio.sqlite.queries.UpdateQuery -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaImpl import eu.kanade.tachiyomi.data.database.tables.MangaTable.COL_ARTIST import eu.kanade.tachiyomi.data.database.tables.MangaTable.COL_AUTHOR @@ -31,6 +30,7 @@ import eu.kanade.tachiyomi.data.database.tables.MangaTable.COL_UPDATE_STRATEGY import eu.kanade.tachiyomi.data.database.tables.MangaTable.COL_URL import eu.kanade.tachiyomi.data.database.tables.MangaTable.COL_VIEWER import eu.kanade.tachiyomi.data.database.tables.MangaTable.TABLE +import eu.kanade.tachiyomi.domain.manga.models.Manga import yokai.data.updateStrategyAdapter class MangaTypeMapping : SQLiteTypeMapping( diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaCategory.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaCategory.kt index 2203370884..e66e4b2e7f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaCategory.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaCategory.kt @@ -1,5 +1,7 @@ package eu.kanade.tachiyomi.data.database.models +import eu.kanade.tachiyomi.domain.manga.models.Manga + class MangaCategory { var id: Long? = null diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaChapter.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaChapter.kt index bf584ba9c8..c6b280602e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaChapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaChapter.kt @@ -1,3 +1,5 @@ package eu.kanade.tachiyomi.data.database.models +import eu.kanade.tachiyomi.domain.manga.models.Manga + class MangaChapter(val manga: Manga, val chapter: Chapter) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaChapterHistory.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaChapterHistory.kt index 6878b2edbb..c75332941e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaChapterHistory.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaChapterHistory.kt @@ -1,5 +1,7 @@ package eu.kanade.tachiyomi.data.database.models +import eu.kanade.tachiyomi.domain.manga.models.Manga + /** * Object containing manga, chapter and history * diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaExtensions.kt new file mode 100644 index 0000000000..7390fac934 --- /dev/null +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaExtensions.kt @@ -0,0 +1,225 @@ +package eu.kanade.tachiyomi.data.database.models + +import android.content.Context +import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga.Companion.TYPE_COMIC +import eu.kanade.tachiyomi.domain.manga.models.Manga.Companion.TYPE_MANGA +import eu.kanade.tachiyomi.domain.manga.models.Manga.Companion.TYPE_MANHUA +import eu.kanade.tachiyomi.domain.manga.models.Manga.Companion.TYPE_MANHWA +import eu.kanade.tachiyomi.domain.manga.models.Manga.Companion.TYPE_WEBTOON +import eu.kanade.tachiyomi.source.SourceManager +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.ui.reader.settings.OrientationType +import eu.kanade.tachiyomi.ui.reader.settings.ReadingModeType +import eu.kanade.tachiyomi.util.manga.MangaCoverMetadata +import eu.kanade.tachiyomi.util.system.withIOContext +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get +import uy.kohesive.injekt.injectLazy +import yokai.data.updateStrategyAdapter +import yokai.domain.chapter.interactor.GetChapter +import yokai.i18n.MR +import yokai.util.lang.getString +import java.util.* + +fun Manga.sortDescending(preferences: PreferencesHelper): Boolean = + if (usesLocalSort) sortDescending else preferences.chaptersDescAsDefault().get() +fun Manga.chapterOrder(preferences: PreferencesHelper): Int = + if (usesLocalSort) sorting else preferences.sortChapterOrder().get() +fun Manga.readFilter(preferences: PreferencesHelper): Int = + if (usesLocalFilter) readFilter else preferences.filterChapterByRead().get() +fun Manga.downloadedFilter(preferences: PreferencesHelper): Int = + if (usesLocalFilter) downloadedFilter else preferences.filterChapterByDownloaded().get() +fun Manga.bookmarkedFilter(preferences: PreferencesHelper): Int = + if (usesLocalFilter) bookmarkedFilter else preferences.filterChapterByBookmarked().get() +fun Manga.hideChapterTitle(preferences: PreferencesHelper): Boolean = + if (usesLocalFilter) hideChapterTitles else preferences.hideChapterTitlesByDefault().get() + +fun Manga.seriesType(context: Context, sourceManager: SourceManager? = null): String { + return context.getString( + when (seriesType(sourceManager = sourceManager)) { + TYPE_WEBTOON -> MR.strings.webtoon + TYPE_MANHWA -> MR.strings.manhwa + TYPE_MANHUA -> MR.strings.manhua + TYPE_COMIC -> MR.strings.comic + else -> MR.strings.manga + }, + ).lowercase(Locale.getDefault()) +} + +/** + * The type of comic the manga is (ie. manga, manhwa, manhua) + */ +fun Manga.seriesType(useOriginalTags: Boolean = false, customTags: String? = null, sourceManager: SourceManager? = null): Int { + val sourceName by lazy { (sourceManager ?: Injekt.get()).getOrStub(source).name } + val tags = customTags ?: if (useOriginalTags) originalGenre else genre + val currentTags = tags?.split(",")?.map { it.trim().lowercase(Locale.US) } ?: emptyList() + return if (currentTags.any { tag -> isMangaTag(tag) }) { + TYPE_MANGA + } else if (currentTags.any { tag -> isComicTag(tag) } || + isComicSource(sourceName) + ) { + TYPE_COMIC + } else if (currentTags.any { tag -> isWebtoonTag(tag) } || + ( + sourceName.contains("webtoon", true) && + currentTags.none { tag -> isManhuaTag(tag) } && + currentTags.none { tag -> isManhwaTag(tag) } + ) + ) { + TYPE_WEBTOON + } else if (currentTags.any { tag -> isManhuaTag(tag) } || sourceName.contains( + "manhua", + true, + ) + ) { + TYPE_MANHUA + } else if (currentTags.any { tag -> isManhwaTag(tag) } || isWebtoonSource(sourceName)) { + TYPE_MANHWA + } else { + TYPE_MANGA + } +} + +/** + * The type the reader should use. Different from manga type as certain manga has different + * read types + */ +fun Manga.defaultReaderType(): Int { + val sourceName = Injekt.get().getOrStub(source).name + val currentTags = genre?.split(",")?.map { it.trim().lowercase(Locale.US) } ?: emptyList() + return if (currentTags.any { + tag -> isManhwaTag(tag) || tag.contains("webtoon") + } || ( + isWebtoonSource(sourceName) && + currentTags.none { tag -> isManhuaTag(tag) } && + currentTags.none { tag -> isComicTag(tag) } + ) + ) { + ReadingModeType.LONG_STRIP.flagValue + } else if (currentTags.any { + tag -> tag == "chinese" || tag == "manhua" || tag == "comic" + } || ( + isComicSource(sourceName) && + !sourceName.contains("tapas", true) && + currentTags.none { tag -> isMangaTag(tag) } + ) || ( + sourceName.contains("manhua", true) && currentTags.none { tag -> isMangaTag(tag) } + ) + ) { + ReadingModeType.LEFT_TO_RIGHT.flagValue + } else { + 0 + } +} + +fun Manga.copyFrom(other: SManga) { + thumbnail_url = other.thumbnail_url ?: thumbnail_url + + if (other.author != null) { + author = if (other is Manga) other.originalAuthor else other.author + } + + if (other.artist != null) { + artist = if (other is Manga) other.originalArtist else other.artist + } + + if (other.description != null) { + description = if (other is Manga) other.originalDescription else other.description + } + + if (other.genre != null) { + genre = if (other is Manga) other.originalGenre else other.genre + } + + status = if (other is Manga) other.originalStatus else other.status + + update_strategy = other.update_strategy + + if (!initialized) { + initialized = other.initialized + } +} + +suspend fun Manga.isOneShotOrCompleted(): Boolean = withIOContext { + val tags by lazy { genre?.split(",")?.map { it.trim().lowercase(Locale.US) } } + val getChapter: GetChapter by injectLazy() + val chapters = getChapter.awaitAll(this@isOneShotOrCompleted) + val firstChapterName by lazy { chapters.firstOrNull()?.name?.lowercase() ?: "" } + + status == SManga.COMPLETED || tags?.contains("oneshot") == true || + ( + chapters.size == 1 && + ( + Regex("one.?shot").containsMatchIn(firstChapterName) || + firstChapterName.contains("oneshot") + ) + ) +} + +var Manga.readingModeType: Int + get() = viewer_flags and ReadingModeType.MASK + set(readingMode) = setViewerFlags(readingMode, ReadingModeType.MASK) + +var Manga.orientationType: Int + get() = viewer_flags and OrientationType.MASK + set(rotationType) = setViewerFlags(rotationType, OrientationType.MASK) + +var Manga.dominantCoverColors: Pair? + get() = MangaCoverMetadata.getColors(this) + set(value) { + value ?: return + MangaCoverMetadata.addCoverColor(this, value.first, value.second) + } + +fun Manga.Companion.create(source: Long) = MangaImpl().apply { + this.source = source +} + +fun Manga.Companion.create(pathUrl: String, title: String, source: Long = 0) = MangaImpl().apply { + url = pathUrl + this.title = title + this.source = source +} + +fun Manga.Companion.mapper( + id: Long, + source: Long, + url: String, + artist: String?, + author: String?, + description: String?, + genre: String?, + title: String, + status: Long, + thumbnailUrl: String?, + favorite: Long, + lastUpdate: Long?, + initialized: Boolean, + viewerFlags: Long, + hideTitle: Long, + chapterFlags: Long, + dateAdded: Long?, + filteredScanlators: String?, + updateStrategy: Long +) = create(source).apply { + this.id = id + this.url = url + this.artist = artist + this.author = author + this.description = description + this.genre = genre + this.title = title + this.status = status.toInt() + this.thumbnail_url = thumbnailUrl + this.favorite = favorite > 0 + this.last_update = lastUpdate ?: 0L + this.initialized = initialized + this.viewer_flags = viewerFlags.toInt() + this.chapter_flags = chapterFlags.toInt() + this.hide_title = hideTitle > 0 + this.date_added = dateAdded ?: 0L + this.filtered_scanlators = filteredScanlators + this.update_strategy = updateStrategy.let(updateStrategyAdapter::decode) +} diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaImpl.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaImpl.kt index 84992576b3..c2aba9b0f7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaImpl.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaImpl.kt @@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.data.database.models import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.download.DownloadProvider import eu.kanade.tachiyomi.data.library.CustomMangaManager +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.UpdateStrategy import uy.kohesive.injekt.injectLazy @@ -73,18 +74,12 @@ open class MangaImpl : Manga { override var filtered_scanlators: String? = null - lateinit var ogTitle: String - private set - var ogAuthor: String? = null - private set - var ogArtist: String? = null - private set - var ogDesc: String? = null - private set - var ogGenre: String? = null - private set - var ogStatus: Int = 0 - private set + override lateinit var ogTitle: String + override var ogAuthor: String? = null + override var ogArtist: String? = null + override var ogDesc: String? = null + override var ogGenre: String? = null + override var ogStatus: Int = 0 override fun copyFrom(other: SManga) { if (other is MangaImpl && other::ogTitle.isInitialized && diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/CategoryQueries.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/CategoryQueries.kt index f940a50c72..d435df3c9e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/CategoryQueries.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/CategoryQueries.kt @@ -4,8 +4,8 @@ import com.pushtorefresh.storio.sqlite.queries.Query import com.pushtorefresh.storio.sqlite.queries.RawQuery import eu.kanade.tachiyomi.data.database.DbProvider import eu.kanade.tachiyomi.data.database.models.Category -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.tables.CategoryTable +import eu.kanade.tachiyomi.domain.manga.models.Manga interface CategoryQueries : DbProvider { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/ChapterQueries.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/ChapterQueries.kt index 80cfb1d659..1d8c8a885c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/ChapterQueries.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/ChapterQueries.kt @@ -4,12 +4,12 @@ import com.pushtorefresh.storio.sqlite.queries.Query import com.pushtorefresh.storio.sqlite.queries.RawQuery import eu.kanade.tachiyomi.data.database.DbProvider import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaChapter import eu.kanade.tachiyomi.data.database.resolvers.ChapterKnownBackupPutResolver import eu.kanade.tachiyomi.data.database.resolvers.ChapterProgressPutResolver import eu.kanade.tachiyomi.data.database.resolvers.MangaChapterGetResolver import eu.kanade.tachiyomi.data.database.tables.ChapterTable +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.util.lang.sqLite interface ChapterQueries : DbProvider { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaCategoryQueries.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaCategoryQueries.kt index 571cd23aa4..f7f91b660c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaCategoryQueries.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaCategoryQueries.kt @@ -4,9 +4,9 @@ import com.pushtorefresh.storio.Queries import com.pushtorefresh.storio.sqlite.queries.DeleteQuery import eu.kanade.tachiyomi.data.database.DbProvider import eu.kanade.tachiyomi.data.database.inTransaction -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaCategory import eu.kanade.tachiyomi.data.database.tables.MangaCategoryTable +import eu.kanade.tachiyomi.domain.manga.models.Manga interface MangaCategoryQueries : DbProvider { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt index d23de1dc31..cf1db57e14 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt @@ -5,7 +5,6 @@ import com.pushtorefresh.storio.sqlite.queries.DeleteQuery import com.pushtorefresh.storio.sqlite.queries.Query import com.pushtorefresh.storio.sqlite.queries.RawQuery import eu.kanade.tachiyomi.data.database.DbProvider -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.SourceIdMangaCount import eu.kanade.tachiyomi.data.database.resolvers.MangaDateAddedPutResolver import eu.kanade.tachiyomi.data.database.resolvers.MangaFavoritePutResolver @@ -13,6 +12,7 @@ import eu.kanade.tachiyomi.data.database.resolvers.MangaTitlePutResolver import eu.kanade.tachiyomi.data.database.resolvers.SourceIdMangaCountGetResolver import eu.kanade.tachiyomi.data.database.tables.ChapterTable import eu.kanade.tachiyomi.data.database.tables.MangaTable +import eu.kanade.tachiyomi.domain.manga.models.Manga interface MangaQueries : DbProvider { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/TrackQueries.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/TrackQueries.kt index be5ba92580..88de11fbfb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/TrackQueries.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/TrackQueries.kt @@ -3,10 +3,10 @@ package eu.kanade.tachiyomi.data.database.queries import com.pushtorefresh.storio.sqlite.queries.DeleteQuery import com.pushtorefresh.storio.sqlite.queries.Query import eu.kanade.tachiyomi.data.database.DbProvider -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.data.database.tables.TrackTable import eu.kanade.tachiyomi.data.track.TrackService +import eu.kanade.tachiyomi.domain.manga.models.Manga interface TrackQueries : DbProvider { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaDateAddedPutResolver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaDateAddedPutResolver.kt index 27a51b3046..565a302fc0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaDateAddedPutResolver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaDateAddedPutResolver.kt @@ -6,8 +6,8 @@ import com.pushtorefresh.storio.sqlite.operations.put.PutResolver import com.pushtorefresh.storio.sqlite.operations.put.PutResult import com.pushtorefresh.storio.sqlite.queries.UpdateQuery import eu.kanade.tachiyomi.data.database.inTransactionReturn -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.tables.MangaTable +import eu.kanade.tachiyomi.domain.manga.models.Manga class MangaDateAddedPutResolver : PutResolver() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFavoritePutResolver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFavoritePutResolver.kt index 5c948a2c8e..c2300a15d0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFavoritePutResolver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFavoritePutResolver.kt @@ -6,8 +6,8 @@ import com.pushtorefresh.storio.sqlite.operations.put.PutResolver import com.pushtorefresh.storio.sqlite.operations.put.PutResult import com.pushtorefresh.storio.sqlite.queries.UpdateQuery import eu.kanade.tachiyomi.data.database.inTransactionReturn -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.tables.MangaTable +import eu.kanade.tachiyomi.domain.manga.models.Manga class MangaFavoritePutResolver : PutResolver() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFilteredScanlatorsPutResolver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFilteredScanlatorsPutResolver.kt index fb5ebc2af9..2138dda03e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFilteredScanlatorsPutResolver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFilteredScanlatorsPutResolver.kt @@ -6,8 +6,8 @@ import com.pushtorefresh.storio.sqlite.operations.put.PutResolver import com.pushtorefresh.storio.sqlite.operations.put.PutResult import com.pushtorefresh.storio.sqlite.queries.UpdateQuery import eu.kanade.tachiyomi.data.database.inTransactionReturn -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.tables.MangaTable +import eu.kanade.tachiyomi.domain.manga.models.Manga class MangaFilteredScanlatorsPutResolver : PutResolver() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFlagsPutResolver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFlagsPutResolver.kt index 89e5b41faa..15bd98f374 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFlagsPutResolver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFlagsPutResolver.kt @@ -6,8 +6,8 @@ import com.pushtorefresh.storio.sqlite.operations.put.PutResolver import com.pushtorefresh.storio.sqlite.operations.put.PutResult import com.pushtorefresh.storio.sqlite.queries.UpdateQuery import eu.kanade.tachiyomi.data.database.inTransactionReturn -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.tables.MangaTable +import eu.kanade.tachiyomi.domain.manga.models.Manga import kotlin.reflect.KProperty1 class MangaFlagsPutResolver(private val colName: String, private val fieldGetter: KProperty1, private val updateAll: Boolean = false) : PutResolver() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaInfoPutResolver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaInfoPutResolver.kt index 82719f95fb..a567616f57 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaInfoPutResolver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaInfoPutResolver.kt @@ -6,8 +6,8 @@ import com.pushtorefresh.storio.sqlite.operations.put.PutResolver import com.pushtorefresh.storio.sqlite.operations.put.PutResult import com.pushtorefresh.storio.sqlite.queries.UpdateQuery import eu.kanade.tachiyomi.data.database.inTransactionReturn -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.tables.MangaTable +import eu.kanade.tachiyomi.domain.manga.models.Manga class MangaInfoPutResolver() : PutResolver() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaLastUpdatedPutResolver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaLastUpdatedPutResolver.kt index 6b33ed2554..38637eb137 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaLastUpdatedPutResolver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaLastUpdatedPutResolver.kt @@ -6,8 +6,8 @@ import com.pushtorefresh.storio.sqlite.operations.put.PutResolver import com.pushtorefresh.storio.sqlite.operations.put.PutResult import com.pushtorefresh.storio.sqlite.queries.UpdateQuery import eu.kanade.tachiyomi.data.database.inTransactionReturn -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.tables.MangaTable +import eu.kanade.tachiyomi.domain.manga.models.Manga class MangaLastUpdatedPutResolver : PutResolver() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaTitlePutResolver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaTitlePutResolver.kt index cb29c26d95..3e74a8e73d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaTitlePutResolver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaTitlePutResolver.kt @@ -6,8 +6,8 @@ import com.pushtorefresh.storio.sqlite.operations.put.PutResolver import com.pushtorefresh.storio.sqlite.operations.put.PutResult import com.pushtorefresh.storio.sqlite.queries.UpdateQuery import eu.kanade.tachiyomi.data.database.inTransactionReturn -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.tables.MangaTable +import eu.kanade.tachiyomi.domain.manga.models.Manga class MangaTitlePutResolver : PutResolver() { 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 0268146458..d237008307 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,7 +3,7 @@ package eu.kanade.tachiyomi.data.download import android.content.Context import com.hippo.unifile.UniFile import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.util.storage.DiskUtil import kotlinx.coroutines.CoroutineScope 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 ab1c7f86f8..619854bcde 100644 --- 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,10 +4,10 @@ import android.content.Context import co.touchlab.kermit.Logger import com.hippo.unifile.UniFile 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 +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.model.Page 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 8c50559bd8..fd6e63a77b 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 @@ -3,9 +3,9 @@ package eu.kanade.tachiyomi.data.download import android.content.Context import androidx.core.content.edit import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.create +import eu.kanade.tachiyomi.domain.manga.models.Manga import kotlinx.serialization.Serializable -import kotlinx.serialization.decodeFromString import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import uy.kohesive.injekt.injectLazy 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 caee7e5dae..e0e9b8a726 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt @@ -4,7 +4,7 @@ import android.content.Context import com.hippo.unifile.UniFile import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.util.storage.DiskUtil 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 0f4624d3ab..53fc050c0d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadStore.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadStore.kt @@ -3,12 +3,11 @@ package eu.kanade.tachiyomi.data.download import android.content.Context import androidx.core.content.edit import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.model.Download +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.online.HttpSource import kotlinx.serialization.Serializable -import kotlinx.serialization.decodeFromString import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import uy.kohesive.injekt.injectLazy 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 dd838c0985..d428b926c6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt @@ -9,11 +9,11 @@ import com.jakewharton.rxrelay.PublishRelay import eu.kanade.tachiyomi.data.cache.ChapterCache import eu.kanade.tachiyomi.data.database.DatabaseHelper 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.LibraryUpdateJob import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.UnmeteredSource import eu.kanade.tachiyomi.source.model.Page @@ -54,7 +54,6 @@ import yokai.core.metadata.getComicInfo import yokai.domain.download.DownloadPreferences import yokai.i18n.MR import yokai.util.lang.getString -import java.io.BufferedOutputStream import java.io.File import java.util.zip.* 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 7ea71f119a..d2daedf1ea 100644 --- 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 @@ -1,7 +1,7 @@ package eu.kanade.tachiyomi.data.download.model import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.online.HttpSource import rx.subjects.PublishSubject 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 12302a4e11..faef31ccbf 100644 --- 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 @@ -2,13 +2,13 @@ package eu.kanade.tachiyomi.data.download.model import com.jakewharton.rxrelay.PublishRelay 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.domain.manga.models.Manga import kotlinx.coroutines.MainScope import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch import rx.subjects.PublishSubject -import java.util.concurrent.CopyOnWriteArrayList +import java.util.concurrent.* class DownloadQueue( private val store: DownloadStore, diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/CustomMangaManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/CustomMangaManager.kt index 119173a80f..b1a720b4dd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/CustomMangaManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/CustomMangaManager.kt @@ -2,8 +2,8 @@ package eu.kanade.tachiyomi.data.library import android.content.Context import com.hippo.unifile.UniFile -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaImpl +import eu.kanade.tachiyomi.domain.manga.models.Manga import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.collectLatest diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt index b25a481256..997bcd1087 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt @@ -20,16 +20,11 @@ import co.touchlab.kermit.Logger import coil3.imageLoader import coil3.request.CachePolicy import coil3.request.ImageRequest -import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.cache.CoverCache import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Category import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.LibraryManga -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.DownloadJob import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.notification.Notifications @@ -42,6 +37,7 @@ import eu.kanade.tachiyomi.data.preference.MANGA_NON_READ import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.track.EnhancedTrackService import eu.kanade.tachiyomi.data.track.TrackManager +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.extension.ExtensionUpdateJob import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.UnmeteredSource @@ -81,6 +77,8 @@ import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import yokai.domain.manga.interactor.GetLibraryManga import yokai.domain.manga.interactor.UpdateManga +import yokai.i18n.MR +import yokai.util.lang.getString import java.io.File import java.lang.ref.WeakReference import java.util.* diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt index 18269041df..70ea1be727 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt @@ -20,16 +20,13 @@ import coil3.request.ImageRequest import coil3.request.transformations import coil3.transform.CircleCropTransformation import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.LibraryManga -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.notification.NotificationHandler import eu.kanade.tachiyomi.data.notification.NotificationReceiver import eu.kanade.tachiyomi.data.notification.Notifications import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.main.MainActivity import eu.kanade.tachiyomi.util.chapter.ChapterUtil.Companion.preferredChapterName import eu.kanade.tachiyomi.util.lang.chop @@ -40,6 +37,8 @@ import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import uy.kohesive.injekt.injectLazy +import yokai.i18n.MR +import yokai.util.lang.getString import android.R as AR class LibraryUpdateNotifier(private val context: Context) { 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 b46c2655d4..2d3a5ab42e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt @@ -10,12 +10,12 @@ import androidx.core.content.IntentCompat import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.DownloadJob import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.updater.AppDownloadInstallJob +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.extension.ExtensionInstallerJob import eu.kanade.tachiyomi.extension.ExtensionManager import eu.kanade.tachiyomi.extension.model.Extension diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt index 9da3d5bd27..2b3d500ffa 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt @@ -7,8 +7,8 @@ import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.core.preference.Preference import eu.kanade.tachiyomi.core.preference.PreferenceStore import eu.kanade.tachiyomi.core.preference.getEnum -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.updater.AppDownloadInstallJob +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.extension.model.InstalledExtensionsOrder import eu.kanade.tachiyomi.ui.library.LibraryItem import eu.kanade.tachiyomi.ui.library.filter.FilterBottomSheet diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/EnhancedTrackService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/EnhancedTrackService.kt index 31a86e26a9..6fa533d242 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/EnhancedTrackService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/EnhancedTrackService.kt @@ -1,8 +1,8 @@ package eu.kanade.tachiyomi.data.track -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.data.track.model.TrackSearch +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.Source /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt index d5777eb058..e74c1bffeb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt @@ -2,10 +2,10 @@ package eu.kanade.tachiyomi.data.track import androidx.annotation.CallSuper import androidx.annotation.DrawableRes -import androidx.annotation.StringRes import dev.icerock.moko.resources.StringResource import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Track +import eu.kanade.tachiyomi.data.database.models.isOneShotOrCompleted import eu.kanade.tachiyomi.data.track.model.TrackSearch import eu.kanade.tachiyomi.network.NetworkHelper import eu.kanade.tachiyomi.util.system.executeOnIO @@ -110,7 +110,7 @@ abstract class TrackService(val id: Int) { suspend fun TrackService.updateNewTrackInfo(track: Track) { val manga = db.getManga(track.manga_id).executeOnIO() - val allRead = manga?.isOneShotOrCompleted(db) == true && + val allRead = manga?.isOneShotOrCompleted() == true && db.getChapters(track.manga_id).executeOnIO().all { it.read } if (supportsReadingDates) { track.started_reading_date = getStartDate(track) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/UnattendedTrackService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/UnattendedTrackService.kt index fbbed65eaf..6bdd1c17a6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/UnattendedTrackService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/UnattendedTrackService.kt @@ -1,7 +1,7 @@ package eu.kanade.tachiyomi.data.track -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.track.model.TrackSearch +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.Source /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/kavita/Kavita.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/kavita/Kavita.kt index 613cd90600..27579e3451 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/kavita/Kavita.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/kavita/Kavita.kt @@ -2,22 +2,20 @@ package eu.kanade.tachiyomi.data.track.kavita import android.content.Context import android.graphics.Color -import androidx.annotation.StringRes import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.data.track.EnhancedTrackService import eu.kanade.tachiyomi.data.track.TrackService import eu.kanade.tachiyomi.data.track.model.TrackSearch import eu.kanade.tachiyomi.data.track.updateNewTrackInfo +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.sourcePreferences import uy.kohesive.injekt.injectLazy +import yokai.i18n.MR +import yokai.util.lang.getString import java.security.MessageDigest class Kavita(private val context: Context, id: Int) : TrackService(id), EnhancedTrackService { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/komga/Komga.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/komga/Komga.kt index 866839ad80..0ea5e342dd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/komga/Komga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/komga/Komga.kt @@ -2,19 +2,17 @@ package eu.kanade.tachiyomi.data.track.komga import android.content.Context import android.graphics.Color -import androidx.annotation.StringRes import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.data.track.EnhancedTrackService import eu.kanade.tachiyomi.data.track.TrackService import eu.kanade.tachiyomi.data.track.model.TrackSearch import eu.kanade.tachiyomi.data.track.updateNewTrackInfo +import eu.kanade.tachiyomi.domain.manga.models.Manga import okhttp3.Dns import okhttp3.OkHttpClient +import yokai.i18n.MR +import yokai.util.lang.getString class Komga(private val context: Context, id: Int) : TrackService(id), EnhancedTrackService { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/suwayomi/Suwayomi.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/suwayomi/Suwayomi.kt index a7b968a69d..3ef2f5343a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/suwayomi/Suwayomi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/suwayomi/Suwayomi.kt @@ -2,17 +2,15 @@ package eu.kanade.tachiyomi.data.track.suwayomi import android.content.Context import android.graphics.Color -import androidx.annotation.StringRes import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.data.track.EnhancedTrackService import eu.kanade.tachiyomi.data.track.TrackService import eu.kanade.tachiyomi.data.track.model.TrackSearch import eu.kanade.tachiyomi.data.track.updateNewTrackInfo +import eu.kanade.tachiyomi.domain.manga.models.Manga +import yokai.i18n.MR +import yokai.util.lang.getString class Suwayomi(private val context: Context, id: Int) : TrackService(id), EnhancedTrackService { val api by lazy { TachideskApi() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/smartsearch/SmartSearchEngine.kt b/app/src/main/java/eu/kanade/tachiyomi/smartsearch/SmartSearchEngine.kt index 56bce3f318..fc7dd754eb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/smartsearch/SmartSearchEngine.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/smartsearch/SmartSearchEngine.kt @@ -1,7 +1,8 @@ package eu.kanade.tachiyomi.smartsearch import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.create +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.util.lang.toNormalized diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/models/SMangaExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/source/models/SMangaExtensions.kt index 352fc93f30..1f3b5737f3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/models/SMangaExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/models/SMangaExtensions.kt @@ -1,6 +1,6 @@ package eu.kanade.tachiyomi.source.models -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.model.SManga val SManga.originalTitle: String diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/DelegatedHttpSource.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/DelegatedHttpSource.kt index 6ab060d05d..5986bd3fd3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/DelegatedHttpSource.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/DelegatedHttpSource.kt @@ -3,8 +3,9 @@ package eu.kanade.tachiyomi.source.online import android.net.Uri import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaImpl +import eu.kanade.tachiyomi.data.database.models.create +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.network.NetworkHelper import eu.kanade.tachiyomi.source.model.SChapter import uy.kohesive.injekt.injectLazy diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/Cubari.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/Cubari.kt index 8944b9b3f8..30c0bca2b9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/Cubari.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/Cubari.kt @@ -2,9 +2,9 @@ package eu.kanade.tachiyomi.source.online.all import android.net.Uri import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.toChapter import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.online.DelegatedHttpSource import eu.kanade.tachiyomi.util.system.executeOnIO diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MangaDex.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MangaDex.kt index 8ba31be2da..737dea35d0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MangaDex.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MangaDex.kt @@ -1,14 +1,10 @@ package eu.kanade.tachiyomi.source.online.all import android.net.Uri -import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.toChapter import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.await import eu.kanade.tachiyomi.source.SourceManager @@ -23,6 +19,8 @@ import okhttp3.CacheControl import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy +import yokai.i18n.MR +import yokai.util.lang.getString import java.util.* class MangaDex : DelegatedHttpSource() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/FoolSlide.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/FoolSlide.kt index d26e48a9f1..db2c8a39ca 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/FoolSlide.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/FoolSlide.kt @@ -2,10 +2,10 @@ package eu.kanade.tachiyomi.source.online.english import android.net.Uri import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaImpl import eu.kanade.tachiyomi.data.database.models.toChapter import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.network.await diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/KireiCake.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/KireiCake.kt index 05048c30e2..ecad868775 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/KireiCake.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/KireiCake.kt @@ -1,7 +1,7 @@ package eu.kanade.tachiyomi.source.online.english -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaImpl +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.await import eu.kanade.tachiyomi.util.asJsoup diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/MangaPlus.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/MangaPlus.kt index cffdb9355e..9e89515fa8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/MangaPlus.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/MangaPlus.kt @@ -1,14 +1,10 @@ package eu.kanade.tachiyomi.source.online.english import android.net.Uri -import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.toChapter import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.await import eu.kanade.tachiyomi.source.model.SChapter @@ -19,6 +15,8 @@ import kotlinx.coroutines.withContext import okhttp3.CacheControl import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get +import yokai.i18n.MR +import yokai.util.lang.getString class MangaPlus : DelegatedHttpSource() { override val domainName: String = "jumpg-webapi.tokyo-cdn" diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/category/addtolibrary/SetCategoriesSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/category/addtolibrary/SetCategoriesSheet.kt index de40e58a3a..8f1a9591a4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/category/addtolibrary/SetCategoriesSheet.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/category/addtolibrary/SetCategoriesSheet.kt @@ -13,16 +13,13 @@ import androidx.recyclerview.widget.RecyclerView import com.google.android.material.bottomsheet.BottomSheetBehavior import com.mikepenz.fastadapter.FastAdapter import com.mikepenz.fastadapter.adapters.ItemAdapter -import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Category -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaCategory +import eu.kanade.tachiyomi.data.database.models.seriesType import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.databinding.SetCategoriesSheetBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.category.ManageCategoryDialog import eu.kanade.tachiyomi.ui.main.MainActivity import eu.kanade.tachiyomi.util.system.dpToPx @@ -32,8 +29,9 @@ import eu.kanade.tachiyomi.util.view.expand import eu.kanade.tachiyomi.widget.E2EBottomSheetDialog import eu.kanade.tachiyomi.widget.TriStateCheckBox import uy.kohesive.injekt.injectLazy -import java.util.Date -import java.util.Locale +import yokai.i18n.MR +import yokai.util.lang.getString +import java.util.* import kotlin.math.max class SetCategoriesSheet( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt index 56724ec453..6f6287cae1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt @@ -5,13 +5,9 @@ import android.view.HapticFeedbackConstants import android.view.View import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.items.IFlexible -import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.util.lang.chop import eu.kanade.tachiyomi.util.lang.removeArticles @@ -21,6 +17,8 @@ import eu.kanade.tachiyomi.util.system.withDefContext import kotlinx.coroutines.runBlocking import uy.kohesive.injekt.injectLazy import yokai.domain.ui.UiPreferences +import yokai.i18n.MR +import yokai.util.lang.getString import java.util.* /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt index 3750daaa1a..72fccde1d4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt @@ -58,19 +58,16 @@ import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.flexibleadapter.items.IHeader import eu.davidea.flexibleadapter.items.ISectionable import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.core.preference.Preference import eu.kanade.tachiyomi.data.database.models.Category import eu.kanade.tachiyomi.data.database.models.LibraryManga -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.DownloadJob import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.notification.NotificationReceiver import eu.kanade.tachiyomi.data.notification.Notifications import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.databinding.LibraryControllerBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.ui.base.MaterialMenuSheet import eu.kanade.tachiyomi.ui.base.MiniSearchView @@ -139,6 +136,8 @@ import kotlinx.coroutines.launch import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import yokai.domain.ui.UiPreferences +import yokai.i18n.MR +import yokai.util.lang.getString import java.util.* import kotlin.math.abs import kotlin.math.max diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt index a58f82a45e..ac6dc434ac 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt @@ -14,12 +14,10 @@ import coil3.dispose import coil3.size.Precision import coil3.size.Scale import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.coil.loadManga +import eu.kanade.tachiyomi.data.database.models.dominantCoverColors import eu.kanade.tachiyomi.databinding.MangaGridItemBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.util.lang.highlightText import eu.kanade.tachiyomi.util.manga.MangaCoverMetadata import eu.kanade.tachiyomi.util.system.dpToPx diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt index 25eb47383b..9cce6ccec2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt @@ -16,10 +16,8 @@ import eu.davidea.flexibleadapter.items.AbstractSectionableItem import eu.davidea.flexibleadapter.items.IFilterable import eu.davidea.flexibleadapter.items.IFlexible import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.models.LibraryManga +import eu.kanade.tachiyomi.data.database.models.seriesType import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.databinding.MangaGridItemBinding import eu.kanade.tachiyomi.source.SourceManager 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 bc6f9be4cd..1fbc7c3203 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt @@ -8,15 +8,16 @@ import eu.kanade.tachiyomi.data.database.models.Category import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.Chapter.Companion.copy import eu.kanade.tachiyomi.data.database.models.LibraryManga -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaCategory import eu.kanade.tachiyomi.data.database.models.Track +import eu.kanade.tachiyomi.data.database.models.seriesType import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.data.download.model.DownloadQueue import eu.kanade.tachiyomi.data.preference.DelayedLibrarySuggestionsJob import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.track.TrackManager +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.model.SManga diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/filter/FilterBottomSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/filter/FilterBottomSheet.kt index 40b5b09a96..dbf17c3c49 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/filter/FilterBottomSheet.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/filter/FilterBottomSheet.kt @@ -14,10 +14,11 @@ import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat import com.google.android.material.bottomsheet.BottomSheetBehavior import dev.icerock.moko.resources.StringResource import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.seriesType import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.track.TrackManager import eu.kanade.tachiyomi.databinding.FilterBottomSheetBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.ui.library.LibraryController import eu.kanade.tachiyomi.ui.library.LibraryGroup diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt index 5db32e3a2f..82e6802faf 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt @@ -20,8 +20,9 @@ import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.coil.MangaCoverFetcher import eu.kanade.tachiyomi.data.coil.loadManga import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.seriesType import eu.kanade.tachiyomi.databinding.EditMangaDialogBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.extension.ExtensionManager import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.source.icon diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt index cde81ed155..317773cbd3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt @@ -56,19 +56,17 @@ import dev.icerock.moko.resources.StringResource import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.SelectableAdapter import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.coil.getBestColor import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Category import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.seriesType import eu.kanade.tachiyomi.data.download.DownloadJob import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.data.notification.NotificationReceiver import eu.kanade.tachiyomi.data.track.model.TrackSearch import eu.kanade.tachiyomi.databinding.MangaDetailsControllerBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager @@ -142,7 +140,9 @@ import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withTimeoutOrNull import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get +import yokai.i18n.MR import yokai.presentation.core.Constants +import yokai.util.lang.getString import java.io.File import java.io.IOException import java.util.* diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsPresenter.kt index 0d73501253..efe80af1fe 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsPresenter.kt @@ -12,17 +12,17 @@ import coil3.request.SuccessResult import com.hippo.unifile.UniFile import dev.icerock.moko.resources.StringResource import eu.kanade.tachiyomi.BuildConfig -import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.cache.CoverCache import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Category import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.History -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Track +import eu.kanade.tachiyomi.data.database.models.bookmarkedFilter +import eu.kanade.tachiyomi.data.database.models.chapterOrder +import eu.kanade.tachiyomi.data.database.models.downloadedFilter +import eu.kanade.tachiyomi.data.database.models.readFilter +import eu.kanade.tachiyomi.data.database.models.sortDescending import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.data.download.model.DownloadQueue @@ -32,6 +32,7 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.track.EnhancedTrackService import eu.kanade.tachiyomi.data.track.TrackManager import eu.kanade.tachiyomi.data.track.TrackService +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager @@ -81,6 +82,8 @@ import yokai.domain.library.custom.model.CustomMangaInfo import yokai.domain.manga.interactor.UpdateManga import yokai.domain.manga.models.MangaUpdate import yokai.domain.storage.StorageManager +import yokai.i18n.MR +import yokai.util.lang.getString import java.io.File import java.io.FileOutputStream import java.io.OutputStream diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt index db2812148d..d25db0aec0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt @@ -32,13 +32,11 @@ import coil3.request.placeholder import com.google.android.material.button.MaterialButton import com.google.android.material.chip.Chip import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.coil.loadManga -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.seriesType import eu.kanade.tachiyomi.databinding.ChapterHeaderItemBinding import eu.kanade.tachiyomi.databinding.MangaHeaderItemBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.nameBasedOnEnabledLanguages @@ -49,6 +47,8 @@ import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.util.system.isInNightMode import eu.kanade.tachiyomi.util.system.isLTR import eu.kanade.tachiyomi.util.view.resetStrokeColor +import yokai.i18n.MR +import yokai.util.lang.getString import android.R as AR @SuppressLint("ClickableViewAccessibility") diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderItem.kt index 349e8ebf7f..f042dc91f9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderItem.kt @@ -6,10 +6,7 @@ import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.IFlexible import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga class MangaHeaderItem(val manga: Manga, var startExpanded: Boolean) : AbstractFlexibleItem() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterFilterLayout.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterFilterLayout.kt index 403c6f9bd2..937ae68269 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterFilterLayout.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterFilterLayout.kt @@ -3,9 +3,12 @@ package eu.kanade.tachiyomi.ui.manga.chapter import android.content.Context import android.util.AttributeSet import android.widget.LinearLayout -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.bookmarkedFilter +import eu.kanade.tachiyomi.data.database.models.downloadedFilter +import eu.kanade.tachiyomi.data.database.models.readFilter import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.databinding.ChapterFilterLayoutBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.widget.TriStateCheckBox class ChapterFilterLayout @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterHolder.kt index 144710e688..3c30cc505c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterHolder.kt @@ -9,9 +9,9 @@ import androidx.core.animation.doOnStart import androidx.core.view.isVisible import androidx.core.widget.TextViewCompat import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.databinding.ChaptersItemBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.manga.MangaDetailsAdapter import eu.kanade.tachiyomi.util.chapter.ChapterUtil import eu.kanade.tachiyomi.util.chapter.ChapterUtil.Companion.preferredChapterName diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterItem.kt index 6404f2cb87..71e9a310c3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterItem.kt @@ -8,7 +8,7 @@ import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.viewholders.FlexibleViewHolder 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.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.manga.MangaDetailsAdapter class ChapterItem(chapter: Chapter, val manga: Manga) : diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersSortBottomSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersSortBottomSheet.kt index 7e68acb265..4a5c24451e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersSortBottomSheet.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersSortBottomSheet.kt @@ -8,8 +8,9 @@ import androidx.core.view.WindowInsetsCompat.Type.systemBars import androidx.core.view.isInvisible import androidx.core.view.isVisible import com.google.android.material.bottomsheet.BottomSheetBehavior -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.hideChapterTitle import eu.kanade.tachiyomi.databinding.ChapterSortBottomSheetBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.manga.MangaDetailsController import eu.kanade.tachiyomi.util.chapter.ChapterUtil import eu.kanade.tachiyomi.util.system.dpToPx diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/BaseMigrationPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/BaseMigrationPresenter.kt index adefca875a..fea0bdf570 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/BaseMigrationPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/BaseMigrationPresenter.kt @@ -1,9 +1,9 @@ package eu.kanade.tachiyomi.ui.migration import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.preference.PreferenceValues import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.extension.ExtensionManager import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.source.Source diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MangaItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MangaItem.kt index c01553ebe4..4e4328293e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MangaItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MangaItem.kt @@ -6,10 +6,7 @@ import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.IFlexible import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga class MangaItem(val manga: Manga) : AbstractFlexibleItem() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MigrationFlags.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MigrationFlags.kt index dba071ae05..e860955b87 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MigrationFlags.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MigrationFlags.kt @@ -2,17 +2,14 @@ package eu.kanade.tachiyomi.ui.migration import android.content.Context import dev.icerock.moko.resources.StringResource -import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.cache.CoverCache import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.library.CustomMangaManager +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.util.system.toInt -import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy +import yokai.i18n.MR +import yokai.util.lang.getString object MigrationFlags { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/SearchController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/SearchController.kt index e648050363..3a11a9507a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/SearchController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/SearchController.kt @@ -5,11 +5,8 @@ import android.view.Menu import android.view.MenuInflater import androidx.core.os.bundleOf import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.ui.main.BottomNavBarInterface diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/SearchPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/SearchPresenter.kt index 5f9a3bdd86..4bc129f2a3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/SearchPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/SearchPresenter.kt @@ -1,6 +1,6 @@ package eu.kanade.tachiyomi.ui.migration -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.ui.source.globalsearch.GlobalSearchItem import eu.kanade.tachiyomi.ui.source.globalsearch.GlobalSearchMangaItem diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigratingManga.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigratingManga.kt index 532dc55891..f6f16139fc 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigratingManga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigratingManga.kt @@ -1,7 +1,7 @@ package eu.kanade.tachiyomi.ui.migration.manga.process import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.util.view.DeferredField diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationListController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationListController.kt index fdd26005c2..3fe462cdca 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationListController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationListController.kt @@ -19,13 +19,10 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat import co.touchlab.kermit.Logger import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.databinding.MigrationListControllerBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.smartsearch.SmartSearchEngine import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.Source @@ -67,6 +64,8 @@ import kotlinx.coroutines.sync.Semaphore import kotlinx.coroutines.sync.withPermit import kotlinx.coroutines.withContext import uy.kohesive.injekt.injectLazy +import yokai.i18n.MR +import yokai.util.lang.getString import java.util.concurrent.atomic.* import kotlin.coroutines.CoroutineContext import android.R as AR diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessAdapter.kt index 28296d92be..1889627590 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessAdapter.kt @@ -5,12 +5,12 @@ import eu.davidea.flexibleadapter.FlexibleAdapter import eu.kanade.tachiyomi.data.cache.CoverCache import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.History -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaCategory import eu.kanade.tachiyomi.data.library.CustomMangaManager import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.track.EnhancedTrackService import eu.kanade.tachiyomi.data.track.TrackManager +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.ui.migration.MigrationFlags diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt index 450c11f23c..4860d0a176 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt @@ -8,15 +8,12 @@ import androidx.core.view.isVisible import coil3.imageLoader import coil3.request.ImageRequest import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource -import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.coil.CoverViewTarget import eu.kanade.tachiyomi.data.coil.MangaCoverFetcher +import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.databinding.MangaGridItemBinding import eu.kanade.tachiyomi.databinding.MigrationProcessItemBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder @@ -30,6 +27,8 @@ import eu.kanade.tachiyomi.util.view.withFadeTransaction import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import uy.kohesive.injekt.injectLazy +import yokai.i18n.MR +import yokai.util.lang.getString import java.text.DecimalFormat class MigrationProcessHolder( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/StatsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/StatsController.kt index c001a32a2d..054669930b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/StatsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/StatsController.kt @@ -14,13 +14,10 @@ import com.github.mikephil.charting.data.PieDataSet import com.github.mikephil.charting.data.PieEntry import com.github.mikephil.charting.formatter.ValueFormatter import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.models.LibraryManga -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.databinding.StatsControllerBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.ui.base.controller.BaseLegacyController import eu.kanade.tachiyomi.ui.more.stats.details.StatsDetailsController @@ -31,6 +28,8 @@ import eu.kanade.tachiyomi.util.system.roundToTwoDecimal import eu.kanade.tachiyomi.util.view.compatToolTipText import eu.kanade.tachiyomi.util.view.scrollViewWith import eu.kanade.tachiyomi.util.view.withFadeTransaction +import yokai.i18n.MR +import yokai.util.lang.getString import kotlin.math.roundToInt import android.R as AR diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/StatsPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/StatsPresenter.kt index 0fc5156415..50b1bae8f1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/StatsPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/StatsPresenter.kt @@ -1,12 +1,7 @@ package eu.kanade.tachiyomi.ui.more.stats -import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.LibraryManga -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.preference.MANGA_HAS_UNREAD @@ -15,6 +10,7 @@ import eu.kanade.tachiyomi.data.preference.MANGA_NON_READ import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.track.TrackManager import eu.kanade.tachiyomi.data.track.TrackService +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.model.SManga @@ -24,6 +20,8 @@ import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy import yokai.domain.manga.interactor.GetLibraryManga +import yokai.i18n.MR +import yokai.util.lang.getString /** * Presenter of [StatsController]. diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/details/StatsDetailsPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/details/StatsDetailsPresenter.kt index c34df10f83..d515acfec4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/details/StatsDetailsPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/details/StatsDetailsPresenter.kt @@ -4,19 +4,16 @@ import android.graphics.drawable.Drawable import android.text.format.DateUtils import androidx.annotation.DrawableRes import dev.icerock.moko.resources.StringResource -import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Category import eu.kanade.tachiyomi.data.database.models.History import eu.kanade.tachiyomi.data.database.models.LibraryManga -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaChapterHistory import eu.kanade.tachiyomi.data.database.models.Track +import eu.kanade.tachiyomi.data.database.models.seriesType import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.track.TrackManager +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.extension.ExtensionManager import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.source.Source @@ -37,6 +34,8 @@ import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy import yokai.domain.manga.interactor.GetLibraryManga +import yokai.i18n.MR +import yokai.util.lang.getString import java.util.* import java.util.concurrent.* import kotlin.math.roundToInt diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index 83e5e30aee..1bb945f004 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -77,16 +77,15 @@ import com.google.android.material.transition.platform.MaterialContainerTransfor import com.hippo.unifile.UniFile import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.core.preference.toggle import eu.kanade.tachiyomi.data.coil.TachiyomiImageDecoder import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.orientationType +import eu.kanade.tachiyomi.data.database.models.readingModeType import eu.kanade.tachiyomi.data.preference.changesIn import eu.kanade.tachiyomi.data.track.TrackService import eu.kanade.tachiyomi.databinding.ReaderActivityBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.ui.base.MaterialMenuSheet import eu.kanade.tachiyomi.ui.base.activity.BaseActivity @@ -166,6 +165,8 @@ import uy.kohesive.injekt.injectLazy import yokai.domain.base.BasePreferences import yokai.domain.ui.settings.ReaderPreferences import yokai.domain.ui.settings.ReaderPreferences.LandscapeCutoutBehaviour +import yokai.i18n.MR +import yokai.util.lang.getString import java.io.ByteArrayOutputStream import java.text.DecimalFormat import java.text.DecimalFormatSymbols diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt index 6b4153576a..3a8566ea2e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt @@ -13,7 +13,9 @@ import eu.kanade.tachiyomi.data.cache.CoverCache import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.History -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.defaultReaderType +import eu.kanade.tachiyomi.data.database.models.orientationType +import eu.kanade.tachiyomi.data.database.models.readingModeType import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.download.DownloadProvider import eu.kanade.tachiyomi.data.download.model.Download @@ -21,6 +23,7 @@ import eu.kanade.tachiyomi.data.notification.NotificationReceiver import eu.kanade.tachiyomi.data.notification.Notifications import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.track.TrackService +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/chapter/ReaderChapterItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/chapter/ReaderChapterItem.kt index aa36934038..d1b778a28f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/chapter/ReaderChapterItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/chapter/ReaderChapterItem.kt @@ -6,13 +6,10 @@ import androidx.core.graphics.drawable.DrawableCompat import com.mikepenz.fastadapter.FastAdapter import com.mikepenz.fastadapter.items.AbstractItem import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource 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.databinding.ReaderChapterItemBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.util.chapter.ChapterUtil import eu.kanade.tachiyomi.util.chapter.ChapterUtil.Companion.preferredChapterName import uy.kohesive.injekt.injectLazy diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt index 009bb5ce1c..7756cdd585 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt @@ -2,9 +2,9 @@ package eu.kanade.tachiyomi.ui.reader.loader import android.content.Context import co.touchlab.kermit.Logger -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.download.DownloadProvider +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.online.HttpSource 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 418cba9e4b..f2c2ea8a46 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 @@ -3,9 +3,9 @@ package eu.kanade.tachiyomi.ui.reader.loader import android.app.Application import android.net.Uri import com.hippo.unifile.UniFile -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.download.DownloadProvider +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/settings/ReaderGeneralView.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/settings/ReaderGeneralView.kt index add6f8c5d0..5519bcd9d1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/settings/ReaderGeneralView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/settings/ReaderGeneralView.kt @@ -3,6 +3,8 @@ package eu.kanade.tachiyomi.ui.reader.settings import android.content.Context import android.util.AttributeSet import androidx.core.view.isVisible +import eu.kanade.tachiyomi.data.database.models.orientationType +import eu.kanade.tachiyomi.data.database.models.readingModeType import eu.kanade.tachiyomi.databinding.ReaderGeneralLayoutBinding import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.util.bindToPreference diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderTransitionView.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderTransitionView.kt index 232591e828..3693274498 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderTransitionView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderTransitionView.kt @@ -12,19 +12,17 @@ import androidx.core.text.buildSpannedString import androidx.core.text.inSpans import androidx.core.view.isVisible import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.databinding.ReaderTransitionViewBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition import eu.kanade.tachiyomi.util.chapter.ChapterUtil.Companion.preferredChapterName import eu.kanade.tachiyomi.util.system.contextCompatDrawable import eu.kanade.tachiyomi.util.system.dpToPx -import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy +import yokai.i18n.MR +import yokai.util.lang.getString import kotlin.math.roundToInt class ReaderTransitionView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt index 2be46cfcf3..17deb53ab2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt @@ -34,13 +34,14 @@ import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.ChapterHistory import eu.kanade.tachiyomi.data.database.models.History -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.seriesType import eu.kanade.tachiyomi.data.download.DownloadJob import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.notification.NotificationReceiver import eu.kanade.tachiyomi.data.notification.Notifications import eu.kanade.tachiyomi.databinding.RecentsControllerBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.base.SmallToolbarInterface import eu.kanade.tachiyomi.ui.base.controller.BaseCoroutineController import eu.kanade.tachiyomi.ui.base.controller.DialogController diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsPresenter.kt index 3951402a85..f860152829 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsPresenter.kt @@ -1,15 +1,10 @@ package eu.kanade.tachiyomi.ui.recents -import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.ChapterHistory import eu.kanade.tachiyomi.data.database.models.History import eu.kanade.tachiyomi.data.database.models.HistoryImpl -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaChapterHistory import eu.kanade.tachiyomi.data.download.DownloadJob import eu.kanade.tachiyomi.data.download.DownloadManager @@ -17,6 +12,7 @@ import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.data.download.model.DownloadQueue import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.ui.base.presenter.BaseCoroutinePresenter import eu.kanade.tachiyomi.util.chapter.ChapterFilter @@ -39,6 +35,7 @@ import uy.kohesive.injekt.injectLazy import yokai.domain.chapter.interactor.GetChapter import yokai.domain.recents.RecentsPreferences import yokai.domain.ui.UiPreferences +import yokai.i18n.MR import java.text.SimpleDateFormat import java.util.* import java.util.concurrent.* diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceController.kt index 6f235102a6..3615200bba 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceController.kt @@ -23,9 +23,9 @@ import com.google.android.material.snackbar.Snackbar import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.items.IFlexible import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.databinding.BrowseSourceControllerBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.source.model.Filter diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceGridHolder.kt index 15c9eab1ff..a257c4eb79 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceGridHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceGridHolder.kt @@ -10,10 +10,10 @@ import coil3.imageLoader import coil3.request.ImageRequest import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.items.IFlexible -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.coil.CoverViewTarget import eu.kanade.tachiyomi.data.coil.MangaCoverFetcher import eu.kanade.tachiyomi.databinding.MangaGridItemBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.library.LibraryCategoryAdapter import eu.kanade.tachiyomi.util.system.setExtras import eu.kanade.tachiyomi.util.view.setCards diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceHolder.kt index 3278ed2cca..0b1e6d633e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceHolder.kt @@ -4,7 +4,7 @@ import android.view.View import androidx.recyclerview.widget.RecyclerView import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.items.IFlexible -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceItem.kt index 3225cbe79c..8e51800910 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceItem.kt @@ -13,8 +13,8 @@ import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.IFlexible import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.core.preference.Preference -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.databinding.MangaGridItemBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.library.LibraryItem import eu.kanade.tachiyomi.ui.library.setBGAndFG import eu.kanade.tachiyomi.widget.AutofitRecyclerView diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceListHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceListHolder.kt index 704b751b16..e83b491832 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceListHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceListHolder.kt @@ -8,10 +8,10 @@ import coil3.imageLoader import coil3.request.ImageRequest import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.items.IFlexible -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.coil.CoverViewTarget import eu.kanade.tachiyomi.data.coil.MangaCoverFetcher import eu.kanade.tachiyomi.databinding.MangaListItemBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.util.system.setExtras import eu.kanade.tachiyomi.util.view.setCards diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourcePresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourcePresenter.kt index b11d1fe133..d666fad8f7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourcePresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourcePresenter.kt @@ -5,9 +5,10 @@ import eu.davidea.flexibleadapter.items.IFlexible import eu.kanade.tachiyomi.data.cache.CoverCache import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Category -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.create import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.model.Filter diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchCardAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchCardAdapter.kt index fe7a50c216..5c6e386f74 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchCardAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchCardAdapter.kt @@ -1,8 +1,8 @@ package eu.kanade.tachiyomi.ui.source.globalsearch import eu.davidea.flexibleadapter.FlexibleAdapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import uy.kohesive.injekt.injectLazy import yokai.domain.ui.UiPreferences diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchController.kt index 348db8a735..2144d7a657 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchController.kt @@ -12,12 +12,9 @@ import com.bluelinelabs.conductor.ControllerChangeHandler import com.bluelinelabs.conductor.ControllerChangeType import com.google.android.material.snackbar.Snackbar import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.databinding.SourceGlobalSearchControllerBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.ui.base.controller.BaseCoroutineController import eu.kanade.tachiyomi.ui.main.MainActivity @@ -36,6 +33,8 @@ import eu.kanade.tachiyomi.util.view.snack import eu.kanade.tachiyomi.util.view.toolbarHeight import eu.kanade.tachiyomi.util.view.withFadeTransaction import uy.kohesive.injekt.injectLazy +import yokai.i18n.MR +import yokai.util.lang.getString /** * This controller shows and manages the different search result in global search. diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchHolder.kt index 6c55101d3c..eb223aca9d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchHolder.kt @@ -3,8 +3,8 @@ package eu.kanade.tachiyomi.ui.source.globalsearch import android.annotation.SuppressLint import android.view.View import androidx.core.view.isVisible -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.databinding.SourceGlobalSearchControllerCardBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder import eu.kanade.tachiyomi.ui.migration.SearchController diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaHolder.kt index 0fa5b023a9..49c7c1f072 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaHolder.kt @@ -10,8 +10,8 @@ import coil3.request.ImageRequest import coil3.request.placeholder import eu.kanade.tachiyomi.data.coil.CoverViewTarget import eu.kanade.tachiyomi.data.coil.MangaCoverFetcher -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.databinding.SourceGlobalSearchControllerCardItemBinding +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.setExtras diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaItem.kt index a02fd571e8..387bc3d96a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaItem.kt @@ -6,10 +6,7 @@ import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.IFlexible import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga class GlobalSearchMangaItem(val manga: Manga) : AbstractFlexibleItem() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchPresenter.kt index 7671ac0095..115e42699c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchPresenter.kt @@ -2,9 +2,10 @@ package eu.kanade.tachiyomi.ui.source.globalsearch import eu.kanade.tachiyomi.data.cache.CoverCache import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.create import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.extension.ExtensionManager import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.Source @@ -25,8 +26,7 @@ import kotlinx.coroutines.sync.withPermit import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy -import java.util.Date -import java.util.Locale +import java.util.* /** * Presenter of [GlobalSearchController] diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/MangaExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/MangaExtensions.kt index 35fedc7440..39f59f5e0c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/MangaExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/MangaExtensions.kt @@ -10,18 +10,15 @@ import co.touchlab.kermit.Logger import com.bluelinelabs.conductor.Controller import com.google.android.material.snackbar.BaseTransientBottomBar import com.google.android.material.snackbar.Snackbar -import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Category -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaCategory +import eu.kanade.tachiyomi.data.database.models.seriesType import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.track.EnhancedTrackService import eu.kanade.tachiyomi.data.track.TrackManager import eu.kanade.tachiyomi.data.track.TrackService +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.model.SManga @@ -38,7 +35,6 @@ import eu.kanade.tachiyomi.util.system.setCustomTitleAndMessage import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.util.system.withUIContext import eu.kanade.tachiyomi.util.view.setAction -import eu.kanade.tachiyomi.util.view.setNegativeButton import eu.kanade.tachiyomi.util.view.setPositiveButton import eu.kanade.tachiyomi.util.view.setTitle import eu.kanade.tachiyomi.util.view.snack @@ -46,6 +42,8 @@ import eu.kanade.tachiyomi.util.view.withFadeTransaction import eu.kanade.tachiyomi.widget.TriStateCheckBox import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get +import yokai.i18n.MR +import yokai.util.lang.getString import java.util.* import android.R as AR diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterFilter.kt b/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterFilter.kt index cda26c078f..ea52a9b93d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterFilter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterFilter.kt @@ -1,9 +1,12 @@ package eu.kanade.tachiyomi.util.chapter import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.bookmarkedFilter +import eu.kanade.tachiyomi.data.database.models.downloadedFilter +import eu.kanade.tachiyomi.data.database.models.readFilter import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSort.kt b/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSort.kt index de7c3c84f9..dd118ac77c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSort.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSort.kt @@ -1,8 +1,10 @@ package eu.kanade.tachiyomi.util.chapter import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.chapterOrder +import eu.kanade.tachiyomi.data.database.models.sortDescending import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.util.lang.compareToCaseInsensitiveNaturalOrder import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSourceSync.kt b/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSourceSync.kt index 7b5a72dfe2..ba00b1a3d8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSourceSync.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSourceSync.kt @@ -1,8 +1,8 @@ package eu.kanade.tachiyomi.util.chapter import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.DownloadManager +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.online.HttpSource diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterUtil.kt b/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterUtil.kt index ee32a6a9f1..0324a08fef 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterUtil.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterUtil.kt @@ -7,8 +7,9 @@ import androidx.core.widget.TextViewCompat import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat 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.database.models.hideChapterTitle import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.manga.chapter.ChapterItem import eu.kanade.tachiyomi.util.system.contextCompatColor import eu.kanade.tachiyomi.util.system.dpToPx diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaCoverMetadata.kt b/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaCoverMetadata.kt index 8780e73cea..25f7416d6c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaCoverMetadata.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaCoverMetadata.kt @@ -4,12 +4,13 @@ import android.graphics.BitmapFactory import androidx.annotation.ColorInt import androidx.palette.graphics.Palette import eu.kanade.tachiyomi.data.cache.CoverCache -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.coil.getBestColor +import eu.kanade.tachiyomi.data.database.models.dominantCoverColors import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import uy.kohesive.injekt.injectLazy import java.io.File -import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.* /** Object that holds info about a covers size ratio + dominant colors */ object MangaCoverMetadata { diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaShortcutManager.kt b/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaShortcutManager.kt index 837f1e0b49..488f14aca6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaShortcutManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaShortcutManager.kt @@ -12,14 +12,11 @@ import coil3.asDrawable import coil3.imageLoader import coil3.request.ImageRequest import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.appwidget.TachiyomiWidgetManager import eu.kanade.tachiyomi.data.cache.CoverCache import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.icon @@ -30,6 +27,8 @@ import eu.kanade.tachiyomi.ui.source.browse.BrowseSourceController import eu.kanade.tachiyomi.util.system.launchIO import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get +import yokai.i18n.MR +import yokai.util.lang.getString import kotlin.math.min class MangaShortcutManager( diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaUtil.kt b/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaUtil.kt index 7235b9fc56..2c76f65819 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaUtil.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaUtil.kt @@ -1,6 +1,6 @@ package eu.kanade.tachiyomi.util.manga -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.util.chapter.ChapterUtil import yokai.domain.manga.interactor.UpdateManga import yokai.domain.manga.models.MangaUpdate diff --git a/app/src/main/java/yokai/core/metadata/ComicInfo.kt b/app/src/main/java/yokai/core/metadata/ComicInfo.kt index 268888b756..0defb37897 100644 --- a/app/src/main/java/yokai/core/metadata/ComicInfo.kt +++ b/app/src/main/java/yokai/core/metadata/ComicInfo.kt @@ -1,7 +1,7 @@ package yokai.core.metadata import eu.kanade.tachiyomi.data.database.models.Chapter -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.model.SManga import kotlinx.serialization.Serializable import nl.adaptivity.xmlutil.serialization.XmlElement diff --git a/app/src/main/java/yokai/data/manga/MangaRepositoryImpl.kt b/app/src/main/java/yokai/data/manga/MangaRepositoryImpl.kt index 127a72e8b9..acaed478ff 100644 --- a/app/src/main/java/yokai/data/manga/MangaRepositoryImpl.kt +++ b/app/src/main/java/yokai/data/manga/MangaRepositoryImpl.kt @@ -2,7 +2,8 @@ package yokai.data.manga import co.touchlab.kermit.Logger import eu.kanade.tachiyomi.data.database.models.LibraryManga -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.data.database.models.mapper +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.util.system.toInt import kotlinx.coroutines.flow.Flow import yokai.data.DatabaseHandler diff --git a/app/src/main/java/yokai/domain/chapter/interactor/GetChapter.kt b/app/src/main/java/yokai/domain/chapter/interactor/GetChapter.kt index 71985aa7b9..51264f800d 100644 --- a/app/src/main/java/yokai/domain/chapter/interactor/GetChapter.kt +++ b/app/src/main/java/yokai/domain/chapter/interactor/GetChapter.kt @@ -1,6 +1,6 @@ package yokai.domain.chapter.interactor -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import yokai.domain.chapter.ChapterRepository class GetChapter( diff --git a/app/src/main/java/yokai/domain/library/custom/model/CustomMangaInfo.kt b/app/src/main/java/yokai/domain/library/custom/model/CustomMangaInfo.kt index ac658f6a6f..9076e6c3b8 100644 --- a/app/src/main/java/yokai/domain/library/custom/model/CustomMangaInfo.kt +++ b/app/src/main/java/yokai/domain/library/custom/model/CustomMangaInfo.kt @@ -1,7 +1,7 @@ package yokai.domain.library.custom.model -import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaImpl +import eu.kanade.tachiyomi.domain.manga.models.Manga data class CustomMangaInfo( var mangaId: Long, diff --git a/app/src/main/java/yokai/domain/manga/MangaRepository.kt b/app/src/main/java/yokai/domain/manga/MangaRepository.kt index 4efadc8e33..903c47dda1 100644 --- a/app/src/main/java/yokai/domain/manga/MangaRepository.kt +++ b/app/src/main/java/yokai/domain/manga/MangaRepository.kt @@ -1,7 +1,7 @@ package yokai.domain.manga import eu.kanade.tachiyomi.data.database.models.LibraryManga -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import kotlinx.coroutines.flow.Flow import yokai.domain.manga.models.MangaUpdate diff --git a/app/src/main/java/yokai/domain/manga/interactor/InsertManga.kt b/app/src/main/java/yokai/domain/manga/interactor/InsertManga.kt index 255771fdcd..b66b6332b2 100644 --- a/app/src/main/java/yokai/domain/manga/interactor/InsertManga.kt +++ b/app/src/main/java/yokai/domain/manga/interactor/InsertManga.kt @@ -1,6 +1,6 @@ package yokai.domain.manga.interactor -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import yokai.domain.manga.MangaRepository class InsertManga ( diff --git a/app/src/main/java/yokai/util/LewdMangaChecker.kt b/app/src/main/java/yokai/util/LewdMangaChecker.kt index 823c174316..62d19f4a18 100644 --- a/app/src/main/java/yokai/util/LewdMangaChecker.kt +++ b/app/src/main/java/yokai/util/LewdMangaChecker.kt @@ -1,6 +1,6 @@ package yokai.util -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.source.SourceManager import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt b/domain/src/commonMain/kotlin/eu/kanade/tachiyomi/domain/manga/models/Manga.kt similarity index 51% rename from app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt rename to domain/src/commonMain/kotlin/eu/kanade/tachiyomi/domain/manga/models/Manga.kt index 39d5efd79a..78ce08b469 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt +++ b/domain/src/commonMain/kotlin/eu/kanade/tachiyomi/domain/manga/models/Manga.kt @@ -1,22 +1,9 @@ -package eu.kanade.tachiyomi.data.database.models +package eu.kanade.tachiyomi.domain.manga.models -import android.content.Context -import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource -import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.preference.PreferencesHelper -import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.model.SManga -import eu.kanade.tachiyomi.ui.reader.settings.OrientationType -import eu.kanade.tachiyomi.ui.reader.settings.ReadingModeType -import eu.kanade.tachiyomi.util.manga.MangaCoverMetadata -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get -import yokai.data.updateStrategyAdapter import yokai.domain.manga.models.MangaUpdate import java.util.* +import kotlin.collections.set // TODO: Transform into data class interface Manga : SManga { @@ -39,18 +26,27 @@ interface Manga : SManga { var filtered_scanlators: String? + var ogTitle: String + var ogAuthor: String? + var ogArtist: String? + var ogDesc: String? + var ogGenre: String? + var ogStatus: Int + + @Deprecated("Use ogTitle directly instead", ReplaceWith("ogTitle")) val originalTitle: String - get() = (this as? MangaImpl)?.ogTitle ?: title + get() = ogTitle val originalAuthor: String? - get() = (this as? MangaImpl)?.ogAuthor ?: author + get() = ogAuthor ?: author val originalArtist: String? - get() = (this as? MangaImpl)?.ogArtist ?: artist + get() = ogArtist ?: artist val originalDescription: String? - get() = (this as? MangaImpl)?.ogDesc ?: description + get() = ogDesc ?: description val originalGenre: String? - get() = (this as? MangaImpl)?.ogGenre ?: genre + get() = ogGenre ?: genre + @Deprecated("Use ogStatus directly instead", ReplaceWith("ogStatus")) val originalStatus: Int - get() = (this as? MangaImpl)?.ogStatus ?: status + get() = ogStatus val hasSameAuthorAndArtist: Boolean get() = author == artist || artist.isNullOrBlank() || @@ -102,7 +98,7 @@ interface Manga : SManga { chapter_flags = chapter_flags and mask.inv() or (flag and mask) } - private fun setViewerFlags(flag: Int, mask: Int) { + fun setViewerFlags(flag: Int, mask: Int) { viewer_flags = viewer_flags and mask.inv() or (flag and mask) } @@ -118,109 +114,13 @@ interface Manga : SManga { val usesLocalFilter: Boolean get() = chapter_flags and CHAPTER_FILTER_LOCAL_MASK == CHAPTER_FILTER_LOCAL - fun sortDescending(preferences: PreferencesHelper): Boolean = - if (usesLocalSort) sortDescending else preferences.chaptersDescAsDefault().get() - - fun chapterOrder(preferences: PreferencesHelper): Int = - if (usesLocalSort) sorting else preferences.sortChapterOrder().get() - - fun readFilter(preferences: PreferencesHelper): Int = - if (usesLocalFilter) readFilter else preferences.filterChapterByRead().get() - - fun downloadedFilter(preferences: PreferencesHelper): Int = - if (usesLocalFilter) downloadedFilter else preferences.filterChapterByDownloaded().get() - - fun bookmarkedFilter(preferences: PreferencesHelper): Int = - if (usesLocalFilter) bookmarkedFilter else preferences.filterChapterByBookmarked().get() - - fun hideChapterTitle(preferences: PreferencesHelper): Boolean = - if (usesLocalFilter) hideChapterTitles else preferences.hideChapterTitlesByDefault().get() - fun showChapterTitle(defaultShow: Boolean): Boolean = chapter_flags and CHAPTER_DISPLAY_MASK == CHAPTER_DISPLAY_NUMBER - fun seriesType(context: Context, sourceManager: SourceManager? = null): String { - return context.getString( - when (seriesType(sourceManager = sourceManager)) { - TYPE_WEBTOON -> MR.strings.webtoon - TYPE_MANHWA -> MR.strings.manhwa - TYPE_MANHUA -> MR.strings.manhua - TYPE_COMIC -> MR.strings.comic - else -> MR.strings.manga - }, - ).lowercase(Locale.getDefault()) - } - fun getOriginalGenres(): List? { return (originalGenre ?: genre)?.split(",") ?.mapNotNull { tag -> tag.trim().takeUnless { it.isBlank() } } } - /** - * The type of comic the manga is (ie. manga, manhwa, manhua) - */ - fun seriesType(useOriginalTags: Boolean = false, customTags: String? = null, sourceManager: SourceManager? = null): Int { - val sourceName by lazy { (sourceManager ?: Injekt.get()).getOrStub(source).name } - val tags = customTags ?: if (useOriginalTags) originalGenre else genre - val currentTags = tags?.split(",")?.map { it.trim().lowercase(Locale.US) } ?: emptyList() - return if (currentTags.any { tag -> isMangaTag(tag) }) { - TYPE_MANGA - } else if (currentTags.any { tag -> isComicTag(tag) } || - isComicSource(sourceName) - ) { - TYPE_COMIC - } else if (currentTags.any { tag -> isWebtoonTag(tag) } || - ( - sourceName.contains("webtoon", true) && - currentTags.none { tag -> isManhuaTag(tag) } && - currentTags.none { tag -> isManhwaTag(tag) } - ) - ) { - TYPE_WEBTOON - } else if (currentTags.any { tag -> isManhuaTag(tag) } || sourceName.contains( - "manhua", - true, - ) - ) { - TYPE_MANHUA - } else if (currentTags.any { tag -> isManhwaTag(tag) } || isWebtoonSource(sourceName)) { - TYPE_MANHWA - } else { - TYPE_MANGA - } - } - - /** - * The type the reader should use. Different from manga type as certain manga has different - * read types - */ - fun defaultReaderType(): Int { - val sourceName = Injekt.get().getOrStub(source).name - val currentTags = genre?.split(",")?.map { it.trim().lowercase(Locale.US) } ?: emptyList() - return if (currentTags.any { - tag -> isManhwaTag(tag) || tag.contains("webtoon") - } || ( - isWebtoonSource(sourceName) && - currentTags.none { tag -> isManhuaTag(tag) } && - currentTags.none { tag -> isComicTag(tag) } - ) - ) { - ReadingModeType.LONG_STRIP.flagValue - } else if (currentTags.any { - tag -> tag == "chinese" || tag == "manhua" || tag == "comic" - } || ( - isComicSource(sourceName) && - !sourceName.contains("tapas", true) && - currentTags.none { tag -> isMangaTag(tag) } - ) || ( - sourceName.contains("manhua", true) && currentTags.none { tag -> isMangaTag(tag) } - ) - ) { - ReadingModeType.LEFT_TO_RIGHT.flagValue - } else { - 0 - } - } - fun isSeriesTag(tag: String): Boolean { val tagLower = tag.lowercase(Locale.ROOT) return isMangaTag(tagLower) || isManhuaTag(tagLower) || @@ -270,20 +170,6 @@ interface Manga : SManga { sourceName.contains("ReadComicOnline", true) } - fun isOneShotOrCompleted(db: DatabaseHelper): Boolean { - val tags by lazy { genre?.split(",")?.map { it.trim().lowercase(Locale.US) } } - val chapters by lazy { db.getChapters(this).executeAsBlocking() } - val firstChapterName by lazy { chapters.firstOrNull()?.name?.lowercase() ?: "" } - return status == SManga.COMPLETED || tags?.contains("oneshot") == true || - ( - chapters.size == 1 && - ( - Regex("one.?shot").containsMatchIn(firstChapterName) || - firstChapterName.contains("oneshot") - ) - ) - } - fun key(): String { return "manga-id-$id" } @@ -309,27 +195,12 @@ interface Manga : SManga { get() = chapter_flags and CHAPTER_SORTING_MASK set(sort) = setChapterFlags(sort, CHAPTER_SORTING_MASK) - var readingModeType: Int - get() = viewer_flags and ReadingModeType.MASK - set(readingMode) = setViewerFlags(readingMode, ReadingModeType.MASK) - - var orientationType: Int - get() = viewer_flags and OrientationType.MASK - set(rotationType) = setViewerFlags(rotationType, OrientationType.MASK) - var vibrantCoverColor: Int? get() = vibrantCoverColorMap[id] set(value) { id?.let { vibrantCoverColorMap[it] = value } } - var dominantCoverColors: Pair? - get() = MangaCoverMetadata.getColors(this) - set(value) { - value ?: return - MangaCoverMetadata.addCoverColor(this, value.first, value.second) - } - fun toMangaUpdate(): MangaUpdate { return MangaUpdate( id = id!!, @@ -397,56 +268,5 @@ interface Manga : SManga { const val TYPE_WEBTOON = 5 private val vibrantCoverColorMap: HashMap = hashMapOf() - - fun create(source: Long): Manga = MangaImpl().apply { - this.source = source - } - - fun create(pathUrl: String, title: String, source: Long = 0): Manga = MangaImpl().apply { - url = pathUrl - this.title = title - this.source = source - } - - fun mapper( - id: Long, - source: Long, - url: String, - artist: String?, - author: String?, - description: String?, - genre: String?, - title: String, - status: Long, - thumbnailUrl: String?, - favorite: Long, - lastUpdate: Long?, - initialized: Boolean, - viewerFlags: Long, - hideTitle: Long, - chapterFlags: Long, - dateAdded: Long?, - filteredScanlators: String?, - updateStrategy: Long - ): Manga = create(source).apply { - this.id = id - this.url = url - this.artist = artist - this.author = author - this.description = description - this.genre = genre - this.title = title - this.status = status.toInt() - this.thumbnail_url = thumbnailUrl - this.favorite = favorite > 0 - this.last_update = lastUpdate ?: 0L - this.initialized = initialized - this.viewer_flags = viewerFlags.toInt() - this.chapter_flags = chapterFlags.toInt() - this.hide_title = hideTitle > 0 - this.date_added = dateAdded ?: 0L - this.filtered_scanlators = filteredScanlators - this.update_strategy = updateStrategy.let(updateStrategyAdapter::decode) - } } } diff --git a/presentation/widget/build.gradle.kts b/presentation/widget/build.gradle.kts index 7caf72e91b..6c1df3cc37 100644 --- a/presentation/widget/build.gradle.kts +++ b/presentation/widget/build.gradle.kts @@ -1,3 +1,5 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + plugins { alias(androidx.plugins.library) alias(kotlinx.plugins.android) @@ -23,8 +25,17 @@ dependencies { implementation(projects.domain) implementation(projects.i18n) implementation(projects.presentation.core) + implementation(projects.source.api) // Access to SManga implementation(androidx.glance.appwidget) implementation(libs.coil3) } + +tasks { + withType { + compilerOptions.freeCompilerArgs.addAll( + "-opt-in=coil3.annotation.ExperimentalCoilApi", + ) + } +} diff --git a/presentation/widget/src/main/java/yokai/presentation/widget/UpdatesGridGlanceWidget.kt b/presentation/widget/src/main/java/yokai/presentation/widget/UpdatesGridGlanceWidget.kt index fedd1272c5..ea9e5c3774 100644 --- a/presentation/widget/src/main/java/yokai/presentation/widget/UpdatesGridGlanceWidget.kt +++ b/presentation/widget/src/main/java/yokai/presentation/widget/UpdatesGridGlanceWidget.kt @@ -16,6 +16,7 @@ import androidx.glance.appwidget.provideContent import androidx.glance.appwidget.updateAll import androidx.glance.background import androidx.glance.layout.fillMaxSize +import coil3.asDrawable import coil3.executeBlocking import coil3.imageLoader import coil3.request.CachePolicy @@ -25,8 +26,7 @@ import coil3.size.Precision import coil3.size.Scale import coil3.transform.RoundedCornersTransformation import eu.kanade.tachiyomi.core.security.SecurityPreferences -import eu.kanade.tachiyomi.data.database.models.Manga -import eu.kanade.tachiyomi.ui.recents.RecentsPresenter +import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.launchIO import kotlinx.coroutines.MainScope @@ -41,7 +41,6 @@ import yokai.presentation.widget.util.calculateRowAndColumnCount import java.util.* import kotlin.math.min -// FIXME: Move Manga to 'data' module class UpdatesGridGlanceWidget( private val app: Application = Injekt.get(), private val preferences: SecurityPreferences = Injekt.get(), @@ -78,6 +77,7 @@ class UpdatesGridGlanceWidget( .flatMap { manager.getAppWidgetSizes(it) } .maxBy { it.height.value * it.width.value } .calculateRowAndColumnCount() + // FIXME: Extract getRecentManga logic out of RecentsPresenter val processList = list ?: RecentsPresenter.getRecentManga(customAmount = min(50, rowCount * columnCount)) data = prepareList(processList, rowCount * columnCount) @@ -110,6 +110,7 @@ class UpdatesGridGlanceWidget( } } .build() + // FIXME: Make Manga independent from SManga Pair(updatesView.id!!, app.imageLoader.executeBlocking(request).image?.asDrawable(app.resources)?.toBitmap()) } }