One problem I see is your use of setObservableBoolean. You have a BaseObservable so you should notify the property change if you call a setter.

But that's only because you're using ObservableBoolean in an unusual manner. Best practice is to always use them as public final fields. If you do this, you don't need to use BaseObservable as a base class:

You can mix observable fields in an Observable class (or BaseObservable). Just make your observable fields public final and make sure to call notifyPropertyChanged(BR.myField) inside the setters of bindable properties.