Search in sources :

Example 1 with EMChatRoom

use of com.hyphenate.chat.EMChatRoom 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 EMChatRoom

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

the class EaseChatFragment method onChatRoomViewCreation.

protected void onChatRoomViewCreation() {
    final ProgressDialog pd = ProgressDialog.show(getActivity(), "", "Joining......");
    EMClient.getInstance().chatroomManager().joinChatRoom(toChatUsername, new EMValueCallBack<EMChatRoom>() {

        @Override
        public void onSuccess(final EMChatRoom value) {
            getActivity().runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    if (getActivity().isFinishing() || !toChatUsername.equals(value.getId()))
                        return;
                    pd.dismiss();
                    EMChatRoom room = EMClient.getInstance().chatroomManager().getChatRoom(toChatUsername);
                    if (room != null) {
                        titleBar.setTitle(room.getName());
                        EMLog.d(TAG, "join room success : " + room.getName());
                    } else {
                        titleBar.setTitle(toChatUsername);
                    }
                    onConversationInit();
                    onMessageListInit();
                }
            });
        }

        @Override
        public void onError(final int error, String errorMsg) {
            // TODO Auto-generated method stub
            EMLog.d(TAG, "join room failure : " + error);
            getActivity().runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    pd.dismiss();
                }
            });
            getActivity().finish();
        }
    });
}
Also used : ProgressDialog(android.app.ProgressDialog) EMChatRoom(com.hyphenate.chat.EMChatRoom)

Aggregations

EMChatRoom (com.hyphenate.chat.EMChatRoom)2 ProgressDialog (android.app.ProgressDialog)1 EMConversation (com.hyphenate.chat.EMConversation)1 EMGroup (com.hyphenate.chat.EMGroup)1 EMMessage (com.hyphenate.chat.EMMessage)1 EaseAvatarOptions (com.hyphenate.easeui.domain.EaseAvatarOptions)1 EaseImageView (com.hyphenate.easeui.widget.EaseImageView)1 Date (java.util.Date)1