Я новичок в android, а также в этом паттерне MVVM я увидел некоторый учебник, в котором там используются liveata для получения пользовательских данных и проверки аутентифицированного пользователя в некотором классе, связанном с сеансом. Согласно моему пониманию, liveata используется, когда необходимо обновить некоторые данные, выслушивая изменения для реализации наблюдаемого шаблона. Я использовал kotlin сопрограммы для получения ответа пользователя здесь:
Coroutines.main {
try {
val loginresponse = repository.userLogin(email!!, password!!)
loginresponse.token.let {
val keys = listOf("TOKEN", "USERNAME", "USERID")
val values = listOf(
loginresponse.token,
loginresponse.username,
loginresponse.id.toString()
)
repository.saveUserInfo(prefs, keys, values)
authListener?.onSuccess(it)
val intent = Intent(mContext, Sos::class.java)
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
mContext.startActivity(intent)
}
} catch (e: ApiException) {
authListener?.onFailure(e.toString())
} catch (e: NoInternetException) {
authListener?.onFailure(e.message!!)
}
}
Можно ли использовать сопрограммы или я должен изменить пользователя с liveata, чтобы использовать его в каком-либо классе управления сеансом?