Size: a a a

2020 December 08

JM

Janibek Marshal in Android KZ
Bauyrzhan Galmzhansson
Решил проблему, но она решение оказалось неочевидным.

Вот так будет все работать:

lifecycleScope.launch {
  viewModel.isReadyToSignIn
     .collect(
       binding.signInButton
         ::setEnabled
     )
}

lifecycleScope.launch {
  binding.phoneEditText
     .textChanges()
     .collect(viewModel.phoneFlow)
}

lifecycleScope.launch {
  binding.passwordEditText
     .textChanges()
     .collect(viewModel.passwordFlow)
}
У тебя coroutine запускается внутри Activity/Fragment?
источник

BG

Bauyrzhan Galmzhanss... in Android KZ
Janibek Marshal
У тебя coroutine запускается внутри Activity/Fragment?
Да, внутри активити.
источник

JM

Janibek Marshal in Android KZ
Каша потом получистя, но ладно
источник

BG

Bauyrzhan Galmzhanss... in Android KZ
Так мне же данные с editText нужно во вьюмодель отправить.
источник

BG

Bauyrzhan Galmzhanss... in Android KZ
Janibek Marshal
Каша потом получистя, но ладно
Это все у меня внутри onCreate, по другому передачу данных с вьюшек на вьюмодель я не знаю. Был бы признателен, если бы подсказал более лаконичное решение.
источник

AS

Askar Syzdykov in Android KZ
Bauyrzhan Galmzhansson
Решил проблему, но она решение оказалось неочевидным.

Вот так будет все работать:

lifecycleScope.launch {
  viewModel.isReadyToSignIn
     .collect(
       binding.signInButton
         ::setEnabled
     )
}

lifecycleScope.launch {
  binding.phoneEditText
     .textChanges()
     .collect(viewModel.phoneFlow)
}

lifecycleScope.launch {
  binding.passwordEditText
     .textChanges()
     .collect(viewModel.passwordFlow)
}
а почему из view(activity/fragment) просто не дергать методы viewmodel без flow,  а там уже сэтить данные куда угодно?
источник

BG

Bauyrzhan Galmzhanss... in Android KZ
Askar Syzdykov
а почему из view(activity/fragment) просто не дергать методы viewmodel без flow,  а там уже сэтить данные куда угодно?
А как мне отправить например номер телефона во вьюмодель?
источник

AS

Askar Syzdykov in Android KZ
мож у меня МВП головного мозга и я зря сюда лезу))) может так viewModel.setPhone(phone)?
источник

AS

Askar Syzdykov in Android KZ
textChanges() это экстеншн ктр возвращает флоу?
источник

BG

Bauyrzhan Galmzhanss... in Android KZ
Askar Syzdykov
textChanges() это экстеншн ктр возвращает флоу?
Да, так и есть.
источник

BG

Bauyrzhan Galmzhanss... in Android KZ
Askar Syzdykov
мож у меня МВП головного мозга и я зря сюда лезу))) может так viewModel.setPhone(phone)?
В таком случае вьюмодель будет иметь и phoneFlow, и setPhone(). То есть две атомарности. А через биндинг, у меня во вьюмодели не будет лишнего метода.
источник

AS

Askar Syzdykov in Android KZ
а если надо будет проверку вводимого текста делать, то где это будет?
источник

BG

Bauyrzhan Galmzhanss... in Android KZ
Для двух полей может через флоу с двух сторон выглядит оверхед, но если полей будет 10, меня будет 10 флоу и 10 методов в твоем случает.
источник

BG

Bauyrzhan Galmzhanss... in Android KZ
Askar Syzdykov
а если надо будет проверку вводимого текста делать, то где это будет?
Все будет во вьюмодели, если че могу присобачить функцию map к flow.
источник

AS

Askar Syzdykov in Android KZ
окей, а у passwordFlow какой тип? StateFlow?
источник

AS

Askar Syzdykov in Android KZ
Bauyrzhan Galmzhansson
Все будет во вьюмодели, если че могу присобачить функцию map к flow.
:D
источник

BG

Bauyrzhan Galmzhanss... in Android KZ
Askar Syzdykov
окей, а у passwordFlow какой тип? StateFlow?
MutableSharedFlow пока что. Вот сейчас разбираюсь с разницей и где что использовать.
источник

AS

Askar Syzdykov in Android KZ
Bauyrzhan Galmzhansson
MutableSharedFlow пока что. Вот сейчас разбираюсь с разницей и где что использовать.
а если editText.afterChanged { viewmodel.passwordFlow.value = password }? не проще ли будет?
источник

AS

Askar Syzdykov in Android KZ
но напрямую менять состояние VM выглядит не очень, имхо. Так будет соблазн менять из разных мест, а в случае с методами, ты можешь делать проверку ДО установки значения во Flow
источник

J

Just Q in Android KZ
всем привет, есть тут кто шарит в Android Studio Canary ?
источник