package org.aisen.weibo.sina.ui.component; import java.util.ArrayList; import java.util.List; import org.aisen.weibo.sina.R; import org.aisen.weibo.sina.support.utils.AisenUtil; import org.aisen.weibo.sina.support.utils.AppContext; import org.aisen.weibo.sina.support.utils.ImageConfigUtils; import org.aisen.weibo.sina.ui.activity.comment.TimelineCommentsActivity; import org.aisen.weibo.sina.ui.fragment.base.BizFragment; import org.aisen.weibo.sina.ui.widget.AisenTextView; import org.aisen.weibo.sina.ui.widget.CommentPicsView; import org.android.loader.BitmapLoader; import org.sina.android.bean.StatusComment; import org.sina.android.bean.StatusContent; import org.sina.android.bean.WeiBoUser; import android.content.DialogInterface; import android.text.Html; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.TextView; import com.m.common.context.GlobalContext; import com.m.support.Inject.ViewInject; import com.m.support.adapter.ABaseAdapter.AbstractItemView; import com.m.ui.fragment.ABaseFragment; public class CommentItemView extends AbstractItemView<StatusComment> implements OnClickListener { @ViewInject(id = R.id.imgPhoto) ImageView imgPhoto; @ViewInject(id = R.id.txtName) TextView txtName; @ViewInject(id = R.id.txtDesc) TextView txtDesc; @ViewInject(id = R.id.txtContent) AisenTextView txtContent; @ViewInject(id = R.id.layRe) View layRe; @ViewInject(id = R.id.imgRePhoto) ImageView imgRePhoto; @ViewInject(id = R.id.txtReContent) AisenTextView txtReContent; @ViewInject(id = R.id.layStatus) View layStatus; @ViewInject(id = R.id.txtStatusUserName) TextView txtStatusUserName; @ViewInject(id = R.id.txtStatusContent) AisenTextView txtStatusContent; @ViewInject(id = R.id.layRightPicture) CommentPicsView picsView; @ViewInject(id = R.id.btnMenus) View btnMenus; private ABaseFragment fragment; private BizFragment bizFragment; private StatusContent mStatus; public CommentItemView(ABaseFragment fragment) { this.fragment = fragment; } public CommentItemView(ABaseFragment fragment, StatusContent status) { this.fragment = fragment; this.mStatus = status; } @Override public int inflateViewId() { return R.layout.item_timeline_comment; } @Override public void bindingData(View convertView, StatusComment data) { try { if (bizFragment == null) bizFragment = BizFragment.getBizFragment(fragment); if (bizFragment == null) return; } catch (Exception e) { } WeiBoUser user = data.getUser(); if (user != null) { BitmapLoader.getInstance().display(fragment, AisenUtil.getUserPhoto(user), imgPhoto, ImageConfigUtils.getLargePhotoConfig()); bizFragment.userShow(imgPhoto, user); txtName.setText(AisenUtil.getUserScreenName(user)); } else { bizFragment.userShow(imgPhoto, null); txtName.setText(R.string.error_cmts); imgPhoto.setImageResource(R.drawable.user_placeholder); } txtContent.setContent(AisenUtil.getCommentText(data.getText())); AisenUtil.setTextSize(txtContent); String createAt = AisenUtil.convDate(data.getCreated_at()); String from = String.format("%s", Html.fromHtml(data.getSource())); String desc = String.format("%s %s", createAt, from); txtDesc.setText(desc); // 源评论 if (data.getReply_comment() != null) { layRe.setVisibility(View.VISIBLE); txtReContent.setContent(AisenUtil.getCommentText(data.getReply_comment().getText())); AisenUtil.setTextSize(txtReContent); if (data.getReply_comment().getUser() != null) { BitmapLoader.getInstance().display(fragment, AisenUtil.getUserPhoto(data.getReply_comment().getUser()), imgRePhoto, ImageConfigUtils.getLargePhotoConfig()); bizFragment.userShow(imgRePhoto, data.getReply_comment().getUser()); } else { bizFragment.userShow(imgRePhoto, null); } } else { layRe.setVisibility(View.GONE); } if (data.getStatus() != null && mStatus == null) { layStatus.setVisibility(View.VISIBLE); layStatus.setTag(data.getStatus()); layStatus.setOnClickListener(this); // if (data.getStatus().getUser() != null) // txtStatusUserName.setText(AisenUtil.getUserScreenName(data.getStatus().getUser())); // else // txtStatusUserName.setText("-"); if (data.getStatus().getUser() != null) txtStatusUserName.setText(AisenUtil.getUserScreenName(data.getStatus().getUser())); // txtStatusUserName.setText(String.format("%s 的原微博", AisenUtil.getUserScreenName(data.getStatus().getUser()))); else txtStatusUserName.setText("-"); txtStatusContent.setContent(data.getStatus().getText()); AisenUtil.setTextSize(txtStatusContent); picsView.setPics(data.getStatus()); bizFragment.bindOnTouchListener(txtStatusContent); } else { layStatus.setVisibility(View.GONE); } btnMenus.setTag(data); btnMenus.setOnClickListener(this); AisenUtil.setAlpha(convertView); } @Override public void onClick(View v) { if (v.getId() == R.id.layStatus) { final StatusContent status = (StatusContent) v.getTag(); TimelineCommentsActivity.launch(fragment, status); } else if (v.getId() == R.id.btnMenus) { final String[] commentMenuArr = GlobalContext.getInstance().getResources().getStringArray(R.array.cmt_menus); final StatusComment comment = (StatusComment) v.getTag(); if (mStatus != null) comment.setStatus(mStatus); // 复制 List<String> menuList = new ArrayList<String>(); menuList.add(commentMenuArr[0]); // 转发 // if (fragment instanceof TimelineCommentsFragment) if (comment.getStatus() != null && (comment.getUser() != null && !comment.getUser().getIdstr().equals(AppContext.getUser().getIdstr()))) menuList.add(commentMenuArr[1]); // 删除 if (comment.getUser() != null && AppContext.getUser().getIdstr().equals(comment.getUser().getIdstr())) menuList.add(commentMenuArr[2]); final String[] menus = new String[menuList.size()]; for (int i = 0; i < menuList.size(); i++) menus[i] = menuList.get(i); AisenUtil.showMenuDialog(fragment, v, menus, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { AisenUtil.commentMenuSelected(fragment, menus[which], comment); } }); } } }