All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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