Я недавно узнал о Коине. Я пытался перенести свой текущий проект с Dagger на Koin. При этом я столкнулся с проблемой внедрения sharedPreferences и редактора sharedPreferences в действия.
Ниже приведен код, который я использовал в Dagger для внедрения редактора 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()
Но как только я запускаю свое приложение и пытаюсь использовать их, я не могу ничего читать или писать в настройках.
Я немного запутался в том, что не так с кодом. Пожалуйста, помогите мне разобраться в этом.