package com.netease.nim.uikit.contact.core.provider; import com.netease.nim.uikit.contact.core.item.AbsContactItem; import com.netease.nim.uikit.contact.core.item.ItemTypes; import com.netease.nim.uikit.contact.core.query.IContactDataProvider; import com.netease.nim.uikit.contact.core.query.TextQuery; import java.util.ArrayList; import java.util.List; public class ContactDataProvider implements IContactDataProvider { private int[] itemTypes; public ContactDataProvider(int... itemTypes) { this.itemTypes = itemTypes; } @Override public List<AbsContactItem> provide(TextQuery query) { List<AbsContactItem> data = new ArrayList<>(); for (int itemType : itemTypes) { data.addAll(provide(itemType, query)); } return data; } private final List<AbsContactItem> provide(int itemType, TextQuery query) { switch (itemType) { case ItemTypes.FRIEND: return UserDataProvider.provide(query); case ItemTypes.TEAM: case ItemTypes.TEAMS.ADVANCED_TEAM: case ItemTypes.TEAMS.NORMAL_TEAM: return TeamDataProvider.provide(query, itemType); case ItemTypes.MSG: return MsgDataProvider.provide(query); default: return new ArrayList<>(); } } }