code: protected Observable<LifecycleState> connect(boolean bootstrapping) {
          if (state() != LifecycleState.DISCONNECTED) {
              return Observable.just(state());
          }
  
          final AsyncSubject<LifecycleState> observable = AsyncSubject.create();
          transitionState(LifecycleState.CONNECTING);
          hasWritten = false;
          doConnect(observable, bootstrapping);
          return observable;
      }
docs: An internal alternative to {@link #connect()} where signalling that this is
  post-bootstrapping can be done.
  
  @param bootstrapping is this connect attempt made during bootstrap or after (in
  which case more error cases are eligible for retries).