Resolve SharedPreferences for desktop & com.russhwolf.settings for android
This commit is contained in:
parent
d3fa9e0725
commit
323dec9e78
5 changed files with 18 additions and 6 deletions
|
|
@ -72,6 +72,7 @@ kotlin {
|
|||
implementation(libs.kotlinx.serialization.json)
|
||||
implementation(libs.bundles.voyager)
|
||||
implementation(libs.cafe.voyager.koin)
|
||||
implementation(libs.multiplatform.settings)
|
||||
implementation(compose.materialIconsExtended)
|
||||
//implementation(kotlin("stdlib-jdk8"))
|
||||
//implementation("org.jetbrains.compose.foundation:foundation-desktop")
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
package mg.dot.feufaro.di
|
||||
|
||||
import android.content.Context
|
||||
import com.russhwolf.settings.Settings
|
||||
import com.russhwolf.settings.SharedPreferencesSettings
|
||||
import mg.dot.feufaro.AndroidFileRepository
|
||||
import mg.dot.feufaro.config.AppConfig
|
||||
import org.koin.core.module.dsl.singleOf // Import for Koin DSL
|
||||
import org.koin.core.module.dsl.bind // Import for Koin DSL
|
||||
import org.koin.dsl.module
|
||||
import mg.dot.feufaro.FileRepository
|
||||
import org.koin.android.ext.koin.androidContext // Import for androidContext()
|
||||
import mg.dot.feufaro.config.AppConfig
|
||||
import org.koin.dsl.module
|
||||
|
||||
val androidModule = module {
|
||||
// Koin will automatically provide the Android Context because you called androidContext() in AndroidApp.
|
||||
|
|
@ -18,6 +17,10 @@ val androidModule = module {
|
|||
transposeasif = "C",
|
||||
)
|
||||
}
|
||||
single<Settings> {
|
||||
val sharedPrefs = get<Context>().getSharedPreferences("mg.dot.feufaro", Context.MODE_PRIVATE)
|
||||
SharedPreferencesSettings(sharedPrefs)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import org.koin.core.module.dsl.singleOf
|
|||
|
||||
val commonModule = module {
|
||||
singleOf(::MusicXML)
|
||||
single { DisplayConfigManager(fileRepository = get())}
|
||||
single { DisplayConfigManager(fileRepository = get(), settings = get()) }
|
||||
single { SharedScreenModel(fileRepository = get()) }
|
||||
|
||||
single { Solfa(get(), get()) }
|
||||
|
|
|
|||
|
|
@ -1,10 +1,13 @@
|
|||
package mg.dot.feufaro.di
|
||||
|
||||
import com.russhwolf.settings.PreferencesSettings
|
||||
import com.russhwolf.settings.Settings
|
||||
import org.koin.core.module.dsl.singleOf // Import for Koin DSL
|
||||
import org.koin.core.module.dsl.bind // Import for Koin DSL
|
||||
import org.koin.dsl.module
|
||||
import mg.dot.feufaro.FileRepository
|
||||
import mg.dot.feufaro.config.AppConfig
|
||||
import java.util.prefs.Preferences
|
||||
|
||||
val desktopModule = module {
|
||||
// When Koin is initialized on Desktop, it will use DesktopFileRepository
|
||||
|
|
@ -19,4 +22,7 @@
|
|||
|
||||
actual val platformModule = module {
|
||||
single<FileRepository> { DesktopFileRepository() } // Une version simple sans Context
|
||||
single<Settings> {
|
||||
PreferencesSettings(Preferences.userRoot().node("mg.dot.feufaro"))
|
||||
}
|
||||
}
|
||||
|
|
@ -12,6 +12,7 @@ androidx-lifecycle = "2.9.1"
|
|||
androidx-testExt = "1.2.1"
|
||||
composeHotReload = "1.0.0-alpha11"
|
||||
composeMultiplatform = "1.8.2"
|
||||
multiplatformSettings = "1.1.1"
|
||||
junit = "4.13.2"
|
||||
kotlin = "2.2.0"
|
||||
kotlinx-coroutines = "1.10.2"
|
||||
|
|
@ -58,6 +59,7 @@ voyager-navigator = { module = "cafe.adriel.voyager:voyager-navigator", version.
|
|||
voyager-screenmodel = { module = "cafe.adriel.voyager:voyager-screenmodel", version.ref = "voyager" }
|
||||
voyager-koin = { module = "cafe.adriel.voyager:voyager-koin", version.ref = "voyager" }
|
||||
#ktmidi = { group = "dev.atsushieno", name = "ktmidi", version.ref = "ktmidi" }
|
||||
multiplatform-settings = { module = "com.russhwolf:multiplatform-settings", version.ref = "multiplatformSettings" }
|
||||
|
||||
[plugins]
|
||||
androidApplication = { id = "com.android.application", version.ref = "agp" }
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue