Search in sources :

Example 1 with EMGroup

use of com.hyphenate.chat.EMGroup in project SmartCampus by Vegen.

the class EaseConversationAdapter method getView.

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = LayoutInflater.from(getContext()).inflate(R.layout.ease_row_chat_history, parent, false);
    }
    ViewHolder holder = (ViewHolder) convertView.getTag();
    if (holder == null) {
        holder = new ViewHolder();
        holder.name = (TextView) convertView.findViewById(R.id.name);
        holder.unreadLabel = (TextView) convertView.findViewById(R.id.unread_msg_number);
        holder.message = (TextView) convertView.findViewById(R.id.message);
        holder.time = (TextView) convertView.findViewById(R.id.time);
        holder.avatar = (ImageView) convertView.findViewById(R.id.avatar);
        holder.msgState = convertView.findViewById(R.id.msg_state);
        holder.list_itease_layout = (RelativeLayout) convertView.findViewById(R.id.list_itease_layout);
        holder.motioned = (TextView) convertView.findViewById(R.id.mentioned);
        convertView.setTag(holder);
    }
    holder.list_itease_layout.setBackgroundResource(R.drawable.ease_mm_listitem);
    // get conversation
    EMConversation conversation = getItem(position);
    // get username or group id
    String username = conversation.conversationId();
    if (conversation.getType() == EMConversationType.GroupChat) {
        String groupId = conversation.conversationId();
        if (EaseAtMessageHelper.get().hasAtMeMsg(groupId)) {
            holder.motioned.setVisibility(View.VISIBLE);
        } else {
            holder.motioned.setVisibility(View.GONE);
        }
        // group message, show group avatar
        holder.avatar.setImageResource(R.drawable.ease_group_icon);
        EMGroup group = EMClient.getInstance().groupManager().getGroup(username);
        holder.name.setText(group != null ? group.getGroupName() : username);
    } else if (conversation.getType() == EMConversationType.ChatRoom) {
        holder.avatar.setImageResource(R.drawable.ease_group_icon);
        EMChatRoom room = EMClient.getInstance().chatroomManager().getChatRoom(username);
        holder.name.setText(room != null && !TextUtils.isEmpty(room.getName()) ? room.getName() : username);
        holder.motioned.setVisibility(View.GONE);
    } else {
        EaseUserUtils.setUserAvatar(getContext(), username, holder.avatar);
        EaseUserUtils.setUserNick(username, holder.name);
        holder.motioned.setVisibility(View.GONE);
    }
    EaseAvatarOptions avatarOptions = EaseUI.getInstance().getAvatarOptions();
    if (avatarOptions != null && holder.avatar instanceof EaseImageView) {
        EaseImageView avatarView = ((EaseImageView) holder.avatar);
        if (avatarOptions.getAvatarShape() != 0)
            avatarView.setShapeType(avatarOptions.getAvatarShape());
        if (avatarOptions.getAvatarBorderWidth() != 0)
            avatarView.setBorderWidth(avatarOptions.getAvatarBorderWidth());
        if (avatarOptions.getAvatarBorderColor() != 0)
            avatarView.setBorderColor(avatarOptions.getAvatarBorderColor());
        if (avatarOptions.getAvatarRadius() != 0)
            avatarView.setRadius(avatarOptions.getAvatarRadius());
    }
    if (conversation.getUnreadMsgCount() > 0) {
        // show unread message count
        holder.unreadLabel.setText(String.valueOf(conversation.getUnreadMsgCount()));
        holder.unreadLabel.setVisibility(View.VISIBLE);
    } else {
        holder.unreadLabel.setVisibility(View.INVISIBLE);
    }
    if (conversation.getAllMsgCount() != 0) {
        // show the content of latest message
        EMMessage lastMessage = conversation.getLastMessage();
        String content = null;
        if (cvsListHelper != null) {
            content = cvsListHelper.onSetItemSecondaryText(lastMessage);
        }
        holder.message.setText(EaseSmileUtils.getSmiledText(getContext(), EaseCommonUtils.getMessageDigest(lastMessage, (this.getContext()))), BufferType.SPANNABLE);
        if (content != null) {
            holder.message.setText(content);
        }
        holder.time.setText(DateUtils.getTimestampString(new Date(lastMessage.getMsgTime())));
        if (lastMessage.direct() == EMMessage.Direct.SEND && lastMessage.status() == EMMessage.Status.FAIL) {
            holder.msgState.setVisibility(View.VISIBLE);
        } else {
            holder.msgState.setVisibility(View.GONE);
        }
    }
    // set property
    holder.name.setTextColor(primaryColor);
    holder.message.setTextColor(secondaryColor);
    holder.time.setTextColor(timeColor);
    if (primarySize != 0)
        holder.name.setTextSize(TypedValue.COMPLEX_UNIT_PX, primarySize);
    if (secondarySize != 0)
        holder.message.setTextSize(TypedValue.COMPLEX_UNIT_PX, secondarySize);
    if (timeSize != 0)
        holder.time.setTextSize(TypedValue.COMPLEX_UNIT_PX, timeSize);
    return convertView;
}
Also used : EMConversation(com.hyphenate.chat.EMConversation) EaseImageView(com.hyphenate.easeui.widget.EaseImageView) EMGroup(com.hyphenate.chat.EMGroup) EMChatRoom(com.hyphenate.chat.EMChatRoom) Date(java.util.Date) EaseAvatarOptions(com.hyphenate.easeui.domain.EaseAvatarOptions) EMMessage(com.hyphenate.chat.EMMessage)

Example 2 with EMGroup

use of com.hyphenate.chat.EMGroup in project SmartCampus by Vegen.

the class EaseChatFragment method setUpView.

protected void setUpView() {
    titleBar.setTitle(toChatUsername);
    if (chatType == EaseConstant.CHATTYPE_SINGLE) {
        // set title
        if (EaseUserUtils.getUserInfo(toChatUsername) != null) {
            EaseUser user = EaseUserUtils.getUserInfo(toChatUsername);
            if (user != null) {
                titleBar.setTitle(user.getNick());
            }
        }
        titleBar.setRightImageResource(R.drawable.ease_mm_title_remove);
    } else {
        titleBar.setRightImageResource(R.drawable.ease_to_group_details_normal);
        if (chatType == EaseConstant.CHATTYPE_GROUP) {
            // group chat
            EMGroup group = EMClient.getInstance().groupManager().getGroup(toChatUsername);
            if (group != null)
                titleBar.setTitle(group.getGroupName());
            // listen the event that user moved out group or group is dismissed
            groupListener = new GroupListener();
            EMClient.getInstance().groupManager().addGroupChangeListener(groupListener);
        } else {
            chatRoomListener = new ChatRoomListener();
            EMClient.getInstance().chatroomManager().addChatRoomChangeListener(chatRoomListener);
            onChatRoomViewCreation();
        }
    }
    if (chatType != EaseConstant.CHATTYPE_CHATROOM) {
        onConversationInit();
        onMessageListInit();
    }
    titleBar.setLeftLayoutClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            onBackPressed();
        }
    });
    titleBar.setRightLayoutClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if (chatType == EaseConstant.CHATTYPE_SINGLE) {
                emptyHistory();
            } else {
                toGroupDetails();
            }
        }
    });
    setRefreshLayoutListener();
    // show forward message if the message is not null
    String forward_msg_id = getArguments().getString("forward_msg_id");
    if (forward_msg_id != null) {
        forwardMessage(forward_msg_id);
    }
}
Also used : EMGroup(com.hyphenate.chat.EMGroup) OnClickListener(android.view.View.OnClickListener) EaseUser(com.hyphenate.easeui.domain.EaseUser) View(android.view.View) ListView(android.widget.ListView) EaseVoiceRecorderView(com.hyphenate.easeui.widget.EaseVoiceRecorderView)

Example 3 with EMGroup

use of com.hyphenate.chat.EMGroup in project SmartCampus by Vegen.

the class EaseChatFragment method sendAtMessage.

/**
 * send @ message, only support group chat message
 * @param content
 */
@SuppressWarnings("ConstantConditions")
private void sendAtMessage(String content) {
    if (chatType != EaseConstant.CHATTYPE_GROUP) {
        EMLog.e(TAG, "only support group chat message");
        return;
    }
    EMMessage message = EMMessage.createTxtSendMessage(content, toChatUsername);
    EMGroup group = EMClient.getInstance().groupManager().getGroup(toChatUsername);
    if (EMClient.getInstance().getCurrentUser().equals(group.getOwner()) && EaseAtMessageHelper.get().containsAtAll(content)) {
        message.setAttribute(EaseConstant.MESSAGE_ATTR_AT_MSG, EaseConstant.MESSAGE_ATTR_VALUE_AT_MSG_ALL);
    } else {
        message.setAttribute(EaseConstant.MESSAGE_ATTR_AT_MSG, EaseAtMessageHelper.get().atListToJsonArray(EaseAtMessageHelper.get().getAtMessageUsernames(content)));
    }
    sendMessage(message);
}
Also used : EMGroup(com.hyphenate.chat.EMGroup) EMMessage(com.hyphenate.chat.EMMessage)

Aggregations

EMGroup (com.hyphenate.chat.EMGroup)3 EMMessage (com.hyphenate.chat.EMMessage)2 View (android.view.View)1 OnClickListener (android.view.View.OnClickListener)1 ListView (android.widget.ListView)1 EMChatRoom (com.hyphenate.chat.EMChatRoom)1 EMConversation (com.hyphenate.chat.EMConversation)1 EaseAvatarOptions (com.hyphenate.easeui.domain.EaseAvatarOptions)1 EaseUser (com.hyphenate.easeui.domain.EaseUser)1 EaseImageView (com.hyphenate.easeui.widget.EaseImageView)1 EaseVoiceRecorderView (com.hyphenate.easeui.widget.EaseVoiceRecorderView)1 Date (java.util.Date)1