
iosMain.com.paoapps.fifi.auth.di.Koin.kt Maven / Gradle / Ivy
package com.paoapps.fifi.auth.di
import com.russhwolf.settings.ExperimentalSettingsImplementation
import com.russhwolf.settings.KeychainSettings
import com.russhwolf.settings.NSUserDefaultsSettings
import com.russhwolf.settings.Settings
import kotlinx.cinterop.ExperimentalForeignApi
import org.koin.core.module.Module
import org.koin.core.qualifier.named
import platform.Foundation.CFBridgingRetain
import platform.Security.kSecAttrAccessible
import platform.Security.kSecAttrAccessibleWhenUnlockedThisDeviceOnly
import platform.Security.kSecAttrService
@OptIn(ExperimentalSettingsImplementation::class, ExperimentalForeignApi::class)
internal actual fun platformInjections(serviceName: String, module: Module) {
module.single(named(PlatformModuleQualifier.ENCRYPTED_SETTINGS)) {
KeychainSettings(
kSecAttrService to CFBridgingRetain(serviceName),
kSecAttrAccessible to kSecAttrAccessibleWhenUnlockedThisDeviceOnly
)
}
module.single(named(PlatformModuleQualifier.SETTINGS)) {
NSUserDefaultsSettings.Factory().create(serviceName)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy