Browse Source

Move more to data and domain modules (#8973)

Andreas 2 năm trước cách đây
mục cha
commit
cdf242e8c8
27 tập tin đã thay đổi với 65 bổ sung64 xóa
  1. 3 3
      app/src/main/java/eu/kanade/domain/DomainModule.kt
  2. 3 3
      app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt
  3. 1 1
      app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithTrackServiceTwoWay.kt
  4. 1 1
      app/src/main/java/eu/kanade/domain/track/interactor/DeleteTrack.kt
  5. 2 2
      app/src/main/java/eu/kanade/domain/track/interactor/GetTracks.kt
  6. 1 1
      app/src/main/java/eu/kanade/domain/track/interactor/GetTracksPerManga.kt
  7. 2 2
      app/src/main/java/eu/kanade/domain/track/interactor/InsertTrack.kt
  8. 9 24
      app/src/main/java/eu/kanade/domain/track/model/Track.kt
  9. 1 1
      app/src/main/java/eu/kanade/domain/track/store/DelayedTrackingStore.kt
  10. 1 1
      app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
  11. 1 1
      app/src/main/java/eu/kanade/tachiyomi/data/track/EnhancedTrackService.kt
  12. 1 1
      app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt
  13. 1 1
      app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/Anilist.kt
  14. 1 1
      app/src/main/java/eu/kanade/tachiyomi/data/track/kavita/Kavita.kt
  15. 1 1
      app/src/main/java/eu/kanade/tachiyomi/data/track/komga/Komga.kt
  16. 1 1
      app/src/main/java/eu/kanade/tachiyomi/data/track/suwayomi/Suwayomi.kt
  17. 1 1
      app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
  18. 1 1
      app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt
  19. 1 1
      app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreenModel.kt
  20. 1 1
      data/src/main/java/tachiyomi/data/chapter/ChapterMapper.kt
  21. 1 1
      data/src/main/java/tachiyomi/data/chapter/ChapterRepositoryImpl.kt
  22. 5 6
      data/src/main/java/tachiyomi/data/chapter/ChapterSanitizer.kt
  23. 2 2
      data/src/main/java/tachiyomi/data/track/TrackMapper.kt
  24. 3 3
      data/src/main/java/tachiyomi/data/track/TrackRepositoryImpl.kt
  25. 1 1
      domain/src/main/java/tachiyomi/domain/chapter/model/NoChaptersException.kt
  26. 17 0
      domain/src/main/java/tachiyomi/domain/track/model/Track.kt
  27. 2 2
      domain/src/main/java/tachiyomi/domain/track/repository/TrackRepository.kt

+ 3 - 3
app/src/main/java/eu/kanade/domain/DomainModule.kt

@@ -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

+ 3 - 3
app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt

@@ -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 - 1
app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithTrackServiceTwoWay.kt

@@ -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 - 1
app/src/main/java/eu/kanade/domain/track/interactor/DeleteTrack.kt

@@ -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,

+ 2 - 2
app/src/main/java/eu/kanade/domain/track/interactor/GetTracks.kt

@@ -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 - 1
app/src/main/java/eu/kanade/domain/track/interactor/GetTracksPerManga.kt

@@ -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,

+ 2 - 2
app/src/main/java/eu/kanade/domain/track/interactor/InsertTrack.kt

@@ -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,

+ 9 - 24
app/src/main/java/eu/kanade/domain/track/model/Track.kt

@@ -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 {

+ 1 - 1
app/src/main/java/eu/kanade/domain/track/store/DelayedTrackingStore.kt

@@ -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) {
 

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt

@@ -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 - 1
app/src/main/java/eu/kanade/tachiyomi/data/track/EnhancedTrackService.kt

@@ -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.

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt

@@ -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) {
 

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/Anilist.kt

@@ -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) {
 

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/data/track/kavita/Kavita.kt

@@ -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 {
 

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/data/track/komga/Komga.kt

@@ -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 {
 

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/data/track/suwayomi/Suwayomi.kt

@@ -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() }

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt

@@ -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

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt

@@ -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)

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreenModel.kt

@@ -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 - 1
app/src/main/java/eu/kanade/data/chapter/ChapterMapper.kt → data/src/main/java/tachiyomi/data/chapter/ChapterMapper.kt

@@ -1,4 +1,4 @@
-package eu.kanade.data.chapter
+package tachiyomi.data.chapter
 
 import tachiyomi.domain.chapter.model.Chapter
 

+ 1 - 1
app/src/main/java/eu/kanade/data/chapter/ChapterRepositoryImpl.kt → data/src/main/java/tachiyomi/data/chapter/ChapterRepositoryImpl.kt

@@ -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

+ 5 - 6
app/src/main/java/eu/kanade/data/chapter/CleanupChapterName.kt → data/src/main/java/tachiyomi/data/chapter/ChapterSanitizer.kt

@@ -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)
     }
 

+ 2 - 2
app/src/main/java/eu/kanade/data/track/TrackMapper.kt → data/src/main/java/tachiyomi/data/track/TrackMapper.kt

@@ -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 ->

+ 3 - 3
app/src/main/java/eu/kanade/data/track/TrackRepositoryImpl.kt → data/src/main/java/tachiyomi/data/track/TrackRepositoryImpl.kt

@@ -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 - 1
app/src/main/java/eu/kanade/data/chapter/NoChaptersException.kt → domain/src/main/java/tachiyomi/domain/chapter/model/NoChaptersException.kt

@@ -1,3 +1,3 @@
-package eu.kanade.data.chapter
+package tachiyomi.domain.chapter.model
 
 class NoChaptersException : Exception()

+ 17 - 0
domain/src/main/java/tachiyomi/domain/track/model/Track.kt

@@ -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,
+)

+ 2 - 2
app/src/main/java/eu/kanade/domain/track/repository/TrackRepository.kt → domain/src/main/java/tachiyomi/domain/track/repository/TrackRepository.kt

@@ -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 {