package cn.rongcloud.im.ui.adapter;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.List;
import java.util.Map;
import cn.rongcloud.im.App;
import cn.rongcloud.im.R;
import cn.rongcloud.im.SealUserInfoManager;
import cn.rongcloud.im.db.DBManager;
import cn.rongcloud.im.db.GroupMember;
import cn.rongcloud.im.db.Groups;
import cn.rongcloud.im.db.GroupsDao;
import cn.rongcloud.im.server.pinyin.CharacterParser;
import cn.rongcloud.im.server.utils.RongGenerate;
import cn.rongcloud.im.server.widget.SelectableRoundedImageView;
import io.rong.imageloader.core.ImageLoader;
/**
* Created by tiankui on 16/10/7.
*/
public class GroupListAdapter extends android.widget.BaseAdapter {
private Map<String, List<GroupMember>> filterGroupNameListMap;
private Map<String, List<GroupMember>> filterGroupMemberNameListMap;
private List<String> filterGroupId;
private Context mContext;
private String mFilterString;
public GroupListAdapter(Context context, List<String> filterGroupId, Map<String, List<GroupMember>> filterGroupNameListMap, Map<String, List<GroupMember>> filterGroupMemberNameListMap, String filterStr) {
this.mContext = context;
this.filterGroupId = filterGroupId;
this.filterGroupNameListMap = filterGroupNameListMap;
this.filterGroupMemberNameListMap = filterGroupMemberNameListMap;
this.mFilterString = filterStr;
}
@Override
public int getCount() {
if (filterGroupId != null) {
return filterGroupId.size();
}
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
GroupViewHolder viewHolder;
String groupId = (String) getItem(position);
Groups groupInfo = DBManager.getInstance().getDaoSession().getGroupsDao().queryBuilder().where(GroupsDao.Properties.GroupsId.eq(groupId)).unique();
if (convertView == null) {
viewHolder = new GroupViewHolder();
convertView = View.inflate(mContext, R.layout.item_filter_group_list, null);
viewHolder.portraitImageView = (SelectableRoundedImageView) convertView.findViewById(R.id.item_iv_group_image);
viewHolder.nameDisplayNameLinearLayout = (LinearLayout) convertView.findViewById(R.id.item_ll_group_contains_member);
viewHolder.displayNameTextView = (TextView) convertView.findViewById(R.id.item_tv_group_name);
viewHolder.nameTextView = (TextView) convertView.findViewById(R.id.item_tv_friend_display_name);
viewHolder.nameSingleTextView = (TextView) convertView.findViewById(R.id.item_tv_group_name_single);
convertView.setTag(viewHolder);
} else {
viewHolder = (GroupViewHolder) convertView.getTag();
}
if (groupInfo != null) {
String portraitUri = SealUserInfoManager.getInstance().getPortraitUri(groupInfo);
ImageLoader.getInstance().displayImage(portraitUri, viewHolder.portraitImageView, App.getOptions());
List<GroupMember> filterGroupMemberNameList = filterGroupMemberNameListMap.get(groupId);
if (filterGroupNameListMap.get(groupId) != null) {
viewHolder.nameSingleTextView.setVisibility(View.VISIBLE);
viewHolder.nameDisplayNameLinearLayout.setVisibility(View.GONE);
viewHolder.nameSingleTextView.setText(CharacterParser.getInstance().getColoredGroupName(mFilterString, groupInfo.getName()));
} else if (filterGroupMemberNameList != null) {
viewHolder.nameDisplayNameLinearLayout.setVisibility(View.VISIBLE);
viewHolder.nameSingleTextView.setVisibility(View.GONE);
viewHolder.displayNameTextView.setText(groupInfo.getName());
viewHolder.nameTextView.setText(CharacterParser.getInstance().getColoredNameList(mFilterString, filterGroupMemberNameList));
}
}
return convertView;
}
@Override
public Object getItem(int position) {
if (filterGroupId == null)
return null;
if (position >= filterGroupId.size())
return null;
return filterGroupId.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
class GroupViewHolder {
SelectableRoundedImageView portraitImageView;
LinearLayout nameDisplayNameLinearLayout;
TextView nameTextView;
TextView displayNameTextView;
TextView nameSingleTextView;
}
}