android-mvvm icon indicating copy to clipboard operation
android-mvvm copied to clipboard

Kotlin for cleaner ViewModels

Open manas-chaudhari opened this issue 8 years ago • 3 comments

Add a kotlin artifact android-mvvm-kotlin with convenient extension functions for converting between Fields and Observables

manas-chaudhari avatar Jul 23 '16 18:07 manas-chaudhari

fun <T> ObservableField<T>.toObservable(): Observable<T> = Observable.create { e ->
    val initialValue = [email protected]()
    if (initialValue != null) {
        e.onNext(initialValue)
    }
    val callback = object : OnPropertyChangedCallback() {
        override fun onPropertyChanged(observable: android.databinding.Observable, i: Int) {
            e.onNext([email protected]())
        }
    }
    [email protected](callback)
    e.setCancellable { [email protected](callback) }
}

? Something like this?

mishkaowner avatar Sep 13 '17 08:09 mishkaowner

You can use the FieldUtils.toObservable inside the extension function. The code doesn't need to be repeated.

fun <T> ObservableField<T>.toObservable(): Observable<T> = FieldUtils.toObservable(this)

manas-chaudhari avatar Sep 13 '17 13:09 manas-chaudhari

What... I didn't know that...

mishkaowner avatar Sep 13 '17 13:09 mishkaowner