rxDatabindings

Additional

Language
Kotlin
Version
3.0.0 (Mar 30, 2020)
Created
Nov 10, 2016
Updated
Mar 30, 2020 (Retired)
Owner
Stepan Goncharov (stepango)
Contributors
Lucas Nelaupe (lucas34)
Stepan Goncharov (stepango)
Denis Nek (nekdenis)
Sachin Tewari (steelrooter)
4
Activity
Badge
Generate
Download
Source code

RxDatabindings

RxJava 2 & 3 extensions for Android Databindings library

Add RxDataBindings to your build.gradle

implementation "com.stepango.rxdatabindings:rxdatabindings:3.0.0"

Basic example of usage:

interface ViewModelState : Parcelable {
    val text: ObservableString
    val counter: ObservableInt
}

@Parcelize
data class ViewModelStateImpl(
        override val text: ObservableString = ObservableString(),
        override val counter: ObservableInt = ObservableInt()
) : ViewModelState

class ViewModel(val state: ViewModelState) : ViewModelState by state {

    init {
        counter.observe()
                .setTo(text) { "Wow! You count till $it" }
                .doOnNext { Log.d("THREAD", Thread.currentThread().name) }
                .subscribe()
    }

    fun incCounter() = counter.inc(10)
    fun decCounter() = counter.dec(0)

}