title: Android Data Binding mCallback is always null
body: <p>I've been experimenting with the Android data binding library, folllowing the google developer guide. But even with following their code exactly <code>notifyPropertyChanged()</code> never works. </p>
  
  <p>mCallbacks in the <code>BaseObservable</code> is always null. I've debugged the code as the binding is set up and <code>addOnPropertyChangedCallback</code> is called and mCallbacks is set, but for some reason this reference has been lost by the time you get round to calling <code>notifyPropertyChanged()</code>.</p>
  
  <p>There's probably something I'm missing so any help would be much appreciated!</p>
  
  <p>Code:</p>
  
  <pre><code>public class TestActivity extends AppCompatActivity {
  
  TestModel mTestModel;
  ActivityTestBinding mBinding;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      mBinding = DataBindingUtil.setContentView(this, R.layout.activity_test);
      mTestModel = new TestModel("Test", "User");
      mBinding.setTestModel(mTestModel);
  
      mBinding.ratingBtnUpdate.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              mTestModel.setFirstName("New");
              mTestModel.setLastName("WOOOOORKS");
              mBinding.notifyPropertyChanged(BR.firstName);
          }
      });
  }}
  
  
  public class TestModel extends BaseObservable {
  
  private String firstName;
  private String lastName;
  
  public TestModel(String firstName, String lastName) {
      this.firstName = firstName;
      this.lastName = lastName;
  }
  
  @Bindable
  public String getFirstName() {
      return this.firstName;
  }
  
  @Bindable
  public String getLastName() {
      return this.lastName;
  }
  
  public void setFirstName(String firstName) {
      this.firstName = firstName;
  }
  
  public void setLastName(String lastName) {
      this.lastName = lastName;
  }}
  </code></pre>
  
  <p>Layout:</p>
  
  <pre><code>&lt;layout
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      &gt;
  
  
      &lt;data&gt;
          &lt;variable
              name="testModel"
              type="com.boundless.happymeter.model.TestModel"
              /&gt;
      &lt;/data&gt;
  
  
      &lt;LinearLayout
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          &gt;
  
          &lt;TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="@{testModel.firstName}"
              /&gt;
  
          &lt;TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="@{testModel.lastName}"
              /&gt;
  
          &lt;Button
              android:id="@+id/rating_btn_update"
              android:layout_width="match_parent"
              android:layout_height="48dp"
              android:text="Update"
              /&gt;
  
      &lt;/LinearLayout&gt;
  
  
  &lt;/layout&gt;
  </code></pre>
  
  <p>Note:
  It is possible to force the binding by using mBinding.invalidateAll() - but this is quite an ugly soloution</p>