title: LiveData observe() not called
body: <p>My observer callback is not being called, can you point out what am I doing wrong ? My application is really simple since I'm just testing this architecture</p>
  
  <p>MainActivity code</p>
  
  <pre><code>viewModel = ViewModelProviders.of(this).get(UpcomingMoviesViewModel.class);
  viewModel.getUpcomingMovies().observe(this, upcomingMovies -&gt; {
          // NOT CALLED !!!
          for(UpcomingMovies movie : upcomingMovies) {
              Log.d("Upcoming", "Movie - " + movie.movie.title);
          }
      });
  </code></pre>
  
  <p>ViewModel code</p>
  
  <pre><code>private LiveData&lt;List&lt;UpcomingMovies&gt;&gt; mUpcomingMovies;
  private MovieRepository movieRepository;
  
  public UpcomingMoviesViewModel(@NonNull Application application ) {
      super(application);
      movieRepository = MovieRepository.getsInstance(application); 
  }
  
  public LiveData&lt;List&lt;UpcomingMovies&gt;&gt; getUpcomingMovies() {
      mUpcomingMovies = movieRepository.getUpcomingMovies();
      return mUpcomingMovies;
  }
  </code></pre>
  
  <p>And my repository method</p>
  
  <pre><code>public LiveData&lt;List&lt;UpcomingMovies&gt;&gt; getUpcomingMovies(){
      if(movieDao.loadUpcomingMovies().getValue() == null) {
          webService.getUpcomingMovies(api_key).
                  enqueue(new Callback&lt;MovieResults&gt;() {
  
                      @Override
                      public void onResponse(Call&lt;MovieResults&gt; call, Response&lt;MovieResults&gt; response) {
                          MovieResults results = response.body();
                          if(results == null) return;
                          new insertAsyncTask(movieDao).execute(results.movies.toArray(new Movie[results.movies.size()]));
                      }
  
                      @Override
                      public void onFailure(Call&lt;MovieResults&gt; call, Throwable t) {
                          Log.d("Retrofit error", t.getMessage());
                      }
                  });
      }
      return movieDao.loadUpcomingMovies();
  }
  
  private static class insertAsyncTask extends AsyncTask&lt;Movie, Void, Void&gt; {
  
      private final MovieDao mAsyncTask;
  
      insertAsyncTask(MovieDao dao){
          mAsyncTask = dao;
      }
  
      @Override
      protected Void doInBackground(Movie... movies) {
          long [] results = mAsyncTask.insertMovies(Arrays.asList(movies));
          long [] results2 = mAsyncTask.insertUpcomingMovies(Arrays.asList(movies));
          return null;
      }
  }
  </code></pre>
  
  <p>Both <code>results</code> and <code>results2</code> return 20 numbers, which I attribute it to the fact I receive 20 movies. 
  What have I done wrong here ? Thanks for ur time</p>