title: Why LiveData setValue or PostValue triggers onChange just once in the view?
body: <p>LiveData setValue should have triggered the onChanged method in the Activity, however it calls only at the first time, after when I try to make paging, it breaks and doesn't call onChanged anymore, though my response is does successful and I see it in the log. What's wrong with setValue/postValue? Is it a bug? Should I implement observer pattern on my own? Whats the point of using LiveData then? My paging doesn't work merely for this already 2-3 days.....</p>
  
  <ol>
  <li><p>MainActivity class</p>
  
  <pre><code> public class MainActivity extends AppCompatActivity 
   private MutableLiveData&lt;List&lt;Photo&gt;&gt; mLivePhotos;
   // some code...
  
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      mLivePhotos = loadData();
      mLivePhotos.observe(this, photos -&gt; {
          Log.d(TAG, "onChanged!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
          mProgressBar.setVisibility(View.GONE);
          mPhotos = photos;
          if (mIsInitialCall) {
              initiateAdapter();
              mIsInitialCall = false;
          } else {
              mAdapter.updateList(mPhotos.subList(mPageNumber, mPageNumber + 10));
          }
      });
  
      mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
          @Override
          public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
              int lastPosition = 
  mLayoutManager.findLastCompletelyVisibleItemPosition();
              Log.d(TAG, "onScrolled - lastPosition: " + lastPosition);
              if (lastPosition == mLayoutManager.getItemCount() - 1) {
                  Log.d(TAG, "onScrolled - End of list?");
                  loadData();
              }
          }
      });
  }
  
  private MutableLiveData&lt;List&lt;Photo&gt;&gt; loadData() {
      Log.d(TAG, "loadData");
      if (mArticleViewModel == null) return null;
      mPageNumber += 10;
      mProgressBar.setVisibility(View.VISIBLE);
      return mArticleViewModel.loadPhotos();
  }
  </code></pre></li>
  <li><p>ViewModel</p>
  
  <pre><code>public class ArticleViewModel extends ViewModel {
      private MutableLiveData&lt;List&lt;Photo&gt;&gt; photos;
      private ArticleRepository articleRepository;
  
      public MutableLiveData&lt;List&lt;Photo&gt;&gt; loadPhotos() {
          Log.d(TAG, "getArticleList");
          //TODO; add Dagger 2
          articleRepository = new ArticleRepository();
          photos = articleRepository.getPhotos();
          return photos;
      }
  </code></pre></li>
  <li><p>Repository</p>
  
  <pre><code>public class ArticleRepository {
  
      public MutableLiveData&lt;List&lt;Photo&gt;&gt; getPhotos() {
          final MutableLiveData&lt;List&lt;Photo&gt;&gt; result = new MutableLiveData&lt;&gt;();
          Log.d(TAG, "getResults");
          ApiService.getService().getPhotos().enqueue(new Callback&lt;List&lt;Photo&gt;&gt;() {
          @Override
          public void onResponse(Call&lt;List&lt;Photo&gt;&gt; call, Response&lt;List&lt;Photo&gt;&gt; response) {
              Log.d(TAG, "onResponse");
              if (response.isSuccessful()) {
                  Log.d(TAG, "isSuccessful");
                  result.postValue(response.body());
              }
          }
  
          @Override
          public void onFailure(Call&lt;List&lt;Photo&gt;&gt; call, Throwable t) {
              Log.d(TAG, "onFailure: " + t.getMessage() + "\n" +  t.getStackTrace());
          }
      });
      return result;
  }
  </code></pre></li>
  </ol>