/*
   * start a two-step process to follow a blog by url:
   *    1. test whether the url is reachable (API will follow any url, even if it doesn't exist)
   *    2. perform the actual follow
   * note that the passed URL is assumed to be normalized and validated
   */
  private void performAddUrl(final String blogUrl) {
    if (!NetworkUtils.checkConnection(this)) {
      return;
    }

    showAddUrlProgress();

    ReaderActions.ActionListener urlActionListener =
        new ReaderActions.ActionListener() {
          @Override
          public void onActionResult(boolean succeeded) {
            if (isFinishing()) {
              return;
            }
            if (succeeded) {
              followBlogUrl(blogUrl);
            } else {
              hideAddUrlProgress();
              ToastUtils.showToast(ReaderSubsActivity.this, R.string.reader_toast_err_follow_blog);
            }
          }
        };
    ReaderBlogActions.checkBlogUrlReachable(blogUrl, urlActionListener);
  }