title: Two-way databinding not working when triggered inside coroutine
body: <p>I'm trying to update <code>TextInputEditText</code>  text via <code>data-binding</code> after I get some data from BE API call. My solution works perfectly if code is not executed inside coroutine. If variable is set inside coroutine <code>EditText</code> does not get updated.
  My XML code:</p>
  <pre><code>&lt;com.google.android.material.textfield.TextInputEditText
                  android:layout_width=&quot;match_parent&quot;
                  android:layout_height=&quot;40dp&quot;
                  android:text=&quot;@={ viewModel.name }&quot; /&gt;
  </code></pre>
  <p>My viewModel code:</p>
  <pre><code>var name: String = &quot;&quot;
          get() = field.trim()
          set(value) {
              field = value
              //some other unrelated code
          }
  ...
  fun getName(){
      name = &quot;first&quot;
      viewModelScope.launch(Dispatchers.Main) {
          name = &quot;second&quot;
      }
  }
  </code></pre>
  <p><code>TextInputEditText</code> will be updated to &quot;first&quot; but not to &quot;second&quot;. I've tried with other dispatchers. I've also verified via debugger that &quot;name&quot; variable setter is being triggered both times. It's just not updating the <code>EditText</code>. Any ideas on what could cause this?</p>