Search in sources :

Example 1 with EMMessage

use of com.easemob.chat.EMMessage in project wechat by motianhuo.

the class CallActivity method saveCallRecord.

/**
	 * 保存通话消息记录
	 * 
	 * @param type
	 *            0:音频,1:视频
	 */
protected void saveCallRecord(int type) {
    EMMessage message = null;
    TextMessageBody txtBody = null;
    if (!isInComingCall) {
        // 打出去的通话
        message = EMMessage.createSendMessage(EMMessage.Type.TXT);
        message.setReceipt(username);
    } else {
        message = EMMessage.createReceiveMessage(EMMessage.Type.TXT);
        message.setFrom(username);
    }
    String st1 = getResources().getString(R.string.call_duration);
    String st2 = getResources().getString(R.string.Refused);
    String st3 = getResources().getString(R.string.The_other_party_has_refused_to);
    String st4 = getResources().getString(R.string.The_other_is_not_online);
    String st5 = getResources().getString(R.string.The_other_is_on_the_phone);
    String st6 = getResources().getString(R.string.The_other_party_did_not_answer);
    String st7 = getResources().getString(R.string.did_not_answer);
    String st8 = getResources().getString(R.string.Has_been_cancelled);
    switch(callingState) {
        case NORMAL:
            txtBody = new TextMessageBody(st1 + callDruationText);
            break;
        case REFUESD:
            txtBody = new TextMessageBody(st2);
            break;
        case BEREFUESD:
            txtBody = new TextMessageBody(st3);
            break;
        case OFFLINE:
            txtBody = new TextMessageBody(st4);
            break;
        case BUSY:
            txtBody = new TextMessageBody(st5);
            break;
        case NORESPONSE:
            txtBody = new TextMessageBody(st6);
            break;
        case UNANSWERED:
            txtBody = new TextMessageBody(st7);
            break;
        default:
            txtBody = new TextMessageBody(st8);
            break;
    }
    // 设置扩展属性
    if (type == 0)
        message.setAttribute(Constant.MESSAGE_ATTR_IS_VOICE_CALL, true);
    else
        message.setAttribute(Constant.MESSAGE_ATTR_IS_VIDEO_CALL, true);
    // 设置消息body
    message.addBody(txtBody);
    message.setMsgId(msgid);
    // 保存
    EMChatManager.getInstance().saveMessage(message, false);
}
Also used : TextMessageBody(com.easemob.chat.TextMessageBody) EMMessage(com.easemob.chat.EMMessage)

Example 2 with EMMessage

use of com.easemob.chat.EMMessage in project wechat by motianhuo.

the class ChatActivity method sendText.

/**
	 * 发送文本消息
	 * 
	 * @param content
	 *            message content
	 * @param isResend
	 *            boolean resend
	 */
private void sendText(String content) {
    if (content.length() > 0) {
        EMMessage message = EMMessage.createSendMessage(EMMessage.Type.TXT);
        // 如果是群聊,设置chattype,默认是单聊
        if (chatType == CHATTYPE_GROUP)
            message.setChatType(ChatType.GroupChat);
        TextMessageBody txtBody = new TextMessageBody(content);
        // 设置消息body
        message.addBody(txtBody);
        // 设置要发给谁,用户username或者群聊groupid
        message.setReceipt(toChatUsername);
        // 把messgage加到conversation中
        conversation.addMessage(message);
        // 通知adapter有消息变动,adapter会根据加入的这条message显示消息和调用sdk的发送方法
        adapter.refresh();
        listView.setSelection(listView.getCount() - 1);
        mEditTextContent.setText("");
        setResult(RESULT_OK);
    }
}
Also used : TextMessageBody(com.easemob.chat.TextMessageBody) EMMessage(com.easemob.chat.EMMessage)

Example 3 with EMMessage

use of com.easemob.chat.EMMessage in project wechat by motianhuo.

the class ChatActivity method resendMessage.

/**
	 * 重发消息
	 */
private void resendMessage() {
    EMMessage msg = null;
    msg = conversation.getMessage(resendPos);
    // msg.setBackSend(true);
    msg.status = EMMessage.Status.CREATE;
    adapter.refresh();
    listView.setSelection(resendPos);
}
Also used : EMMessage(com.easemob.chat.EMMessage)

Example 4 with EMMessage

use of com.easemob.chat.EMMessage in project wechat by motianhuo.

the class ChatActivity method forwardMessage.

/**
	 * 转发消息
	 * 
	 * @param forward_msg_id
	 */
protected void forwardMessage(String forward_msg_id) {
    EMMessage forward_msg = EMChatManager.getInstance().getMessage(forward_msg_id);
    EMMessage.Type type = forward_msg.getType();
    switch(type) {
        case TXT:
            // 获取消息内容,发送消息
            String content = ((TextMessageBody) forward_msg.getBody()).getMessage();
            sendText(content);
            break;
        case IMAGE:
            // 发送图片
            String filePath = ((ImageMessageBody) forward_msg.getBody()).getLocalUrl();
            if (filePath != null) {
                File file = new File(filePath);
                if (!file.exists()) {
                    // 不存在大图发送缩略图
                    filePath = ImageUtils.getThumbnailImagePath(filePath);
                }
                sendPicture(filePath);
            }
            break;
        default:
            break;
    }
}
Also used : TextMessageBody(com.easemob.chat.TextMessageBody) ImageMessageBody(com.easemob.chat.ImageMessageBody) File(java.io.File) EMMessage(com.easemob.chat.EMMessage)

Example 5 with EMMessage

use of com.easemob.chat.EMMessage in project wechat by motianhuo.

the class ChatActivity method sendPicture.

/**
	 * 发送图片
	 * 
	 * @param filePath
	 */
private void sendPicture(final String filePath) {
    String to = toChatUsername;
    // create and add image message in view
    final EMMessage message = EMMessage.createSendMessage(EMMessage.Type.IMAGE);
    // 如果是群聊,设置chattype,默认是单聊
    if (chatType == CHATTYPE_GROUP)
        message.setChatType(ChatType.GroupChat);
    message.setReceipt(to);
    ImageMessageBody body = new ImageMessageBody(new File(filePath));
    // 默认超过100k的图片会压缩后发给对方,可以设置成发送原图
    // body.setSendOriginalImage(true);
    message.addBody(body);
    conversation.addMessage(message);
    listView.setAdapter(adapter);
    adapter.refresh();
    listView.setSelection(listView.getCount() - 1);
    setResult(RESULT_OK);
// more(more);
}
Also used : ImageMessageBody(com.easemob.chat.ImageMessageBody) File(java.io.File) EMMessage(com.easemob.chat.EMMessage)

Aggregations

EMMessage (com.easemob.chat.EMMessage)13 File (java.io.File)6 EaseMobException (com.easemob.exceptions.EaseMobException)5 IOException (java.io.IOException)4 TextMessageBody (com.easemob.chat.TextMessageBody)3 Intent (android.content.Intent)2 View (android.view.View)2 OnClickListener (android.view.View.OnClickListener)2 ImageView (android.widget.ImageView)2 TextView (android.widget.TextView)2 ChatType (com.easemob.chat.EMMessage.ChatType)2 ImageMessageBody (com.easemob.chat.ImageMessageBody)2 Date (java.util.Date)2 SuppressLint (android.annotation.SuppressLint)1 Cursor (android.database.Cursor)1 Bitmap (android.graphics.Bitmap)1 Uri (android.net.Uri)1 OnLongClickListener (android.view.View.OnLongClickListener)1 LinearLayout (android.widget.LinearLayout)1 ProgressBar (android.widget.ProgressBar)1