mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Move more models to domain module
This commit is contained in:
		@@ -1,8 +1,8 @@
 | 
			
		||||
package eu.kanade.domain.category.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.library.model.plus
 | 
			
		||||
import eu.kanade.domain.library.service.LibraryPreferences
 | 
			
		||||
import tachiyomi.domain.category.repository.CategoryRepository
 | 
			
		||||
import tachiyomi.domain.library.model.plus
 | 
			
		||||
 | 
			
		||||
class ResetCategoryFlags(
 | 
			
		||||
    private val preferences: LibraryPreferences,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
package eu.kanade.domain.category.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.library.model.LibraryDisplayMode
 | 
			
		||||
import eu.kanade.domain.library.model.plus
 | 
			
		||||
import eu.kanade.domain.library.service.LibraryPreferences
 | 
			
		||||
import tachiyomi.domain.category.model.Category
 | 
			
		||||
import tachiyomi.domain.category.model.CategoryUpdate
 | 
			
		||||
import tachiyomi.domain.category.repository.CategoryRepository
 | 
			
		||||
import tachiyomi.domain.library.model.LibraryDisplayMode
 | 
			
		||||
import tachiyomi.domain.library.model.plus
 | 
			
		||||
 | 
			
		||||
class SetDisplayModeForCategory(
 | 
			
		||||
    private val preferences: LibraryPreferences,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
package eu.kanade.domain.category.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.library.model.LibrarySort
 | 
			
		||||
import eu.kanade.domain.library.model.plus
 | 
			
		||||
import eu.kanade.domain.library.service.LibraryPreferences
 | 
			
		||||
import tachiyomi.domain.category.model.Category
 | 
			
		||||
import tachiyomi.domain.category.model.CategoryUpdate
 | 
			
		||||
import tachiyomi.domain.category.repository.CategoryRepository
 | 
			
		||||
import tachiyomi.domain.library.model.LibrarySort
 | 
			
		||||
import tachiyomi.domain.library.model.plus
 | 
			
		||||
 | 
			
		||||
class SetSortModeForCategory(
 | 
			
		||||
    private val preferences: LibraryPreferences,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package eu.kanade.domain.history.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.history.model.HistoryWithRelations
 | 
			
		||||
import eu.kanade.domain.history.repository.HistoryRepository
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
import tachiyomi.domain.history.model.HistoryWithRelations
 | 
			
		||||
 | 
			
		||||
class GetHistory(
 | 
			
		||||
    private val repository: HistoryRepository,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
package eu.kanade.domain.history.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.history.model.HistoryWithRelations
 | 
			
		||||
import eu.kanade.domain.history.repository.HistoryRepository
 | 
			
		||||
import tachiyomi.domain.history.model.HistoryWithRelations
 | 
			
		||||
 | 
			
		||||
class RemoveHistory(
 | 
			
		||||
    private val repository: HistoryRepository,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
package eu.kanade.domain.history.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.history.model.HistoryUpdate
 | 
			
		||||
import eu.kanade.domain.history.repository.HistoryRepository
 | 
			
		||||
import tachiyomi.domain.history.model.HistoryUpdate
 | 
			
		||||
 | 
			
		||||
class UpsertHistory(
 | 
			
		||||
    private val historyRepository: HistoryRepository,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +0,0 @@
 | 
			
		||||
package eu.kanade.domain.history.model
 | 
			
		||||
 | 
			
		||||
import java.util.Date
 | 
			
		||||
 | 
			
		||||
data class History(
 | 
			
		||||
    val id: Long,
 | 
			
		||||
    val chapterId: Long,
 | 
			
		||||
    val readAt: Date?,
 | 
			
		||||
    val readDuration: Long,
 | 
			
		||||
)
 | 
			
		||||
@@ -1,9 +0,0 @@
 | 
			
		||||
package eu.kanade.domain.history.model
 | 
			
		||||
 | 
			
		||||
import java.util.Date
 | 
			
		||||
 | 
			
		||||
data class HistoryUpdate(
 | 
			
		||||
    val chapterId: Long,
 | 
			
		||||
    val readAt: Date,
 | 
			
		||||
    val sessionReadDuration: Long,
 | 
			
		||||
)
 | 
			
		||||
@@ -1,15 +0,0 @@
 | 
			
		||||
package eu.kanade.domain.history.model
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.manga.model.MangaCover
 | 
			
		||||
import java.util.Date
 | 
			
		||||
 | 
			
		||||
data class HistoryWithRelations(
 | 
			
		||||
    val id: Long,
 | 
			
		||||
    val chapterId: Long,
 | 
			
		||||
    val mangaId: Long,
 | 
			
		||||
    val title: String,
 | 
			
		||||
    val chapterNumber: Float,
 | 
			
		||||
    val readAt: Date?,
 | 
			
		||||
    val readDuration: Long,
 | 
			
		||||
    val coverData: MangaCover,
 | 
			
		||||
)
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package eu.kanade.domain.history.repository
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.history.model.HistoryUpdate
 | 
			
		||||
import eu.kanade.domain.history.model.HistoryWithRelations
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
import tachiyomi.domain.history.model.HistoryUpdate
 | 
			
		||||
import tachiyomi.domain.history.model.HistoryWithRelations
 | 
			
		||||
 | 
			
		||||
interface HistoryRepository {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,35 +0,0 @@
 | 
			
		||||
package eu.kanade.domain.library.model
 | 
			
		||||
 | 
			
		||||
interface Flag {
 | 
			
		||||
    val flag: Long
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface Mask {
 | 
			
		||||
    val mask: Long
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface FlagWithMask : Flag, Mask
 | 
			
		||||
 | 
			
		||||
operator fun Long.contains(other: Flag): Boolean {
 | 
			
		||||
    return if (other is Mask) {
 | 
			
		||||
        other.flag == this and other.mask
 | 
			
		||||
    } else {
 | 
			
		||||
        other.flag == this
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
operator fun Long.plus(other: Flag): Long {
 | 
			
		||||
    return if (other is Mask) {
 | 
			
		||||
        this and other.mask.inv() or (other.flag and other.mask)
 | 
			
		||||
    } else {
 | 
			
		||||
        this or other.flag
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
operator fun Flag.plus(other: Flag): Long {
 | 
			
		||||
    return if (other is Mask) {
 | 
			
		||||
        this.flag and other.mask.inv() or (other.flag and other.mask)
 | 
			
		||||
    } else {
 | 
			
		||||
        this.flag or other.flag
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,59 +0,0 @@
 | 
			
		||||
package eu.kanade.domain.library.model
 | 
			
		||||
 | 
			
		||||
import tachiyomi.domain.category.model.Category
 | 
			
		||||
 | 
			
		||||
sealed class LibraryDisplayMode(
 | 
			
		||||
    override val flag: Long,
 | 
			
		||||
) : FlagWithMask {
 | 
			
		||||
 | 
			
		||||
    override val mask: Long = 0b00000011L
 | 
			
		||||
 | 
			
		||||
    object CompactGrid : LibraryDisplayMode(0b00000000)
 | 
			
		||||
    object ComfortableGrid : LibraryDisplayMode(0b00000001)
 | 
			
		||||
    object List : LibraryDisplayMode(0b00000010)
 | 
			
		||||
    object CoverOnlyGrid : LibraryDisplayMode(0b00000011)
 | 
			
		||||
 | 
			
		||||
    object Serializer {
 | 
			
		||||
        fun deserialize(serialized: String): LibraryDisplayMode {
 | 
			
		||||
            return LibraryDisplayMode.deserialize(serialized)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        fun serialize(value: LibraryDisplayMode): String {
 | 
			
		||||
            return value.serialize()
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    companion object {
 | 
			
		||||
        val values = setOf(CompactGrid, ComfortableGrid, List, CoverOnlyGrid)
 | 
			
		||||
        val default = CompactGrid
 | 
			
		||||
 | 
			
		||||
        fun valueOf(flag: Long?): LibraryDisplayMode {
 | 
			
		||||
            if (flag == null) return default
 | 
			
		||||
            return values
 | 
			
		||||
                .find { mode -> mode.flag == flag and mode.mask }
 | 
			
		||||
                ?: default
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        fun deserialize(serialized: String): LibraryDisplayMode {
 | 
			
		||||
            return when (serialized) {
 | 
			
		||||
                "COMFORTABLE_GRID" -> ComfortableGrid
 | 
			
		||||
                "COMPACT_GRID" -> CompactGrid
 | 
			
		||||
                "COVER_ONLY_GRID" -> CoverOnlyGrid
 | 
			
		||||
                "LIST" -> List
 | 
			
		||||
                else -> default
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun serialize(): String {
 | 
			
		||||
        return when (this) {
 | 
			
		||||
            ComfortableGrid -> "COMFORTABLE_GRID"
 | 
			
		||||
            CompactGrid -> "COMPACT_GRID"
 | 
			
		||||
            CoverOnlyGrid -> "COVER_ONLY_GRID"
 | 
			
		||||
            List -> "LIST"
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
val Category.display: LibraryDisplayMode
 | 
			
		||||
    get() = LibraryDisplayMode.valueOf(flags)
 | 
			
		||||
@@ -1,119 +0,0 @@
 | 
			
		||||
package eu.kanade.domain.library.model
 | 
			
		||||
 | 
			
		||||
import tachiyomi.domain.category.model.Category
 | 
			
		||||
 | 
			
		||||
data class LibrarySort(
 | 
			
		||||
    val type: Type,
 | 
			
		||||
    val direction: Direction,
 | 
			
		||||
) : FlagWithMask {
 | 
			
		||||
 | 
			
		||||
    override val flag: Long
 | 
			
		||||
        get() = type + direction
 | 
			
		||||
 | 
			
		||||
    override val mask: Long
 | 
			
		||||
        get() = type.mask or direction.mask
 | 
			
		||||
 | 
			
		||||
    val isAscending: Boolean
 | 
			
		||||
        get() = direction == Direction.Ascending
 | 
			
		||||
 | 
			
		||||
    sealed class Type(
 | 
			
		||||
        override val flag: Long,
 | 
			
		||||
    ) : FlagWithMask {
 | 
			
		||||
 | 
			
		||||
        override val mask: Long = 0b00111100L
 | 
			
		||||
 | 
			
		||||
        object Alphabetical : Type(0b00000000)
 | 
			
		||||
        object LastRead : Type(0b00000100)
 | 
			
		||||
        object LastUpdate : Type(0b00001000)
 | 
			
		||||
        object UnreadCount : Type(0b00001100)
 | 
			
		||||
        object TotalChapters : Type(0b00010000)
 | 
			
		||||
        object LatestChapter : Type(0b00010100)
 | 
			
		||||
        object ChapterFetchDate : Type(0b00011000)
 | 
			
		||||
        object DateAdded : Type(0b00011100)
 | 
			
		||||
 | 
			
		||||
        companion object {
 | 
			
		||||
            fun valueOf(flag: Long): Type {
 | 
			
		||||
                return types.find { type -> type.flag == flag and type.mask } ?: default.type
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    sealed class Direction(
 | 
			
		||||
        override val flag: Long,
 | 
			
		||||
    ) : FlagWithMask {
 | 
			
		||||
 | 
			
		||||
        override val mask: Long = 0b01000000L
 | 
			
		||||
 | 
			
		||||
        object Ascending : Direction(0b01000000)
 | 
			
		||||
        object Descending : Direction(0b00000000)
 | 
			
		||||
 | 
			
		||||
        companion object {
 | 
			
		||||
            fun valueOf(flag: Long): Direction {
 | 
			
		||||
                return directions.find { direction -> direction.flag == flag and direction.mask } ?: default.direction
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    object Serializer {
 | 
			
		||||
        fun deserialize(serialized: String): LibrarySort {
 | 
			
		||||
            return LibrarySort.deserialize(serialized)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        fun serialize(value: LibrarySort): String {
 | 
			
		||||
            return value.serialize()
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    companion object {
 | 
			
		||||
        val types = setOf(Type.Alphabetical, Type.LastRead, Type.LastUpdate, Type.UnreadCount, Type.TotalChapters, Type.LatestChapter, Type.ChapterFetchDate, Type.DateAdded)
 | 
			
		||||
        val directions = setOf(Direction.Ascending, Direction.Descending)
 | 
			
		||||
        val default = LibrarySort(Type.Alphabetical, Direction.Ascending)
 | 
			
		||||
 | 
			
		||||
        fun valueOf(flag: Long): LibrarySort {
 | 
			
		||||
            return LibrarySort(
 | 
			
		||||
                Type.valueOf(flag),
 | 
			
		||||
                Direction.valueOf(flag),
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        fun deserialize(serialized: String): LibrarySort {
 | 
			
		||||
            if (serialized.isEmpty()) return default
 | 
			
		||||
            return try {
 | 
			
		||||
                val values = serialized.split(",")
 | 
			
		||||
                val type = when (values[0]) {
 | 
			
		||||
                    "ALPHABETICAL" -> Type.Alphabetical
 | 
			
		||||
                    "LAST_READ" -> Type.LastRead
 | 
			
		||||
                    "LAST_MANGA_UPDATE" -> Type.LastUpdate
 | 
			
		||||
                    "UNREAD_COUNT" -> Type.UnreadCount
 | 
			
		||||
                    "TOTAL_CHAPTERS" -> Type.TotalChapters
 | 
			
		||||
                    "LATEST_CHAPTER" -> Type.LatestChapter
 | 
			
		||||
                    "CHAPTER_FETCH_DATE" -> Type.ChapterFetchDate
 | 
			
		||||
                    "DATE_ADDED" -> Type.DateAdded
 | 
			
		||||
                    else -> Type.Alphabetical
 | 
			
		||||
                }
 | 
			
		||||
                val ascending = if (values[1] == "ASCENDING") Direction.Ascending else Direction.Descending
 | 
			
		||||
                LibrarySort(type, ascending)
 | 
			
		||||
            } catch (e: Exception) {
 | 
			
		||||
                default
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun serialize(): String {
 | 
			
		||||
        val type = when (type) {
 | 
			
		||||
            Type.Alphabetical -> "ALPHABETICAL"
 | 
			
		||||
            Type.LastRead -> "LAST_READ"
 | 
			
		||||
            Type.LastUpdate -> "LAST_MANGA_UPDATE"
 | 
			
		||||
            Type.UnreadCount -> "UNREAD_COUNT"
 | 
			
		||||
            Type.TotalChapters -> "TOTAL_CHAPTERS"
 | 
			
		||||
            Type.LatestChapter -> "LATEST_CHAPTER"
 | 
			
		||||
            Type.ChapterFetchDate -> "CHAPTER_FETCH_DATE"
 | 
			
		||||
            Type.DateAdded -> "DATE_ADDED"
 | 
			
		||||
        }
 | 
			
		||||
        val direction = if (direction == Direction.Ascending) "ASCENDING" else "DESCENDING"
 | 
			
		||||
        return "$type,$direction"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
val Category.sort: LibrarySort
 | 
			
		||||
    get() = LibrarySort.valueOf(flags)
 | 
			
		||||
@@ -1,7 +1,5 @@
 | 
			
		||||
package eu.kanade.domain.library.service
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.library.model.LibraryDisplayMode
 | 
			
		||||
import eu.kanade.domain.library.model.LibrarySort
 | 
			
		||||
import eu.kanade.domain.manga.model.Manga
 | 
			
		||||
import eu.kanade.tachiyomi.core.preference.PreferenceStore
 | 
			
		||||
import eu.kanade.tachiyomi.data.preference.DEVICE_ONLY_ON_WIFI
 | 
			
		||||
@@ -9,6 +7,8 @@ import eu.kanade.tachiyomi.data.preference.MANGA_HAS_UNREAD
 | 
			
		||||
import eu.kanade.tachiyomi.data.preference.MANGA_NON_COMPLETED
 | 
			
		||||
import eu.kanade.tachiyomi.data.preference.MANGA_NON_READ
 | 
			
		||||
import eu.kanade.tachiyomi.widget.ExtendedNavigationView
 | 
			
		||||
import tachiyomi.domain.library.model.LibraryDisplayMode
 | 
			
		||||
import tachiyomi.domain.library.model.LibrarySort
 | 
			
		||||
 | 
			
		||||
class LibraryPreferences(
 | 
			
		||||
    private val preferenceStore: PreferenceStore,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package eu.kanade.domain.manga.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.manga.model.Manga
 | 
			
		||||
import eu.kanade.domain.manga.model.MangaUpdate
 | 
			
		||||
import eu.kanade.domain.manga.repository.MangaRepository
 | 
			
		||||
import tachiyomi.domain.manga.model.MangaUpdate
 | 
			
		||||
 | 
			
		||||
class SetMangaChapterFlags(
 | 
			
		||||
    private val mangaRepository: MangaRepository,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
package eu.kanade.domain.manga.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.manga.model.MangaUpdate
 | 
			
		||||
import eu.kanade.domain.manga.repository.MangaRepository
 | 
			
		||||
import eu.kanade.tachiyomi.ui.reader.setting.OrientationType
 | 
			
		||||
import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType
 | 
			
		||||
import tachiyomi.domain.manga.model.MangaUpdate
 | 
			
		||||
 | 
			
		||||
class SetMangaViewerFlags(
 | 
			
		||||
    private val mangaRepository: MangaRepository,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
package eu.kanade.domain.manga.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.manga.model.Manga
 | 
			
		||||
import eu.kanade.domain.manga.model.MangaUpdate
 | 
			
		||||
import eu.kanade.domain.manga.model.hasCustomCover
 | 
			
		||||
import eu.kanade.domain.manga.model.isLocal
 | 
			
		||||
import eu.kanade.domain.manga.repository.MangaRepository
 | 
			
		||||
import eu.kanade.tachiyomi.data.cache.CoverCache
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.SManga
 | 
			
		||||
import tachiyomi.domain.manga.model.MangaUpdate
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
import uy.kohesive.injekt.api.get
 | 
			
		||||
import java.util.Date
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@ import eu.kanade.tachiyomi.source.model.UpdateStrategy
 | 
			
		||||
import eu.kanade.tachiyomi.ui.reader.setting.OrientationType
 | 
			
		||||
import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType
 | 
			
		||||
import eu.kanade.tachiyomi.widget.ExtendedNavigationView
 | 
			
		||||
import tachiyomi.domain.manga.model.MangaUpdate
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
import uy.kohesive.injekt.api.get
 | 
			
		||||
import java.io.Serializable
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,6 @@
 | 
			
		||||
package eu.kanade.domain.manga.model
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Contains the required data for MangaCoverFetcher
 | 
			
		||||
 */
 | 
			
		||||
data class MangaCover(
 | 
			
		||||
    val mangaId: Long,
 | 
			
		||||
    val sourceId: Long,
 | 
			
		||||
    val isMangaFavorite: Boolean,
 | 
			
		||||
    val url: String?,
 | 
			
		||||
    val lastModified: Long,
 | 
			
		||||
)
 | 
			
		||||
import tachiyomi.domain.manga.model.MangaCover
 | 
			
		||||
 | 
			
		||||
fun Manga.asMangaCover(): MangaCover {
 | 
			
		||||
    return MangaCover(
 | 
			
		||||
 
 | 
			
		||||
@@ -1,24 +0,0 @@
 | 
			
		||||
package eu.kanade.domain.manga.model
 | 
			
		||||
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.UpdateStrategy
 | 
			
		||||
 | 
			
		||||
data class MangaUpdate(
 | 
			
		||||
    val id: Long,
 | 
			
		||||
    val source: Long? = null,
 | 
			
		||||
    val favorite: Boolean? = null,
 | 
			
		||||
    val lastUpdate: Long? = null,
 | 
			
		||||
    val dateAdded: Long? = null,
 | 
			
		||||
    val viewerFlags: Long? = null,
 | 
			
		||||
    val chapterFlags: Long? = null,
 | 
			
		||||
    val coverLastModified: Long? = null,
 | 
			
		||||
    val url: String? = null,
 | 
			
		||||
    val title: String? = null,
 | 
			
		||||
    val artist: String? = null,
 | 
			
		||||
    val author: String? = null,
 | 
			
		||||
    val description: String? = null,
 | 
			
		||||
    val genre: List<String>? = null,
 | 
			
		||||
    val status: Long? = null,
 | 
			
		||||
    val thumbnailUrl: String? = null,
 | 
			
		||||
    val updateStrategy: UpdateStrategy? = null,
 | 
			
		||||
    val initialized: Boolean? = null,
 | 
			
		||||
)
 | 
			
		||||
@@ -2,8 +2,8 @@ package eu.kanade.domain.manga.repository
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.library.model.LibraryManga
 | 
			
		||||
import eu.kanade.domain.manga.model.Manga
 | 
			
		||||
import eu.kanade.domain.manga.model.MangaUpdate
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
import tachiyomi.domain.manga.model.MangaUpdate
 | 
			
		||||
 | 
			
		||||
interface MangaRepository {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +0,0 @@
 | 
			
		||||
package eu.kanade.domain.source.model
 | 
			
		||||
 | 
			
		||||
data class SourceData(
 | 
			
		||||
    val id: Long,
 | 
			
		||||
    val lang: String,
 | 
			
		||||
    val name: String,
 | 
			
		||||
) {
 | 
			
		||||
 | 
			
		||||
    val isMissingInfo: Boolean = name.isBlank() || lang.isBlank()
 | 
			
		||||
}
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
package eu.kanade.domain.source.repository
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.source.model.SourceData
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
import tachiyomi.domain.source.model.SourceData
 | 
			
		||||
 | 
			
		||||
interface SourceDataRepository {
 | 
			
		||||
    fun subscribeAll(): Flow<List<SourceData>>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
package eu.kanade.domain.source.service
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.library.model.LibraryDisplayMode
 | 
			
		||||
import eu.kanade.domain.source.interactor.SetMigrateSorting
 | 
			
		||||
import eu.kanade.tachiyomi.core.preference.PreferenceStore
 | 
			
		||||
import eu.kanade.tachiyomi.core.preference.getEnum
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.LocaleHelper
 | 
			
		||||
import tachiyomi.domain.library.model.LibraryDisplayMode
 | 
			
		||||
 | 
			
		||||
class SourcePreferences(
 | 
			
		||||
    private val preferenceStore: PreferenceStore,
 | 
			
		||||
@@ -18,8 +18,6 @@ class SourcePreferences(
 | 
			
		||||
 | 
			
		||||
    fun pinnedSources() = preferenceStore.getStringSet("pinned_catalogues", emptySet())
 | 
			
		||||
 | 
			
		||||
    fun duplicatePinnedSources() = preferenceStore.getBoolean("duplicate_pinned_sources", false)
 | 
			
		||||
 | 
			
		||||
    fun lastUsedSource() = preferenceStore.getLong("last_catalogue_source", -1)
 | 
			
		||||
 | 
			
		||||
    fun showNsfwSource() = preferenceStore.getBoolean("show_nsfw_source", true)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package eu.kanade.domain.updates.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.updates.model.UpdatesWithRelations
 | 
			
		||||
import eu.kanade.domain.updates.repository.UpdatesRepository
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
import tachiyomi.domain.updates.model.UpdatesWithRelations
 | 
			
		||||
import java.util.Calendar
 | 
			
		||||
 | 
			
		||||
class GetUpdates(
 | 
			
		||||
 
 | 
			
		||||
@@ -1,17 +0,0 @@
 | 
			
		||||
package eu.kanade.domain.updates.model
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.manga.model.MangaCover
 | 
			
		||||
 | 
			
		||||
data class UpdatesWithRelations(
 | 
			
		||||
    val mangaId: Long,
 | 
			
		||||
    val mangaTitle: String,
 | 
			
		||||
    val chapterId: Long,
 | 
			
		||||
    val chapterName: String,
 | 
			
		||||
    val scanlator: String?,
 | 
			
		||||
    val read: Boolean,
 | 
			
		||||
    val bookmark: Boolean,
 | 
			
		||||
    val lastPageRead: Long,
 | 
			
		||||
    val sourceId: Long,
 | 
			
		||||
    val dateFetch: Long,
 | 
			
		||||
    val coverData: MangaCover,
 | 
			
		||||
)
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
package eu.kanade.domain.updates.repository
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.updates.model.UpdatesWithRelations
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
import tachiyomi.domain.updates.model.UpdatesWithRelations
 | 
			
		||||
 | 
			
		||||
interface UpdatesRepository {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user