code: public static <T> Observable<T> whileDo(Observable<? extends T> source, Func0<Boolean> preCondition) {
          return Observable.create(new OperatorWhileDoWhile<T>(source, preCondition, preCondition));
      }
docs: Return an Observable that replays the emissions from the source
  Observable so long as a condtion is true.
  <p>
  <img width="640" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/whileDo.png" alt="">
  
  @param preCondition
  the condition to evaluate before subscribing to or
  replaying the source Observable
  @return an Observable that replays the emissions from the source
  Observable so long as <code>preCondition</code> is true