title: Is it correct to filter observables using flatMap and filter?
body: <p>Using a contrived example to illustrate my question, I have an Observable of a type of composite object:</p>
  
  <pre><code>Observable&lt;Category&gt;
  
  public class CategoryPayload {
       public List&lt;Category&gt; categories;
       // other meta data and getters
  }
  public class Category {
       public Integer id;
       // other meta data and getters
  }
  </code></pre>
  
  <p>I need to filter out certain categories based on id so I end up doing something like:</p>
  
  <pre><code>    Observable&lt;CategoryPayload&gt; categoryObservable = service.getCategoryPayload();
      // use flatMap to transform the Observable into multiple
  mSubscription.add(
      categoryObservable.flatMap(new Func1&lt;CategoryPayload, Observable&lt;Category&gt;&gt;(){
  
           public Observable&lt;Category&gt; call(CategoryPayload categoryPayload){
                return Observable.from(categoryPayload.categories);
           }
      }).filter(new Func1&lt;Category, Boolean&gt;(){
          public Boolean call(Category category){
               return category.id != SOME_BANNED_CATEGORY_ID;
          }
  
       }).toList())
       .subscribe(mObserver);
  </code></pre>
  
  <p>Please forgive the contrived code. I am really just trying to understand whether it is a correct use of RX to flatten out my observable and then filter it in the way that I am doing above.  </p>