DomainModule.kt 6.9 KB

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