private static String buildComment(
      ThreadRowInfo row, String fgColor, boolean showImage, int imageQuality) {
    if (row == null || row.getComments() == null || row.getComments().size() == 0) {
      return "";
    }

    StringBuilder ret = new StringBuilder();
    ret.append("<br/></br>").append(comment).append("<hr/><br/>");
    ret.append("<table border='1px' cellspacing='0px' style='border-collapse:collapse;");
    ret.append("color:");
    ret.append(fgColor);
    ret.append("'>");

    ret.append("<tbody>");

    Iterator<ThreadRowInfo> it = row.getComments().iterator();
    while (it.hasNext()) {
      ThreadRowInfo comment = it.next();
      ret.append("<tr><td>");
      ret.append("<span style='font-weight:bold' >");
      ret.append(comment.getAuthor());
      ret.append("</span><br/>");
      ret.append("<img src='");
      String avatarUrl = FunctionUtil.parseAvatarUrl(comment.getJs_escap_avatar());
      ret.append(avatarUrl);
      ret.append("' style= 'max-width:32;'>");

      ret.append("</td><td>");
      ret.append(StringUtil.decodeForumTag(comment.getContent(), showImage, imageQuality, null));
      ret.append("</td></tr>");
    }
    ret.append("</tbody></table>");
    return ret.toString();
  }
 private static String buildSignature(ThreadRowInfo row, boolean showImage, int imageQuality) {
   if (row == null
       || row.getSignature() == null
       || row.getSignature().length() == 0
       || !PhoneConfiguration.getInstance().showSignature) {
     return "";
   }
   return "<br/></br>"
       + sig
       + "<hr/><br/>"
       + StringUtil.decodeForumTag(row.getSignature(), showImage, imageQuality, null);
 }
  public static String convertToHtmlText(
      final ThreadRowInfo row,
      boolean showImage,
      int imageQuality,
      final String fgColorStr,
      final String bgcolorStr) {
    HashSet<String> imageURLSet = new HashSet<String>();
    String ngaHtml =
        StringUtil.decodeForumTag(row.getContent(), showImage, imageQuality, imageURLSet);
    if (row.get_isInBlackList()) {
      ngaHtml =
          "<HTML> <HEAD><META http-equiv=Content-Type content= \"text/html; charset=utf-8 \">"
              + "<body bgcolor= '#"
              + bgcolorStr
              + "'>"
              + "<font color='red' size='2'>["
              + blacklistban
              + "]</font>"
              + "</font></body>";
    } else {
      if (imageURLSet.size() == 0) {
        imageURLSet = null;
      }
      if (StringUtil.isEmpty(ngaHtml)) {
        ngaHtml = row.getAlterinfo();
      }
      if (StringUtil.isEmpty(ngaHtml)) {

        ngaHtml = "<font color='red'>[" + hide + "]</font>";
      }
      ngaHtml =
          ngaHtml
              + buildComment(row, fgColorStr, showImage, imageQuality)
              + buildAttachment(row, showImage, imageQuality, imageURLSet)
              + buildSignature(row, showImage, imageQuality)
              + buildVote(row);
      ngaHtml =
          "<HTML> <HEAD><META http-equiv=Content-Type content= \"text/html; charset=utf-8 \">"
              + buildHeader(row, fgColorStr)
              + "<body bgcolor= '#"
              + bgcolorStr
              + "'>"
              + "<font color='#"
              + fgColorStr
              + "' size='2'>"
              + ngaHtml
              + "</font></body>";
    }
    return ngaHtml;
  }