Reduce usage of ObservableField

This commit is contained in:
topjohnwu
2020-07-15 02:52:15 -07:00
parent 6c6368fd81
commit ec2d7d77eb
11 changed files with 130 additions and 148 deletions

View File

@@ -49,6 +49,22 @@ interface ObservableHost : Observable {
}
}
fun ObservableHost.addOnPropertyChangedCallback(
fieldId: Int,
removeAfterChanged: Boolean = false,
callback: () -> Unit
) {
addOnPropertyChangedCallback(object : Observable.OnPropertyChangedCallback() {
override fun onPropertyChanged(sender: Observable?, propertyId: Int) {
if (fieldId == propertyId) {
callback()
if (removeAfterChanged)
removeOnPropertyChangedCallback(this)
}
}
})
}
/**
* Injects boilerplate implementation for {@literal @}[androidx.databinding.Bindable] field setters.
*