LoginReactorFactory override fun createReactor(): MviReactor<LoginState> { return getReactor(reactorFactory, LoginReactor::class.java) } override val layoutRes: Int = R.layout.activity_login override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) login_emailEditText.textChanges() .map { OnLoginEmailChangeAction(it.toString()) }.bindToReactor() } override fun bindToState(stateObservable: Observable<LoginState>) { stateObservable.getChange { it.buttonState }.observeState { login_button.buttonState = it } } }