当前位置: 首页>>代码示例>>Java>>正文


Java Type.IMAGE属性代码示例

本文整理汇总了Java中com.easemob.chat.EMMessage.Type.IMAGE属性的典型用法代码示例。如果您正苦于以下问题:Java Type.IMAGE属性的具体用法?Java Type.IMAGE怎么用?Java Type.IMAGE使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在com.easemob.chat.EMMessage.Type的用法示例。


在下文中一共展示了Type.IMAGE属性的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getItemViewType

/**
 * 获取item类型
 */
public int getItemViewType(int position) {
	EMMessage message = getItem(position); 
	if (message == null) {
		return -1;
	}
	if (message.getType() == Type.TXT) {
		if (message.getBooleanAttribute(Constant.MESSAGE_ATTR_IS_VOICE_CALL, false))
		    return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_VOICE_CALL : MESSAGE_TYPE_SENT_VOICE_CALL;
		else if (message.getBooleanAttribute(Constant.MESSAGE_ATTR_IS_VIDEO_CALL, false))
		    return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_VIDEO_CALL : MESSAGE_TYPE_SENT_VIDEO_CALL;
		else if(((DemoHXSDKHelper)HXSDKHelper.getInstance()).isRobotMenuMessage(message))
			return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_ROBOT_MENU : MESSAGE_TYPE_SENT_ROBOT_MENU;
		else
			return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_TXT : MESSAGE_TYPE_SENT_TXT;
	}
	if (message.getType() == Type.IMAGE) {
		return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_IMAGE : MESSAGE_TYPE_SENT_IMAGE;

	}
	if (message.getType() == Type.LOCATION) {
		return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_LOCATION : MESSAGE_TYPE_SENT_LOCATION;
	}
	if (message.getType() == Type.VOICE) {
		return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_VOICE : MESSAGE_TYPE_SENT_VOICE;
	}
	if (message.getType() == Type.VIDEO) {
		return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_VIDEO : MESSAGE_TYPE_SENT_VIDEO;
	}
	if (message.getType() == Type.FILE) {
		return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_FILE : MESSAGE_TYPE_SENT_FILE;
	}

	return -1;// invalid
}
 
开发者ID:chenjunqian,项目名称:here,代码行数:37,代码来源:MessageAdapter.java

示例2: onEvent

/**
 * 监听事件
    */
@Override
public void onEvent(EMNotifierEvent event) {
	switch (event.getEvent()) {
	case EventNewMessage: // 普通消息
		EMMessage message = (EMMessage) event.getData();
		// 提示新消息
		DemoHelper.getInstance().getNotifier().onNewMsg(message);

		refreshUIWithMessage();
		break;
	case EventOfflineMessage: {
	    refreshUIWithMessage();
		break;
	}

	case EventConversationListChanged: {
	    refreshUIWithMessage();
	    break;
	}
	case EventNewCMDMessage:
		EMMessage cmdMessage = (EMMessage) event.getData();
		//获取消息body
           CmdMessageBody cmdMsgBody = (CmdMessageBody) cmdMessage.getBody();
           final String action = cmdMsgBody.action;//获取自定义action
           if(action.equals(EaseConstant.EASE_ATTR_REVOKE)){
               EaseCommonUtils.receiveRevokeMessage(this, cmdMessage);
           }
		refreshUIWithMessage();
		break;
	case EventReadAck:
           // TODO 这里当此消息未加载到内存中时,ackMessage会为null,消息的删除会失败
	    EMMessage ackMessage = (EMMessage) event.getData();
	    EMConversation conversation = EMChatManager.getInstance().getConversation(ackMessage.getTo());
	    // 判断接收到ack的这条消息是不是阅后即焚的消息,如果是,则说明对方看过消息了,对方会销毁,这边也删除(现在只有txt iamge file三种消息支持 )
           if(ackMessage.getBooleanAttribute(EaseConstant.EASE_ATTR_READFIRE, false) 
                   && (ackMessage.getType() == Type.TXT 
                   || ackMessage.getType() == Type.VOICE 
                   || ackMessage.getType() == Type.IMAGE)){
               // 判断当前会话是不是只有一条消息,如果只有一条消息,并且这条消息也是阅后即焚类型,当对方阅读后,这边要删除,会话会被过滤掉,因此要加载上一条消息
               if(conversation.getAllMessages().size() == 1 && conversation.getLastMessage().getMsgId().equals(ackMessage.getMsgId())){
                   if (ackMessage.getChatType() == ChatType.Chat) {
                       conversation.loadMoreMsgFromDB(ackMessage.getMsgId(), 1);
                   } else {
                       conversation.loadMoreGroupMsgFromDB(ackMessage.getMsgId(), 1);
                   }
               }
               conversation.removeMessage(ackMessage.getMsgId());
           }
           refreshUIWithMessage();
	    break;
	default:
		break;
	}
}
 
开发者ID:easemob,项目名称:sdkdemoapp3.0_android,代码行数:57,代码来源:MainActivity.java

示例3: onEvent

/**
 * 事件监听,registerEventListener后的回调事件
 * 
 * see {@link EMNotifierEvent}
 */
@Override
public void onEvent(EMNotifierEvent event) {
    switch (event.getEvent()) {
    case EventNewMessage:
        // 获取到message
        EMMessage message = (EMMessage) event.getData();

        String username = null;
        // 群组消息
        if (message.getChatType() == ChatType.GroupChat || message.getChatType() == ChatType.ChatRoom) {
            username = message.getTo();
        } else {
            // 单聊消息
            username = message.getFrom();
        }

        // 如果是当前会话的消息,刷新聊天页面
        if (username.equals(toChatUsername)) {
            messageList.refreshSelectLast();
            // 声音和震动提示有新消息
            EaseUI.getInstance().getNotifier().viberateAndPlayTone(message);
        } else {
            // 如果消息不是和当前聊天ID的消息
            EaseUI.getInstance().getNotifier().onNewMsg(message);
        }

        break;
    case EventDeliveryAck:
    case EventReadAck:
        // 获取到message
    	EMMessage ackMessage = (EMMessage) event.getData();
    	// 判断接收到ack的这条消息是不是阅后即焚的消息,如果是,则说明对方看过消息了,对方会销毁,这边也删除(现在只有txt iamge file三种消息支持 )
    	if(ackMessage.getBooleanAttribute(EaseConstant.EASE_ATTR_READFIRE, false) 
    	        && (ackMessage.getType() == Type.TXT || ackMessage.getType() == Type.VOICE || ackMessage.getType() == Type.IMAGE)){
    		conversation.removeMessage(ackMessage.getMsgId());
    	}
        messageList.refresh();
        break;
    case EventOfflineMessage:
        // a list of offline messages
        // List<EMMessage> offlineMessages = (List<EMMessage>)
        // event.getData();
        messageList.refresh();
        break;
    case EventNewCMDMessage:
    	EMMessage cmdMessage = (EMMessage) event.getData();
    	//获取消息body
        CmdMessageBody cmdMsgBody = (CmdMessageBody) cmdMessage.getBody();
        final String action = cmdMsgBody.action;//获取自定义action
        if(action.equals(EaseConstant.EASE_ATTR_REVOKE)){
        	EaseCommonUtils.receiveRevokeMessage(getActivity(), cmdMessage);
        	messageList.refresh();
        }
    	break;
    default:
        break;
    }

}
 
开发者ID:easemob,项目名称:easeui,代码行数:64,代码来源:EaseChatFragment.java


注:本文中的com.easemob.chat.EMMessage.Type.IMAGE属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。