Skip to content

Instantly share code, notes, and snippets.

@paulocns
paulocns / kdb_exemple.kt
Last active February 15, 2020 04:59
Kdb Exemple
queryViewModelArc.searchEnabled.bind(searchButton::setEnabled)
queryViewModelArc.showLoading.bind { loadinLayout.present = it }
queryViewModelArc.queryValue.twoWayBind(queryEditText.bindableText)
fun onRestResult(response:Response){
if (response.data != null){
showItensOnScreen(response.data)
}else{
showError()
}
}
fun showItensOnScreen(model:RestModel){
livedataName.value = model.name
abstract class BaseViewModel: ViewModel() {
protected operator fun <T> LiveData<T>.invoke(value: T) {
if (this is ViewModelLiveData) {
val viewModelLiveData = this
viewModelLiveData.setValue(value)
}
}
protected fun <T> liveData(value: T) = lazy {
ViewModelLiveData(value) as LiveData<T>
interface ViewModelLiveDataExtension {
operator fun <T> LiveData<T>.invoke(value: T) {
if (this is ViewModelLiveData) {
val viewModelLiveData = this
viewModelLiveData.setValue(value)
}
}
fun <T> ViewModel.liveData(value: T? = null) = lazy {
ViewModelLiveData<T>().apply { value?.let { setValue(value) } } as LiveData<T>