Skip to content

Commit

Permalink
fix(di): injected params, settings provider inclusion, better module …
Browse files Browse the repository at this point in the history
…separation (#622)

* refactor(di): better separation between DI modules

* fix: remove default values from @InjectedParam fields
  • Loading branch information
AkesiSeli authored Dec 4, 2024
1 parent 0c7e590 commit d5aa84f
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ import org.koin.ksp.generated.module

@Module
@ComponentScan("com.livefast.eattrash.raccoonforfriendica.core.persistence.provider")
internal class ProviderModule {
internal class ProviderModule

@Module
internal class DaoModule {
@Single
fun provideAccountDao(dbProvider: DatabaseProvider): AccountDao = dbProvider.provideDatabase().getAccountDao()

Expand All @@ -22,7 +25,7 @@ internal class ProviderModule {
fun provideDraftDao(dbProvider: DatabaseProvider): DraftDao = dbProvider.provideDatabase().getDraftDao()
}

@Module(includes = [BuilderModule::class, ProviderModule::class])
@Module(includes = [BuilderModule::class, ProviderModule::class, DaoModule::class])
internal class PersistenceModule

val corePersistenceModule = PersistenceModule().module
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,26 @@ import org.koin.ksp.generated.module

@Module
@ComponentScan("com.livefast.eattrash.raccoonforfriendica.core.preferences.settings")
internal class SettingsModule {
@Single
fun provideSettings(provider: SettingsProvider): Settings = provider.provide()
}
internal class SettingsWrapperModule

@Module
@ComponentScan("com.livefast.eattrash.raccoonforfriendica.core.preferences.store")
internal class StoreModule

@Module(includes = [SettingsModule::class, StoreModule::class])
@Module
internal class SettingsModule {
@Single
fun provideSettings(provider: SettingsProvider): Settings = provider.provide()
}

@Module(
includes = [
ProviderModule::class,
SettingsModule::class,
SettingsWrapperModule::class,
StoreModule::class,
],
)
internal class PreferencesModule

val corePreferencesModule = PreferencesModule().module
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@ import org.koin.core.annotation.Module
import org.koin.core.annotation.Single
import org.koin.ksp.generated.module

@Module
@Module(includes = [CacheModule::class])
@ComponentScan("com.livefast.eattrash.raccoonforfriendica.domain.content.repository")
internal class ContentRepositoryModule {
internal class ContentRepositoryModule

@Module
internal class CacheModule {
@Single
fun provideLocalItemCacheUserModel(): LocalItemCache<UserModel> = DefaultLocalItemCache()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ private const val PLACEHOLDER_ID = "placeholder"
@Factory(binds = [ComposerMviModel::class])
@OptIn(FlowPreview::class)
class ComposerViewModel(
@InjectedParam private val inReplyToId: String? = null,
@InjectedParam private val inReplyToId: String?,
private val identityRepository: IdentityRepository,
private val timelineEntryRepository: TimelineEntryRepository,
private val photoRepository: PhotoRepository,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ import org.koin.core.annotation.InjectedParam
@Factory(binds = [UserListMviModel::class])
internal class UserListViewModel(
@InjectedParam private val type: UserListType,
@InjectedParam private val userId: String? = null,
@InjectedParam private val entryId: String? = null,
@InjectedParam private val userId: String?,
@InjectedParam private val entryId: String?,
private val paginationManager: UserPaginationManager,
private val userRepository: UserRepository,
private val identityRepository: IdentityRepository,
Expand Down

0 comments on commit d5aa84f

Please sign in to comment.