-
Notifications
You must be signed in to change notification settings - Fork 3
7. Listener Extensions
Gabriel Brasileiro edited this page Jun 13, 2020
·
3 revisions
Listener extensions is an artifact to process your ViewModel states and events.
The method onEvent will receive and listener all ViewModels you implement with EventView<Event>.
Example:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupEventListener()
setupStateListener()
setupButtonListeners()
}
private fun setupEventListener() {
onEvent(viewModel) { event ->
when (event) {
is MainEvent.ShowLoadScreen -> startActivity<PersonActivity>()
is MainEvent.ShowPersonScreen -> startActivity<LoadActivity>()
}
}
}The method onStateChanged will receive and listener all ViewModels you implement with StateView<State>.
Example:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupStateListener()
setupTextListeners()
}
private fun setupStateListener() {
onStateChanged(stateViewModel) { state ->
setupTexts(state.name, state.age)
}
}
private fun setupTexts(name: String, age: String) {
val nameTextView = findViewById<TextView>(R.id.name_text_view)
val ageTextView = findViewById<TextView>(R.id.age_text_view)
nameTextView.text = name
ageTextView.text = age
}