@Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { AbsContactItem item = (AbsContactItem) adapter.getItem(position - 1); if (item == null) { return false; } if (NimUIKit.getContactEventListener() != null) { NimUIKit.getContactEventListener() .onItemLongClick(getActivity(), (((ContactItem) item).getContact()).getContactId()); } return true; }
public void buildCache() { // 获取我所有的好友关系 List<Friend> friends = NIMClient.getService(FriendService.class).getFriends(); for (Friend f : friends) { friendMap.put(f.getAccount(), f); } // 获取我所有好友的帐号 List<String> accounts = NIMClient.getService(FriendService.class).getFriendAccounts(); if (accounts == null || accounts.isEmpty()) { return; } // 排除黑名单 List<String> blacks = NIMClient.getService(FriendService.class).getBlackList(); accounts.removeAll(blacks); // 排除掉自己 accounts.remove(NimUIKit.getAccount()); // 确定缓存 friendAccountSet.addAll(accounts); LogUtil.i( UIKitLogTag.FRIEND_CACHE, "build FriendDataCache completed, friends count = " + friendAccountSet.size()); }
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { AbsContactItem item = (AbsContactItem) adapter.getItem(position - 1); if (item == null) { return; } int type = item.getItemType(); if (type == ItemTypes.FUNC && customization != null) { customization.onFuncItemClick(item); return; } if (type == ItemTypes.FRIEND && NimUIKit.getContactEventListener() != null) { NimUIKit.getContactEventListener() .onItemClick(getActivity(), (((ContactItem) item).getContact()).getContactId()); } }
/** 构建头像缓存 */ public static void buildAvatarCache(List<String> accounts) { if (accounts == null || accounts.isEmpty()) { return; } UserInfoProvider.UserInfo userInfo; for (String account : accounts) { userInfo = NimUIKit.getUserInfoProvider().getUserInfo(account); asyncLoadAvatarBitmapToCache(userInfo); } LogUtil.i(TAG, "build avatar cache completed, avatar count =" + accounts.size()); }
/** 邀请群成员 */ @Override public void onAddMember() { ContactSelectActivity.Option option = new ContactSelectActivity.Option(); option.title = "邀请成员"; ArrayList<String> disableAccounts = new ArrayList<>(); disableAccounts.addAll(memberAccounts); option.itemDisableFilter = new ContactIdFilter(disableAccounts); // 限制群成员数量在群容量范围内 int capacity = teamCapacity - memberAccounts.size(); option.maxSelectNum = capacity; option.maxSelectedTip = getString(R.string.reach_team_member_capacity, teamCapacity); NimUIKit.startContactSelect(NormalTeamInfoActivity.this, option, REQUEST_CODE_CONTACT_SELECT); }
@Override protected String getContent() { String content = descOfMsg(); String fromId = recent.getFromAccount(); if (!TextUtils.isEmpty(fromId) && !fromId.equals(NimUIKit.getAccount()) && !(recent.getAttachment() instanceof NotificationAttachment)) { String tid = recent.getContactId(); String teamNick = getTeamUserDisplayName(tid, fromId); content = teamNick + ": " + content; } return content; }
public void requestUserData() { NimUIKit.getContactProvider() .getUserInfoOfMyFriends( new RequestCallback<List<UserInfoProvider.UserInfo>>() { @Override public void onSuccess(List<UserInfoProvider.UserInfo> users) { if (!users.isEmpty()) { refresh(); } listView.onRefreshComplete(); } @Override public void onFailed(int code) { if (code == 400 || code == 401) { if (getActivity() != null) { Toast.makeText( getActivity(), "access_token无效,请重试。code=" + code, Toast.LENGTH_SHORT) .show(); } } else { if (getActivity() != null) { Toast.makeText( getActivity(), "request failed, code=" + code, Toast.LENGTH_SHORT) .show(); } } listView.onRefreshComplete(); } @Override public void onException(Throwable exception) {} }); }
@Override public void onHeadImageViewClick(String account) { NimUIKit.getContactEventListener().onAvatarClick(this, account); }