Ответ
В MVI Intent возвращается из UI (View) в ViewModel (или Presenter), а не наоборот. Intent представляет намерение пользователя (например, клик, ввод текста), которое обрабатывается и преобразуется в State.
Пример:
// View
button.setOnClickListener {
viewModel.processIntent(Intent.ButtonClicked)
}
// ViewModel
fun processIntent(intent: Intent) {
when (intent) {
is Intent.ButtonClicked -> updateState { ... }
}
}
Обратно во View приходит только State для отображения. Intent — это односторонний поток от View к бизнес-логике.