Я пытаюсь создать пользовательскую область, используя Koin.
Когда пользователь вошел в систему, я создаю область:
val scope = getKoin().createScope("USER_SCOPE")
И когда пользователь нажимает на выход из системы, я уничтожаю область действия
scope?.let {userScope ->
userScope.close()
getKoin().deleteScope(userScope.id)
}
В моем модуле koin у меня есть scoped
UserRepository, который должен жить только во время сеанса пользователя. У меня также есть ViewModels и Use Cases, которые используют этот репозиторий, и я пытаюсь внедрить репо scoped
в них
val appModule = module {
scoped<UserRepository> { UserDataRepository() }
viewModel { UserViewModel(getScope("USER_SCOPE").get()) }
factory { MyUseCase(getScope("USER_SCOPE").get()) }
}
При первом входе в систему он работает нормально, у меня есть пользовательское хранилище, введенное в моей viewmodel и сценарии использования. Но после выхода из системы (который удаляет область действия) и после другого входа в систему экземпляр UserRepository остается точно таким же.
Я что-то упускаю при использовании объема?