Нужно ли нам добавлять liveata при аутентификации какого-либо пользователя? - PullRequest
1 голос
/ 12 февраля 2020

Я новичок в 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, чтобы использовать его в каком-либо классе управления сеансом?

...