new: modularize data.preferences

This commit is contained in:
2026-07-03 09:39:04 +02:00
parent ddab9b642d
commit 0d7503f029
8 changed files with 36 additions and 3 deletions
+20
View File
@@ -0,0 +1,20 @@
plugins {
id("gwenedeg.kmp.library")
}
kotlin {
androidLibrary {
namespace = "fr.ajaury.gwenedeg.preferences"
}
sourceSets {
commonMain.dependencies {
// Coroutines
implementation(libs.kotlinx.coroutinesCore)
// DI
implementation(project.dependencies.platform(libs.koin.bom))
implementation(libs.koin.core)
}
}
}
@@ -0,0 +1,12 @@
package fr.ajaury.gwenedeg.preferences.di
import fr.ajaury.gwenedeg.preferences.data.PreferencesRepositoryImpl
import fr.ajaury.gwenedeg.preferences.domain.PreferencesRepository
import org.koin.core.module.Module
import org.koin.core.module.dsl.bind
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.module
val preferencesModule: Module = module {
singleOf(::PreferencesRepositoryImpl) { bind<PreferencesRepository>() }
}
+1
View File
@@ -45,6 +45,7 @@ include(":core:logging")
include(":core:model")
// Data modules
include(":data:preferences")
include(":data:records")
include(":data:resources")
include(":data:subtitle")
+1
View File
@@ -39,6 +39,7 @@ kotlin {
implementation(projects.core.model)
// Data modules
implementation(projects.data.preferences)
implementation(projects.data.records)
implementation(projects.data.resources)
implementation(projects.data.subtitle)
@@ -4,8 +4,7 @@ import fr.ajaury.gwenedeg.core.logging.di.loggingModule
import fr.ajaury.gwenedeg.player.data.PlaybackRepositoryImpl
import fr.ajaury.gwenedeg.player.domain.PlaybackRepository
import fr.ajaury.gwenedeg.player.ui.viewmodel.PlayerViewModel
import fr.ajaury.gwenedeg.preferences.data.PreferencesRepositoryImpl
import fr.ajaury.gwenedeg.preferences.domain.PreferencesRepository
import fr.ajaury.gwenedeg.preferences.di.preferencesModule
import fr.ajaury.gwenedeg.records.di.recordsModule
import fr.ajaury.gwenedeg.records.ui.viewmodel.RecordsViewModel
import fr.ajaury.gwenedeg.resources.di.resourcesModule
@@ -16,10 +15,10 @@ import org.koin.dsl.module
val sharedModule = module {
includes(loggingModule)
includes(preferencesModule)
includes(recordsModule)
includes(resourcesModule)
singleOf(::PlaybackRepositoryImpl) { bind<PlaybackRepository>() }
singleOf(::PreferencesRepositoryImpl) { bind<PreferencesRepository>() }
viewModelOf(::RecordsViewModel)
viewModelOf(::PlayerViewModel)
}