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 void handleAvatar(ImageView avatarIV, ThreadRowInfo row) { final int lou = row.getLou(); final String avatarUrl = FunctionUtil.parseAvatarUrl(row.getJs_escap_avatar()); // final String userId = String.valueOf(row.getAuthorid()); if (PhoneConfiguration.getInstance().nikeWidth < 3) { avatarIV.setImageBitmap(null); return; } if (defaultAvatar == null || defaultAvatar.getWidth() != PhoneConfiguration.getInstance().nikeWidth) { Resources res = avatarIV.getContext().getResources(); InputStream is = res.openRawResource(R.drawable.default_avatar); InputStream is2 = res.openRawResource(R.drawable.default_avatar); this.defaultAvatar = ImageUtil.loadAvatarFromStream(is, is2); } Object tagObj = avatarIV.getTag(); if (tagObj instanceof AvatarTag) { AvatarTag origTag = (AvatarTag) tagObj; if (origTag.isDefault == false) { ImageUtil.recycleImageView(avatarIV); // Log.d(TAG, "recycle avatar:" + origTag.lou); } else { // Log.d(TAG, "default avatar, skip recycle"); } } AvatarTag tag = new AvatarTag(lou, true); avatarIV.setImageBitmap(defaultAvatar); avatarIV.setTag(tag); if (!StringUtil.isEmpty(avatarUrl)) { final String avatarPath = ImageUtil.newImage(avatarUrl, userId); if (avatarPath != null) { File f = new File(avatarPath); if (f.exists() && !isPending(avatarUrl)) { Bitmap bitmap = ImageUtil.loadAvatarFromSdcard(avatarPath); if (bitmap != null) { avatarIV.setImageBitmap(bitmap); tag.isDefault = false; } else f.delete(); long date = f.lastModified(); if ((System.currentTimeMillis() - date) / 1000 > 30 * 24 * 3600) { f.delete(); } } else { final boolean downImg = isInWifi() || PhoneConfiguration.getInstance().isDownAvatarNoWifi(); new AvatarLoadTask(avatarIV, null, downImg, lou, this) .execute(avatarUrl, avatarPath, userId); } } } }