package com.netease.nim.uikit.contact_selector.viewholder; import android.graphics.drawable.Drawable; import android.os.Build; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.netease.nim.uikit.NimUIKit; import com.netease.nim.uikit.R; import com.netease.nim.uikit.common.ui.imageview.HeadImageView; import com.netease.nim.uikit.contact.core.item.ContactItem; import com.netease.nim.uikit.contact.core.model.ContactDataAdapter; import com.netease.nim.uikit.contact.core.model.IContact; import com.netease.nim.uikit.contact.core.viewholder.AbsContactViewHolder; import com.netease.nim.uikit.contact_selector.adapter.ContactSelectAdapter; public class ContactsSelectHolder extends AbsContactViewHolder<ContactItem> { private final boolean multi; private HeadImageView image; private TextView nickname; private ImageView select; private Drawable defaultBackground; public ContactsSelectHolder() { this(false); } public ContactsSelectHolder(boolean multi) { this.multi = multi; } @Override public void refresh(ContactDataAdapter adapter, int position, ContactItem item) { if (multi) { boolean disabled = !adapter.isEnabled(position); boolean selected = adapter instanceof ContactSelectAdapter ? ((ContactSelectAdapter) adapter).isSelected(position) : false; this.select.setVisibility(View.VISIBLE); if (disabled) { this.select.setBackgroundResource(R.drawable.nim_contact_checkbox_checked_grey); getView().setBackgroundColor(context.getResources().getColor(R.color.transparent)); } else if (selected) { setBackground(getView(), defaultBackground); this.select.setBackgroundResource(R.drawable.nim_contact_checkbox_checked_green); } else { setBackground(getView(), defaultBackground); this.select.setBackgroundResource(R.drawable.nim_contact_checkbox_unchecked); } } else { this.select.setVisibility(View.GONE); } IContact contact = item.getContact(); this.nickname.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null); this.nickname.setText(contact.getDisplayName()); if (contact.getContactType() == IContact.Type.Friend || contact.getContactType() == IContact.Type.TeamMember) { this.nickname.setText(contact.getDisplayName()); this.image.loadBuddyAvatar(contact.getContactId()); } else if (contact.getContactType() == IContact.Type.Team) { this.image.setImageBitmap(NimUIKit.getUserInfoProvider().getTeamIcon(contact.getContactId())); } this.image.setVisibility(View.VISIBLE); } @Override public View inflate(LayoutInflater inflater) { View view = inflater.inflate(R.layout.nim_contacts_select_item, null); defaultBackground = view.getBackground(); this.image = (HeadImageView) view.findViewById(R.id.img_head); this.nickname = (TextView) view.findViewById(R.id.tv_nickname); this.select = (ImageView) view.findViewById(R.id.imgSelect); return view; } private void setBackground(View view, Drawable drawable) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { view.setBackground(drawable); } else { view.setBackgroundDrawable(drawable); } } }