private void setState(int state, int subState) {
    if (!fragment.isAdded()) {
      return;
    }
    this.state = state;
    this.subState = subState;
    activity.supportInvalidateOptionsMenu();

    // FIXME: Move this out into a PageComplete event of sorts
    if (state == STATE_COMPLETE_FETCH) {
      fragment.setupToC(model, isFirstPage());

      // add the page to cache!
      if (cacheOnComplete) {
        app.getPageCache()
            .put(
                model.getTitleOriginal(),
                model.getPage(),
                new PageCache.CachePutListener() {
                  @Override
                  public void onPutComplete() {}

                  @Override
                  public void onPutError(Throwable e) {
                    Log.e(TAG, "Failed to add page to cache.", e);
                  }
                });
      }
    }
  }