Search in sources :

Example 1 with EaseAvatarOptions

use of com.hyphenate.easeui.domain.EaseAvatarOptions 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 EaseAvatarOptions

use of com.hyphenate.easeui.domain.EaseAvatarOptions in project SmartCampus by Vegen.

the class EaseChatRow method setUpBaseView.

private void setUpBaseView() {
    // set nickname, avatar and background of bubble
    TextView timestamp = (TextView) findViewById(R.id.timestamp);
    if (timestamp != null) {
        if (position == 0) {
            timestamp.setText(DateUtils.getTimestampString(new Date(message.getMsgTime())));
            timestamp.setVisibility(View.VISIBLE);
        } else {
            // show time stamp if interval with last message is > 30 seconds
            EMMessage prevMessage = (EMMessage) adapter.getItem(position - 1);
            if (prevMessage != null && DateUtils.isCloseEnough(message.getMsgTime(), prevMessage.getMsgTime())) {
                timestamp.setVisibility(View.GONE);
            } else {
                timestamp.setText(DateUtils.getTimestampString(new Date(message.getMsgTime())));
                timestamp.setVisibility(View.VISIBLE);
            }
        }
    }
    if (userAvatarView != null) {
        // set nickname and avatar
        if (message.direct() == Direct.SEND) {
            EaseUserUtils.setUserAvatar(context, EMClient.getInstance().getCurrentUser(), userAvatarView);
        } else {
            EaseUserUtils.setUserAvatar(context, message.getFrom(), userAvatarView);
            EaseUserUtils.setUserNick(message.getFrom(), usernickView);
        }
    }
    if (EMClient.getInstance().getOptions().getRequireDeliveryAck()) {
        if (deliveredView != null) {
            if (message.isDelivered()) {
                deliveredView.setVisibility(View.VISIBLE);
            } else {
                deliveredView.setVisibility(View.INVISIBLE);
            }
        }
    }
    if (EMClient.getInstance().getOptions().getRequireAck()) {
        if (ackedView != null) {
            if (message.isAcked()) {
                if (deliveredView != null) {
                    deliveredView.setVisibility(View.INVISIBLE);
                }
                ackedView.setVisibility(View.VISIBLE);
            } else {
                ackedView.setVisibility(View.INVISIBLE);
            }
        }
    }
    if (itemStyle != null) {
        if (userAvatarView != null) {
            if (itemStyle.isShowAvatar()) {
                userAvatarView.setVisibility(View.VISIBLE);
                EaseAvatarOptions avatarOptions = EaseUI.getInstance().getAvatarOptions();
                if (avatarOptions != null && userAvatarView instanceof EaseImageView) {
                    EaseImageView avatarView = ((EaseImageView) userAvatarView);
                    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());
                }
            } else {
                userAvatarView.setVisibility(View.GONE);
            }
        }
        if (usernickView != null) {
            if (itemStyle.isShowUserNick())
                usernickView.setVisibility(View.VISIBLE);
            else
                usernickView.setVisibility(View.GONE);
        }
        if (bubbleLayout != null) {
            if (message.direct() == Direct.SEND) {
                if (itemStyle.getMyBubbleBg() != null) {
                    bubbleLayout.setBackgroundDrawable(((EaseMessageAdapter) adapter).getMyBubbleBg());
                }
            } else if (message.direct() == Direct.RECEIVE) {
                if (itemStyle.getOtherBubbleBg() != null) {
                    bubbleLayout.setBackgroundDrawable(((EaseMessageAdapter) adapter).getOtherBubbleBg());
                }
            }
        }
    }
}
Also used : EaseImageView(com.hyphenate.easeui.widget.EaseImageView) EaseMessageAdapter(com.hyphenate.easeui.adapter.EaseMessageAdapter) TextView(android.widget.TextView) Date(java.util.Date) EMMessage(com.hyphenate.chat.EMMessage) EaseAvatarOptions(com.hyphenate.easeui.domain.EaseAvatarOptions)

Example 3 with EaseAvatarOptions

use of com.hyphenate.easeui.domain.EaseAvatarOptions in project SmartCampus by Vegen.

the class EaseContactAdapter method getView.

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        holder = new ViewHolder();
        if (res == 0)
            convertView = layoutInflater.inflate(R.layout.ease_row_contact, parent, false);
        else
            convertView = layoutInflater.inflate(res, null);
        holder.avatar = (ImageView) convertView.findViewById(R.id.avatar);
        holder.nameView = (TextView) convertView.findViewById(R.id.name);
        holder.headerView = (TextView) convertView.findViewById(R.id.header);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    EaseUser user = getItem(position);
    if (user == null)
        Log.d("ContactAdapter", position + "");
    String username = user.getUsername();
    String header = user.getInitialLetter();
    if (position == 0 || header != null && !header.equals(getItem(position - 1).getInitialLetter())) {
        if (TextUtils.isEmpty(header)) {
            holder.headerView.setVisibility(View.GONE);
        } else {
            holder.headerView.setVisibility(View.VISIBLE);
            holder.headerView.setText(header);
        }
    } else {
        holder.headerView.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());
    }
    EaseUserUtils.setUserNick(username, holder.nameView);
    EaseUserUtils.setUserAvatar(getContext(), username, holder.avatar);
    if (primaryColor != 0)
        holder.nameView.setTextColor(primaryColor);
    if (primarySize != 0)
        holder.nameView.setTextSize(TypedValue.COMPLEX_UNIT_PX, primarySize);
    if (initialLetterBg != null)
        holder.headerView.setBackgroundDrawable(initialLetterBg);
    if (initialLetterColor != 0)
        holder.headerView.setTextColor(initialLetterColor);
    return convertView;
}
Also used : EaseImageView(com.hyphenate.easeui.widget.EaseImageView) EaseUser(com.hyphenate.easeui.domain.EaseUser) EaseAvatarOptions(com.hyphenate.easeui.domain.EaseAvatarOptions)

Aggregations

EaseAvatarOptions (com.hyphenate.easeui.domain.EaseAvatarOptions)3 EaseImageView (com.hyphenate.easeui.widget.EaseImageView)3 EMMessage (com.hyphenate.chat.EMMessage)2 Date (java.util.Date)2 TextView (android.widget.TextView)1 EMChatRoom (com.hyphenate.chat.EMChatRoom)1 EMConversation (com.hyphenate.chat.EMConversation)1 EMGroup (com.hyphenate.chat.EMGroup)1 EaseMessageAdapter (com.hyphenate.easeui.adapter.EaseMessageAdapter)1 EaseUser (com.hyphenate.easeui.domain.EaseUser)1