title: In MVVM, whose job is it to decide the Navigation Flow? ViewModel or View?
body: <p>In Android Context, should the decision point be inside the ViewModel something like in my ViewModel when a response is received:</p>
  
  <pre><code>if (response.isSuccess()) {
      nextScreenLiveData.value = GO_TO_NEXT_SCREEN
  } else if(response.isNeedAnotherScreen()) {
      anotherScreenLiveData.value = ANOTHER_SCREEN
  } else {
      backToBeforeScreen = BACK_TO_BEFORE_SCREEN
  }
  </code></pre>
  
  <p>Then all these LiveDatas will be observed in the Activity/Fragment. Meaning one oberver for each LiveData.</p>
  
  <p>Or is it better to just do something like this in my ViewModel:</p>
  
  <pre><code>liveData.value = response
  </code></pre>
  
  <p>then in my Activity/Fragment have the decision instead:</p>
  
  <pre><code>liveData.observe(this, Observer { response -&gt;
     if (response.isSuccess()) {
          goToNextScreen()
      } else if(response.isNeedAnotherScreen()) {
          goToAnotherScreen()
      } else {
          goBack()
      }
  }
  </code></pre>
  
  <p>Thanks in advance.</p>