package com.netease.nim.uikit.team.adapter; import android.content.Context; import android.view.View; import android.view.ViewGroup; import com.netease.nim.uikit.common.adapter.TAdapter; import com.netease.nim.uikit.common.adapter.TAdapterDelegate; import com.netease.nim.uikit.team.viewholder.TeamMemberHolder; import java.util.List; public class TeamMemberAdapter extends TAdapter { /** * 当前GridView显示模式:显示讨论组成员,正在移除讨论组成员 */ public static enum Mode { NORMAL, DELETE } /** * 每个Item的类型:讨论组成员,添加成员,移除成员 */ public static enum TeamMemberItemTag { NORMAL, ADD, DELETE } /** * GridView数据项 */ public static class TeamMemberItem { private TeamMemberItemTag tag; private String tid; private String account; private String desc; public TeamMemberItem(TeamMemberItemTag tag, String tid, String account, String desc) { this.tag = tag; this.tid = tid; this.account = account; this.desc = desc; } public TeamMemberItemTag getTag() { return tag; } public String getTid() { return tid; } public String getDesc() { return desc; } public String getAccount() { return account; } } /** * 群成员移除回调函数 */ public static interface RemoveMemberCallback { public void onRemoveMember(String account); } public static interface AddMemberCallback { public void onAddMember(); } private Context context; private Mode mode = Mode.NORMAL; private RemoveMemberCallback removeMemberCallback; private AddMemberCallback addMemberCallback; public Mode getMode() { return mode; } public void setMode(Mode mode) { this.mode = mode; } public boolean switchMode() { if (getMode() == Mode.DELETE) { setMode(Mode.NORMAL); notifyDataSetChanged(); return true; } return false; } public RemoveMemberCallback getRemoveMemberCallback() { return removeMemberCallback; } public AddMemberCallback getAddMemberCallback() { return addMemberCallback; } public TeamMemberAdapter(Context context, List<?> items, TAdapterDelegate delegate, RemoveMemberCallback removeMemberCallback, AddMemberCallback addMemberCallback) { super(context, items, delegate); this.context = context; this.removeMemberCallback = removeMemberCallback; this.addMemberCallback = addMemberCallback; } private TeamMemberHolder.TeamMemberHolderEventListener teamMemberHolderEventListener; public void setEventListener(TeamMemberHolder.TeamMemberHolderEventListener eventListener) { this.teamMemberHolderEventListener = eventListener; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); if (teamMemberHolderEventListener != null) { ((TeamMemberHolder) view.getTag()).setEventListener(teamMemberHolderEventListener); } return view; } }