Я недавно узнал о Коине.
Я пытался перенести свой текущий проект из Dagger в Koin.
При этом я столкнулся с проблемой добавления в действия sharedPreferences и редактора sharedPreferences .
Ниже приведен код, который я использовал в Кинжал для добавления редактора sharedPreferences и sharedPreferences ->
@Provides
@AppScope
fun getSharedPreferences(context: Context): SharedPreferences =
context.getSharedPreferences("default", Context.MODE_PRIVATE)
@SuppressLint("CommitPrefEdits")
@Provides
@AppScope
fun getSharedPrefrencesEditor(context: Context): SharedPreferences.Editor =
getSharedPreferences(context).edit()
Я пытался преобразовать вышеупомянутый код в Koin вот так ->
val appModule = module {
val ctx by lazy{ androidApplication() }
single {
ctx.getSharedPreferences("default", Context.MODE_PRIVATE)
}
single {
getSharedPreferences(ctx).edit()
}
}
Я также пытался реализовать это таким образом ->
val appModule = module {
single {
androidApplication().getSharedPreferences("default", Context.MODE_PRIVATE)
}
single {
getSharedPreferences(androidApplication()).edit()
}
}
Теперь я внедряю зависимости в моей деятельности следующим образом ->
val sharedPreferences: SharedPreferences by inject()
val sharedPreferencesEditor: SharedPreferences.Editor by inject()
Но как только я запускаю свое приложение и пытаюсь их использовать, я не могу ни читать, ни записывать ничего в настройки.
Я немного смущен тем, что не так с кодом.
Пожалуйста, помогите мне разобраться в этом.