Sagar Khurana
10/07/2024, 6:23 PM@Module
@ComponentScan("foo.bar.sugar")
class NetworkModule {
@Single
@Named("appSettingsSharedPreferences")
fun provideAppSettings(context: Context): SharedPreferences {
return context.getSharedPreferences(context.getString(R.string.settings_filename), Context.MODE_PRIVATE)
}
@Single
@Named("appBaseURL")
fun provideAppBaseUrl(
context: Context,
@Named("appSettingsSharedPreferences") sharedPref: SharedPreferences,
): String {
val defaultBaseUrlValue = context.getString(R.string.settings_base_url_default)
return sharedPref.getString(context.getString(R.string.settings_base_url_key), defaultBaseUrlValue) ?: defaultBaseUrlValue
}
@Single
@Named("appDeviceToken")
fun provideDeviceToken(
context: Context,
@Named("appSettingsSharedPreferences") sharedPref: SharedPreferences,
): String {
val defaultDeviceTokenValue = context.getString(R.string.settings_device_token_default)
return sharedPref.getString(context.getString(R.string.settings_device_token_key), defaultDeviceTokenValue) ?: defaultDeviceTokenValue
}
@Single
@Named("appDeviceName")
fun provideDeviceName(
context: Context,
@Named("appSettingsSharedPreferences") sharedPref: SharedPreferences,
): String? {
return sharedPref.getString(context.getString(R.string.settings_device_name_key), null)
}
@Single
@Named("appDeviceLocation")
fun provideDeviceLocation(
context: Context,
@Named("appSettingsSharedPreferences") sharedPref: SharedPreferences
): String? {
return sharedPref.getString(context.getString(R.string.settings_device_location_key), null)
}
}
I'm facing an error with Koin while trying to assemble the app
NetworkModuleGencom$viaeurope$ehub$di.kt:11:227 None of the following candidates is applicable:
@OptionDslMarker() fun <S : Any> KoinDefinition<out S>.bind(clazz: KClass<S>): KoinDefinition<out S>
@OptionDslMarker() fun <reified S : Any> KoinDefinition<out S>.bind(): KoinDefinition<out S>
Generated DSL
single(qualifier=org.koin.core.qualifier.StringQualifier("appDeviceName")) { moduleInstance.provideDeviceName(context=get(),sharedPref=get(qualifier=org.koin.core.qualifier.StringQualifier("appSettingsSharedPreferences"))) } bind(kotlin.String::class)
single(qualifier=org.koin.core.qualifier.StringQualifier("appDeviceLocation")) { moduleInstance.provideDeviceLocation(context=get(),sharedPref=get(qualifier=org.koin.core.qualifier.StringQualifier("appSettingsSharedPreferences"))) } bind(kotlin.String::class)
I'm trying to understand why it's happening, but checking the signature of the definitions looks fine to me 🤔Alexandru Caraus
10/07/2024, 6:28 PMAlexandru Caraus
10/07/2024, 6:30 PMAlexandru Caraus
10/07/2024, 6:38 PMSagar Khurana
10/07/2024, 6:48 PMe: file:///Users/sagarkhurana/StudioProjects/ehub-android/app/build/generated/ksp/debug/kotlin/org/koin/ksp/generated/NetworkModuleGencom$viaeurope$ehub$di.kt:11:227 None of the following candidates is applicable:
@OptionDslMarker() fun <S : Any> KoinDefinition<out S>.bind(clazz: KClass<S>): KoinDefinition<out S>
@OptionDslMarker() fun <reified S : Any> KoinDefinition<out S>.bind(): KoinDefinition<out S>
Sagar Khurana
10/08/2024, 5:18 AMSagar Khurana
10/08/2024, 5:48 AMarnaud.giuliani
10/16/2024, 7:13 AM