public static boolean followFeedByUrl(
      final String feedUrl, final boolean isAskingToFollow, final ActionListener actionListener) {
    if (TextUtils.isEmpty(feedUrl)) {
      if (actionListener != null) {
        actionListener.onActionResult(false);
      }
      return false;
    }

    ReaderBlog blogInfo = ReaderBlogTable.getFeedInfo(ReaderBlogTable.getFeedIdFromUrl(feedUrl));
    if (blogInfo != null) {
      return internalFollowFeed(
          blogInfo.feedId, blogInfo.getFeedUrl(), isAskingToFollow, actionListener);
    }

    updateFeedInfo(
        0,
        feedUrl,
        new UpdateBlogInfoListener() {
          @Override
          public void onResult(ReaderBlog blogInfo) {
            if (blogInfo != null) {
              internalFollowFeed(
                  blogInfo.feedId, blogInfo.getFeedUrl(), isAskingToFollow, actionListener);
            } else if (actionListener != null) {
              actionListener.onActionResult(false);
            }
          }
        });

    return true;
  }