package com.fanxin.easeui.widget.chatrow;
import com.hyphenate.chat.EMClient;
import com.hyphenate.chat.EMMessage;
import com.hyphenate.chat.EMMessage.ChatType;
import com.hyphenate.chat.EMTextMessageBody;
import com.hyphenate.easeui.R;
import com.fanxin.easeui.utils.EaseSmileUtils;
import com.hyphenate.exceptions.HyphenateException;
import android.content.Context;
import android.text.Spannable;
import android.view.View;
import android.widget.BaseAdapter;
import android.widget.TextView;
import android.widget.TextView.BufferType;
public class EaseChatRowText extends EaseChatRow{
private TextView contentView;
public EaseChatRowText(Context context, EMMessage message, int position, BaseAdapter adapter) {
super(context, message, position, adapter);
}
@Override
protected void onInflatView() {
inflater.inflate(message.direct() == EMMessage.Direct.RECEIVE ?
R.layout.ease_row_received_message : R.layout.ease_row_sent_message, this);
}
@Override
protected void onFindViewById() {
contentView = (TextView) findViewById(R.id.tv_chatcontent);
}
@Override
public void onSetUpView() {
EMTextMessageBody txtBody = (EMTextMessageBody) message.getBody();
Spannable span = EaseSmileUtils.getSmiledText(context, txtBody.getMessage());
// 设置内容
contentView.setText(span, BufferType.SPANNABLE);
handleTextMessage();
}
protected void handleTextMessage() {
if (message.direct() == EMMessage.Direct.SEND) {
setMessageSendCallback();
switch (message.status()) {
case CREATE:
progressBar.setVisibility(View.GONE);
statusView.setVisibility(View.VISIBLE);
break;
case SUCCESS:
progressBar.setVisibility(View.GONE);
statusView.setVisibility(View.GONE);
break;
case FAIL:
progressBar.setVisibility(View.GONE);
statusView.setVisibility(View.VISIBLE);
break;
case INPROGRESS:
progressBar.setVisibility(View.VISIBLE);
statusView.setVisibility(View.GONE);
break;
default:
break;
}
}else{
if(!message.isAcked() && message.getChatType() == ChatType.Chat){
try {
EMClient.getInstance().chatManager().ackMessageRead(message.getFrom(), message.getMsgId());
} catch (HyphenateException e) {
e.printStackTrace();
}
}
}
}
@Override
protected void onUpdateView() {
adapter.notifyDataSetChanged();
}
@Override
protected void onBubbleClick() {
// TODO Auto-generated method stub
}
}