DomainModule.kt 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. package eu.kanade.domain
  2. import eu.kanade.domain.chapter.interactor.SetReadStatus
  3. import eu.kanade.domain.chapter.interactor.SyncChaptersWithSource
  4. import eu.kanade.domain.download.interactor.DeleteDownload
  5. import eu.kanade.domain.extension.interactor.GetExtensionLanguages
  6. import eu.kanade.domain.extension.interactor.GetExtensionSources
  7. import eu.kanade.domain.extension.interactor.GetExtensionsByType
  8. import eu.kanade.domain.manga.interactor.SetMangaViewerFlags
  9. import eu.kanade.domain.manga.interactor.UpdateManga
  10. import eu.kanade.domain.source.interactor.GetEnabledSources
  11. import eu.kanade.domain.source.interactor.GetLanguagesWithSources
  12. import eu.kanade.domain.source.interactor.GetSourcesWithFavoriteCount
  13. import eu.kanade.domain.source.interactor.SetMigrateSorting
  14. import eu.kanade.domain.source.interactor.ToggleLanguage
  15. import eu.kanade.domain.source.interactor.ToggleSource
  16. import eu.kanade.domain.source.interactor.ToggleSourcePin
  17. import eu.kanade.domain.track.interactor.AddTracks
  18. import eu.kanade.domain.track.interactor.RefreshTracks
  19. import eu.kanade.domain.track.interactor.SyncChapterProgressWithTrack
  20. import eu.kanade.domain.track.interactor.TrackChapter
  21. import tachiyomi.data.category.CategoryRepositoryImpl
  22. import tachiyomi.data.chapter.ChapterRepositoryImpl
  23. import tachiyomi.data.history.HistoryRepositoryImpl
  24. import tachiyomi.data.manga.MangaRepositoryImpl
  25. import tachiyomi.data.release.ReleaseServiceImpl
  26. import tachiyomi.data.source.SourceRepositoryImpl
  27. import tachiyomi.data.source.StubSourceRepositoryImpl
  28. import tachiyomi.data.track.TrackRepositoryImpl
  29. import tachiyomi.data.updates.UpdatesRepositoryImpl
  30. import tachiyomi.domain.category.interactor.CreateCategoryWithName
  31. import tachiyomi.domain.category.interactor.DeleteCategory
  32. import tachiyomi.domain.category.interactor.GetCategories
  33. import tachiyomi.domain.category.interactor.RenameCategory
  34. import tachiyomi.domain.category.interactor.ReorderCategory
  35. import tachiyomi.domain.category.interactor.ResetCategoryFlags
  36. import tachiyomi.domain.category.interactor.SetDisplayMode
  37. import tachiyomi.domain.category.interactor.SetMangaCategories
  38. import tachiyomi.domain.category.interactor.SetSortModeForCategory
  39. import tachiyomi.domain.category.interactor.UpdateCategory
  40. import tachiyomi.domain.category.repository.CategoryRepository
  41. import tachiyomi.domain.chapter.interactor.GetChapter
  42. import tachiyomi.domain.chapter.interactor.GetChapterByMangaId
  43. import tachiyomi.domain.chapter.interactor.SetMangaDefaultChapterFlags
  44. import tachiyomi.domain.chapter.interactor.ShouldUpdateDbChapter
  45. import tachiyomi.domain.chapter.interactor.UpdateChapter
  46. import tachiyomi.domain.chapter.repository.ChapterRepository
  47. import tachiyomi.domain.history.interactor.GetHistory
  48. import tachiyomi.domain.history.interactor.GetNextChapters
  49. import tachiyomi.domain.history.interactor.GetTotalReadDuration
  50. import tachiyomi.domain.history.interactor.RemoveHistory
  51. import tachiyomi.domain.history.interactor.UpsertHistory
  52. import tachiyomi.domain.history.repository.HistoryRepository
  53. import tachiyomi.domain.manga.interactor.FetchInterval
  54. import tachiyomi.domain.manga.interactor.GetDuplicateLibraryManga
  55. import tachiyomi.domain.manga.interactor.GetFavorites
  56. import tachiyomi.domain.manga.interactor.GetLibraryManga
  57. import tachiyomi.domain.manga.interactor.GetManga
  58. import tachiyomi.domain.manga.interactor.GetMangaWithChapters
  59. import tachiyomi.domain.manga.interactor.NetworkToLocalManga
  60. import tachiyomi.domain.manga.interactor.ResetViewerFlags
  61. import tachiyomi.domain.manga.interactor.SetMangaChapterFlags
  62. import tachiyomi.domain.manga.repository.MangaRepository
  63. import tachiyomi.domain.release.interactor.GetApplicationRelease
  64. import tachiyomi.domain.release.service.ReleaseService
  65. import tachiyomi.domain.source.interactor.GetRemoteManga
  66. import tachiyomi.domain.source.interactor.GetSourcesWithNonLibraryManga
  67. import tachiyomi.domain.source.repository.SourceRepository
  68. import tachiyomi.domain.source.repository.StubSourceRepository
  69. import tachiyomi.domain.track.interactor.DeleteTrack
  70. import tachiyomi.domain.track.interactor.GetTracks
  71. import tachiyomi.domain.track.interactor.GetTracksPerManga
  72. import tachiyomi.domain.track.interactor.InsertTrack
  73. import tachiyomi.domain.track.repository.TrackRepository
  74. import tachiyomi.domain.updates.interactor.GetUpdates
  75. import tachiyomi.domain.updates.repository.UpdatesRepository
  76. import uy.kohesive.injekt.api.InjektModule
  77. import uy.kohesive.injekt.api.InjektRegistrar
  78. import uy.kohesive.injekt.api.addFactory
  79. import uy.kohesive.injekt.api.addSingletonFactory
  80. import uy.kohesive.injekt.api.get
  81. class DomainModule : InjektModule {
  82. override fun InjektRegistrar.registerInjectables() {
  83. addSingletonFactory<CategoryRepository> { CategoryRepositoryImpl(get()) }
  84. addFactory { GetCategories(get()) }
  85. addFactory { ResetCategoryFlags(get(), get()) }
  86. addFactory { SetDisplayMode(get()) }
  87. addFactory { SetSortModeForCategory(get(), get()) }
  88. addFactory { CreateCategoryWithName(get(), get()) }
  89. addFactory { RenameCategory(get()) }
  90. addFactory { ReorderCategory(get()) }
  91. addFactory { UpdateCategory(get()) }
  92. addFactory { DeleteCategory(get()) }
  93. addSingletonFactory<MangaRepository> { MangaRepositoryImpl(get()) }
  94. addFactory { GetDuplicateLibraryManga(get()) }
  95. addFactory { GetFavorites(get()) }
  96. addFactory { GetLibraryManga(get()) }
  97. addFactory { GetMangaWithChapters(get(), get()) }
  98. addFactory { GetManga(get()) }
  99. addFactory { GetNextChapters(get(), get(), get()) }
  100. addFactory { ResetViewerFlags(get()) }
  101. addFactory { SetMangaChapterFlags(get()) }
  102. addFactory { FetchInterval(get()) }
  103. addFactory { SetMangaDefaultChapterFlags(get(), get(), get()) }
  104. addFactory { SetMangaViewerFlags(get()) }
  105. addFactory { NetworkToLocalManga(get()) }
  106. addFactory { UpdateManga(get(), get()) }
  107. addFactory { SetMangaCategories(get()) }
  108. addSingletonFactory<ReleaseService> { ReleaseServiceImpl(get(), get()) }
  109. addFactory { GetApplicationRelease(get(), get()) }
  110. addSingletonFactory<TrackRepository> { TrackRepositoryImpl(get()) }
  111. addFactory { TrackChapter(get(), get(), get(), get()) }
  112. addFactory { AddTracks(get(), get(), get()) }
  113. addFactory { RefreshTracks(get(), get(), get(), get()) }
  114. addFactory { DeleteTrack(get()) }
  115. addFactory { GetTracksPerManga(get()) }
  116. addFactory { GetTracks(get()) }
  117. addFactory { InsertTrack(get()) }
  118. addFactory { SyncChapterProgressWithTrack(get(), get(), get()) }
  119. addSingletonFactory<ChapterRepository> { ChapterRepositoryImpl(get()) }
  120. addFactory { GetChapter(get()) }
  121. addFactory { GetChapterByMangaId(get()) }
  122. addFactory { UpdateChapter(get()) }
  123. addFactory { SetReadStatus(get(), get(), get(), get()) }
  124. addFactory { ShouldUpdateDbChapter() }
  125. addFactory { SyncChaptersWithSource(get(), get(), get(), get(), get(), get(), get()) }
  126. addSingletonFactory<HistoryRepository> { HistoryRepositoryImpl(get()) }
  127. addFactory { GetHistory(get()) }
  128. addFactory { UpsertHistory(get()) }
  129. addFactory { RemoveHistory(get()) }
  130. addFactory { GetTotalReadDuration(get()) }
  131. addFactory { DeleteDownload(get(), get()) }
  132. addFactory { GetExtensionsByType(get(), get()) }
  133. addFactory { GetExtensionSources(get()) }
  134. addFactory { GetExtensionLanguages(get(), get()) }
  135. addSingletonFactory<UpdatesRepository> { UpdatesRepositoryImpl(get()) }
  136. addFactory { GetUpdates(get()) }
  137. addSingletonFactory<SourceRepository> { SourceRepositoryImpl(get(), get()) }
  138. addSingletonFactory<StubSourceRepository> { StubSourceRepositoryImpl(get()) }
  139. addFactory { GetEnabledSources(get(), get()) }
  140. addFactory { GetLanguagesWithSources(get(), get()) }
  141. addFactory { GetRemoteManga(get()) }
  142. addFactory { GetSourcesWithFavoriteCount(get(), get()) }
  143. addFactory { GetSourcesWithNonLibraryManga(get()) }
  144. addFactory { SetMigrateSorting(get()) }
  145. addFactory { ToggleLanguage(get()) }
  146. addFactory { ToggleSource(get()) }
  147. addFactory { ToggleSourcePin(get()) }
  148. }
  149. }