DomainModule.kt 7.2 KB

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