code: public String getUserAgent(String nonLibraryUserAgent) {
      StringBuilder agentStringBuilder = new StringBuilder();
      agentStringBuilder.append(nonLibraryUserAgent);
      agentStringBuilder.append(" (");
      Joiner.on(", ")
          .skipNulls()
          .appendTo(
              agentStringBuilder,
              Iterables.transform(
                  userAgentProviders, input -> input == null ? null : input.getUserAgent()));
      agentStringBuilder.append(')');
      return agentStringBuilder.toString();
    }
docs: Gets the full user agent in the form of
  {@code "(UserAgent1,UserAgent2,UserAgent3,...)"}