mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Move more to data and domain modules (#8973)
This commit is contained in:
		@@ -1,9 +1,7 @@
 | 
			
		||||
package eu.kanade.domain
 | 
			
		||||
 | 
			
		||||
import eu.kanade.data.chapter.ChapterRepositoryImpl
 | 
			
		||||
import eu.kanade.data.source.SourceDataRepositoryImpl
 | 
			
		||||
import eu.kanade.data.source.SourceRepositoryImpl
 | 
			
		||||
import eu.kanade.data.track.TrackRepositoryImpl
 | 
			
		||||
import eu.kanade.domain.category.interactor.CreateCategoryWithName
 | 
			
		||||
import eu.kanade.domain.category.interactor.DeleteCategory
 | 
			
		||||
import eu.kanade.domain.category.interactor.GetCategories
 | 
			
		||||
@@ -55,17 +53,19 @@ import eu.kanade.domain.track.interactor.DeleteTrack
 | 
			
		||||
import eu.kanade.domain.track.interactor.GetTracks
 | 
			
		||||
import eu.kanade.domain.track.interactor.GetTracksPerManga
 | 
			
		||||
import eu.kanade.domain.track.interactor.InsertTrack
 | 
			
		||||
import eu.kanade.domain.track.repository.TrackRepository
 | 
			
		||||
import eu.kanade.domain.updates.interactor.GetUpdates
 | 
			
		||||
import tachiyomi.data.category.CategoryRepositoryImpl
 | 
			
		||||
import tachiyomi.data.chapter.ChapterRepositoryImpl
 | 
			
		||||
import tachiyomi.data.history.HistoryRepositoryImpl
 | 
			
		||||
import tachiyomi.data.manga.MangaRepositoryImpl
 | 
			
		||||
import tachiyomi.data.track.TrackRepositoryImpl
 | 
			
		||||
import tachiyomi.data.updates.UpdatesRepositoryImpl
 | 
			
		||||
import tachiyomi.domain.category.repository.CategoryRepository
 | 
			
		||||
import tachiyomi.domain.chapter.repository.ChapterRepository
 | 
			
		||||
import tachiyomi.domain.history.repository.HistoryRepository
 | 
			
		||||
import tachiyomi.domain.manga.repository.MangaRepository
 | 
			
		||||
import tachiyomi.domain.source.repository.SourceDataRepository
 | 
			
		||||
import tachiyomi.domain.track.repository.TrackRepository
 | 
			
		||||
import tachiyomi.domain.updates.repository.UpdatesRepository
 | 
			
		||||
import uy.kohesive.injekt.api.InjektModule
 | 
			
		||||
import uy.kohesive.injekt.api.InjektRegistrar
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,5 @@
 | 
			
		||||
package eu.kanade.domain.chapter.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.data.chapter.CleanupChapterName
 | 
			
		||||
import eu.kanade.data.chapter.NoChaptersException
 | 
			
		||||
import eu.kanade.domain.chapter.model.copyFromSChapter
 | 
			
		||||
import eu.kanade.domain.chapter.model.toSChapter
 | 
			
		||||
import eu.kanade.domain.manga.interactor.UpdateManga
 | 
			
		||||
@@ -13,7 +11,9 @@ import eu.kanade.tachiyomi.source.isLocal
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.SChapter
 | 
			
		||||
import eu.kanade.tachiyomi.source.online.HttpSource
 | 
			
		||||
import eu.kanade.tachiyomi.util.chapter.ChapterRecognition
 | 
			
		||||
import tachiyomi.data.chapter.ChapterSanitizer
 | 
			
		||||
import tachiyomi.domain.chapter.model.Chapter
 | 
			
		||||
import tachiyomi.domain.chapter.model.NoChaptersException
 | 
			
		||||
import tachiyomi.domain.chapter.model.toChapterUpdate
 | 
			
		||||
import tachiyomi.domain.chapter.repository.ChapterRepository
 | 
			
		||||
import tachiyomi.domain.manga.model.Manga
 | 
			
		||||
@@ -55,7 +55,7 @@ class SyncChaptersWithSource(
 | 
			
		||||
            .mapIndexed { i, sChapter ->
 | 
			
		||||
                Chapter.create()
 | 
			
		||||
                    .copyFromSChapter(sChapter)
 | 
			
		||||
                    .copy(name = CleanupChapterName.await(sChapter.name, manga.title))
 | 
			
		||||
                    .copy(name = with(ChapterSanitizer) { sChapter.name.sanitize(manga.title) })
 | 
			
		||||
                    .copy(mangaId = manga.id, sourceOrder = i.toLong())
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
package eu.kanade.domain.chapter.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.track.interactor.InsertTrack
 | 
			
		||||
import eu.kanade.domain.track.model.Track
 | 
			
		||||
import eu.kanade.domain.track.model.toDbTrack
 | 
			
		||||
import eu.kanade.tachiyomi.data.track.TrackService
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import logcat.LogPriority
 | 
			
		||||
import tachiyomi.domain.chapter.model.Chapter
 | 
			
		||||
import tachiyomi.domain.chapter.model.toChapterUpdate
 | 
			
		||||
import tachiyomi.domain.track.model.Track
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
import uy.kohesive.injekt.api.get
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package eu.kanade.domain.track.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.track.repository.TrackRepository
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import logcat.LogPriority
 | 
			
		||||
import tachiyomi.domain.track.repository.TrackRepository
 | 
			
		||||
 | 
			
		||||
class DeleteTrack(
 | 
			
		||||
    private val trackRepository: TrackRepository,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
package eu.kanade.domain.track.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.track.model.Track
 | 
			
		||||
import eu.kanade.domain.track.repository.TrackRepository
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
import logcat.LogPriority
 | 
			
		||||
import tachiyomi.domain.track.model.Track
 | 
			
		||||
import tachiyomi.domain.track.repository.TrackRepository
 | 
			
		||||
 | 
			
		||||
class GetTracks(
 | 
			
		||||
    private val trackRepository: TrackRepository,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package eu.kanade.domain.track.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.track.repository.TrackRepository
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
import kotlinx.coroutines.flow.map
 | 
			
		||||
import tachiyomi.domain.track.repository.TrackRepository
 | 
			
		||||
 | 
			
		||||
class GetTracksPerManga(
 | 
			
		||||
    private val trackRepository: TrackRepository,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
package eu.kanade.domain.track.interactor
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.track.model.Track
 | 
			
		||||
import eu.kanade.domain.track.repository.TrackRepository
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import logcat.LogPriority
 | 
			
		||||
import tachiyomi.domain.track.model.Track
 | 
			
		||||
import tachiyomi.domain.track.repository.TrackRepository
 | 
			
		||||
 | 
			
		||||
class InsertTrack(
 | 
			
		||||
    private val trackRepository: TrackRepository,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,31 +1,16 @@
 | 
			
		||||
package eu.kanade.domain.track.model
 | 
			
		||||
 | 
			
		||||
import tachiyomi.domain.track.model.Track
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.models.Track as DbTrack
 | 
			
		||||
 | 
			
		||||
data class Track(
 | 
			
		||||
    val id: Long,
 | 
			
		||||
    val mangaId: Long,
 | 
			
		||||
    val syncId: Long,
 | 
			
		||||
    val remoteId: Long,
 | 
			
		||||
    val libraryId: Long?,
 | 
			
		||||
    val title: String,
 | 
			
		||||
    val lastChapterRead: Double,
 | 
			
		||||
    val totalChapters: Long,
 | 
			
		||||
    val status: Long,
 | 
			
		||||
    val score: Float,
 | 
			
		||||
    val remoteUrl: String,
 | 
			
		||||
    val startDate: Long,
 | 
			
		||||
    val finishDate: Long,
 | 
			
		||||
) {
 | 
			
		||||
    fun copyPersonalFrom(other: Track): Track {
 | 
			
		||||
        return this.copy(
 | 
			
		||||
            lastChapterRead = other.lastChapterRead,
 | 
			
		||||
            score = other.score,
 | 
			
		||||
            status = other.status,
 | 
			
		||||
            startDate = other.startDate,
 | 
			
		||||
            finishDate = other.finishDate,
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
fun Track.copyPersonalFrom(other: Track): Track {
 | 
			
		||||
    return this.copy(
 | 
			
		||||
        lastChapterRead = other.lastChapterRead,
 | 
			
		||||
        score = other.score,
 | 
			
		||||
        status = other.status,
 | 
			
		||||
        startDate = other.startDate,
 | 
			
		||||
        finishDate = other.finishDate,
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fun Track.toDbTrack(): DbTrack = DbTrack.create(syncId).also {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,9 +2,9 @@ package eu.kanade.domain.track.store
 | 
			
		||||
 | 
			
		||||
import android.content.Context
 | 
			
		||||
import androidx.core.content.edit
 | 
			
		||||
import eu.kanade.domain.track.model.Track
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import logcat.LogPriority
 | 
			
		||||
import tachiyomi.domain.track.model.Track
 | 
			
		||||
 | 
			
		||||
class DelayedTrackingStore(context: Context) {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,6 @@ import android.content.Intent
 | 
			
		||||
import android.os.IBinder
 | 
			
		||||
import android.os.PowerManager
 | 
			
		||||
import androidx.core.content.ContextCompat
 | 
			
		||||
import eu.kanade.data.chapter.NoChaptersException
 | 
			
		||||
import eu.kanade.domain.category.interactor.GetCategories
 | 
			
		||||
import eu.kanade.domain.chapter.interactor.GetChapterByMangaId
 | 
			
		||||
import eu.kanade.domain.chapter.interactor.SyncChaptersWithSource
 | 
			
		||||
@@ -64,6 +63,7 @@ import kotlinx.coroutines.sync.withPermit
 | 
			
		||||
import logcat.LogPriority
 | 
			
		||||
import tachiyomi.domain.category.model.Category
 | 
			
		||||
import tachiyomi.domain.chapter.model.Chapter
 | 
			
		||||
import tachiyomi.domain.chapter.model.NoChaptersException
 | 
			
		||||
import tachiyomi.domain.library.model.LibraryManga
 | 
			
		||||
import tachiyomi.domain.manga.model.Manga
 | 
			
		||||
import tachiyomi.domain.manga.model.toMangaUpdate
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
package eu.kanade.tachiyomi.data.track
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.track.model.Track
 | 
			
		||||
import eu.kanade.tachiyomi.data.track.model.TrackSearch
 | 
			
		||||
import eu.kanade.tachiyomi.source.Source
 | 
			
		||||
import tachiyomi.domain.manga.model.Manga
 | 
			
		||||
import tachiyomi.domain.track.model.Track
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * An Enhanced Track Service will never prompt the user to match a manga with the remote.
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ import okhttp3.OkHttpClient
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
import uy.kohesive.injekt.api.get
 | 
			
		||||
import uy.kohesive.injekt.injectLazy
 | 
			
		||||
import eu.kanade.domain.track.model.Track as DomainTrack
 | 
			
		||||
import tachiyomi.domain.track.model.Track as DomainTrack
 | 
			
		||||
 | 
			
		||||
abstract class TrackService(val id: Long) {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ import kotlinx.serialization.decodeFromString
 | 
			
		||||
import kotlinx.serialization.encodeToString
 | 
			
		||||
import kotlinx.serialization.json.Json
 | 
			
		||||
import uy.kohesive.injekt.injectLazy
 | 
			
		||||
import eu.kanade.domain.track.model.Track as DomainTrack
 | 
			
		||||
import tachiyomi.domain.track.model.Track as DomainTrack
 | 
			
		||||
 | 
			
		||||
class Anilist(private val context: Context, id: Long) : TrackService(id) {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ import eu.kanade.tachiyomi.data.track.model.TrackSearch
 | 
			
		||||
import eu.kanade.tachiyomi.source.Source
 | 
			
		||||
import tachiyomi.domain.manga.model.Manga
 | 
			
		||||
import java.security.MessageDigest
 | 
			
		||||
import eu.kanade.domain.track.model.Track as DomainTrack
 | 
			
		||||
import tachiyomi.domain.track.model.Track as DomainTrack
 | 
			
		||||
 | 
			
		||||
class Kavita(private val context: Context, id: Long) : TrackService(id), EnhancedTrackService {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ import eu.kanade.tachiyomi.source.Source
 | 
			
		||||
import okhttp3.Dns
 | 
			
		||||
import okhttp3.OkHttpClient
 | 
			
		||||
import tachiyomi.domain.manga.model.Manga
 | 
			
		||||
import eu.kanade.domain.track.model.Track as DomainTrack
 | 
			
		||||
import tachiyomi.domain.track.model.Track as DomainTrack
 | 
			
		||||
 | 
			
		||||
class Komga(private val context: Context, id: Long) : TrackService(id), EnhancedTrackService {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@ 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.source.Source
 | 
			
		||||
import eu.kanade.domain.track.model.Track as DomainTrack
 | 
			
		||||
import tachiyomi.domain.manga.model.Manga as DomainManga
 | 
			
		||||
import tachiyomi.domain.track.model.Track as DomainTrack
 | 
			
		||||
 | 
			
		||||
class Suwayomi(private val context: Context, id: Long) : TrackService(id), EnhancedTrackService {
 | 
			
		||||
    val api by lazy { TachideskApi() }
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,6 @@ import eu.kanade.core.prefs.CheckboxState
 | 
			
		||||
import eu.kanade.core.prefs.asState
 | 
			
		||||
import eu.kanade.core.prefs.mapAsCheckboxState
 | 
			
		||||
import eu.kanade.core.util.addOrRemove
 | 
			
		||||
import eu.kanade.data.chapter.NoChaptersException
 | 
			
		||||
import eu.kanade.domain.category.interactor.GetCategories
 | 
			
		||||
import eu.kanade.domain.category.interactor.SetMangaCategories
 | 
			
		||||
import eu.kanade.domain.chapter.interactor.SetMangaDefaultChapterFlags
 | 
			
		||||
@@ -70,6 +69,7 @@ import logcat.LogPriority
 | 
			
		||||
import tachiyomi.domain.category.model.Category
 | 
			
		||||
import tachiyomi.domain.chapter.model.Chapter
 | 
			
		||||
import tachiyomi.domain.chapter.model.ChapterUpdate
 | 
			
		||||
import tachiyomi.domain.chapter.model.NoChaptersException
 | 
			
		||||
import tachiyomi.domain.manga.model.Manga
 | 
			
		||||
import tachiyomi.domain.manga.model.TriStateFilter
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
 
 | 
			
		||||
@@ -245,7 +245,7 @@ data class TrackInfoDialogHomeScreen(
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private fun List<eu.kanade.domain.track.model.Track>.mapToTrackItem(): List<TrackItem> {
 | 
			
		||||
        private fun List<tachiyomi.domain.track.model.Track>.mapToTrackItem(): List<TrackItem> {
 | 
			
		||||
            val dbTracks = map { it.toDbTrack() }
 | 
			
		||||
            val loggedServices = Injekt.get<TrackManager>().services.filter { it.isLogged }
 | 
			
		||||
            val source = Injekt.get<SourceManager>().getOrStub(sourceId)
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,6 @@ import eu.kanade.domain.library.service.LibraryPreferences
 | 
			
		||||
import eu.kanade.domain.manga.interactor.GetLibraryManga
 | 
			
		||||
import eu.kanade.domain.manga.model.isLocal
 | 
			
		||||
import eu.kanade.domain.track.interactor.GetTracks
 | 
			
		||||
import eu.kanade.domain.track.model.Track
 | 
			
		||||
import eu.kanade.presentation.more.stats.StatsScreenState
 | 
			
		||||
import eu.kanade.presentation.more.stats.data.StatsData
 | 
			
		||||
import eu.kanade.tachiyomi.data.download.DownloadManager
 | 
			
		||||
@@ -24,6 +23,7 @@ import eu.kanade.tachiyomi.source.model.SManga
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.launchIO
 | 
			
		||||
import kotlinx.coroutines.flow.update
 | 
			
		||||
import tachiyomi.domain.library.model.LibraryManga
 | 
			
		||||
import tachiyomi.domain.track.model.Track
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
import uy.kohesive.injekt.api.get
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package eu.kanade.data.chapter
 | 
			
		||||
package tachiyomi.data.chapter
 | 
			
		||||
 | 
			
		||||
import tachiyomi.domain.chapter.model.Chapter
 | 
			
		||||
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package eu.kanade.data.chapter
 | 
			
		||||
package tachiyomi.data.chapter
 | 
			
		||||
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import eu.kanade.tachiyomi.util.toLong
 | 
			
		||||
@@ -1,11 +1,10 @@
 | 
			
		||||
package eu.kanade.data.chapter
 | 
			
		||||
package tachiyomi.data.chapter
 | 
			
		||||
 | 
			
		||||
object CleanupChapterName {
 | 
			
		||||
object ChapterSanitizer {
 | 
			
		||||
 | 
			
		||||
    fun await(chapterName: String, mangaTitle: String): String {
 | 
			
		||||
        return chapterName
 | 
			
		||||
            .trim()
 | 
			
		||||
            .removePrefix(mangaTitle)
 | 
			
		||||
    fun String.sanitize(title: String): String {
 | 
			
		||||
        return trim()
 | 
			
		||||
            .removePrefix(title)
 | 
			
		||||
            .trim(*CHAPTER_TRIM_CHARS)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
package eu.kanade.data.track
 | 
			
		||||
package tachiyomi.data.track
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.track.model.Track
 | 
			
		||||
import tachiyomi.domain.track.model.Track
 | 
			
		||||
 | 
			
		||||
val trackMapper: (Long, Long, Long, Long, Long?, String, Double, Long, Long, Float, String, Long, Long) -> Track =
 | 
			
		||||
    { id, mangaId, syncId, remoteId, libraryId, title, lastChapterRead, totalChapters, status, score, remoteUrl, startDate, finishDate ->
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
package eu.kanade.data.track
 | 
			
		||||
package tachiyomi.data.track
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.track.model.Track
 | 
			
		||||
import eu.kanade.domain.track.repository.TrackRepository
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
import tachiyomi.data.DatabaseHandler
 | 
			
		||||
import tachiyomi.domain.track.model.Track
 | 
			
		||||
import tachiyomi.domain.track.repository.TrackRepository
 | 
			
		||||
 | 
			
		||||
class TrackRepositoryImpl(
 | 
			
		||||
    private val handler: DatabaseHandler,
 | 
			
		||||
@@ -1,3 +1,3 @@
 | 
			
		||||
package eu.kanade.data.chapter
 | 
			
		||||
package tachiyomi.domain.chapter.model
 | 
			
		||||
 | 
			
		||||
class NoChaptersException : Exception()
 | 
			
		||||
							
								
								
									
										17
									
								
								domain/src/main/java/tachiyomi/domain/track/model/Track.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								domain/src/main/java/tachiyomi/domain/track/model/Track.kt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
package tachiyomi.domain.track.model
 | 
			
		||||
 | 
			
		||||
data class Track(
 | 
			
		||||
    val id: Long,
 | 
			
		||||
    val mangaId: Long,
 | 
			
		||||
    val syncId: Long,
 | 
			
		||||
    val remoteId: Long,
 | 
			
		||||
    val libraryId: Long?,
 | 
			
		||||
    val title: String,
 | 
			
		||||
    val lastChapterRead: Double,
 | 
			
		||||
    val totalChapters: Long,
 | 
			
		||||
    val status: Long,
 | 
			
		||||
    val score: Float,
 | 
			
		||||
    val remoteUrl: String,
 | 
			
		||||
    val startDate: Long,
 | 
			
		||||
    val finishDate: Long,
 | 
			
		||||
)
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
package eu.kanade.domain.track.repository
 | 
			
		||||
package tachiyomi.domain.track.repository
 | 
			
		||||
 | 
			
		||||
import eu.kanade.domain.track.model.Track
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
import tachiyomi.domain.track.model.Track
 | 
			
		||||
 | 
			
		||||
interface TrackRepository {
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user