Вы можете создать модуль Koin для предоставления общих настроек:
val sharedPreferencesModule = module {
single {
androidApplication().getSharedPreferences("PREFERENCES", android.content.Context.MODE_PRIVATE)
}
}
, а затем внедрить его с Koin в класс, который генерирует клиента Retrofit.
EDIT
Вам необходимо изменить сигнатуру createNetworkClient
метода:
fun createNetworkClient(baseUrl: String, preferences: SharedPreferences)
, а затем ввести его с помощью Koin:
val appModule = module {
single {
androidApplication().getSharedPreferences("PREFERENCES", android.content.Context.MODE_PRIVATE)
}
single { createNetworkClient(BuildConfig.BASE_URL, get()) }
...
}
Затем вы получите Shared Preferences, введенные в методе createNetworkClient
, и вам просто нужно реализовать логику для извлечения токена из Shared Preferences.