@ProviderTag( messageContent = MultiCallEndMessage.class, showPortrait = false,
@Override public boolean onMessageItemLongClick(Context context, UIMessage message) { Message[] messages = new Message[1]; messages[0] = message.getMessage(); if (message.getConversationType().equals(Conversation.ConversationType.PRIVATE)) { RongIM.getInstance().deleteRemoteMessages(message.getConversationType(), message.getTargetId(), messages, null); } else { RongIM.getInstance().deleteMessages(new int[]{message.getMessageId()}, null); } return false; } }).build();
@Override protected void bindView(View v, int position, UIConversation data) { if (data.getConversationType().equals(Conversation.ConversationType.DISCUSSION)) data.setUnreadType(UIConversation.UnreadRemindType.REMIND_ONLY); super.bindView(v, position, data); } }
private GroupNotificationMessageData jsonToBean(String data) { GroupNotificationMessageData dataEntity = new GroupNotificationMessageData(); try { JSONObject jsonObject = new JSONObject(data); if (jsonObject.has("operatorNickname")) { dataEntity.setOperatorNickname(jsonObject.getString("operatorNickname")); dataEntity.setTargetGroupName(jsonObject.getString("targetGroupName")); dataEntity.setTimestamp(jsonObject.getLong("timestamp")); dataEntity.getTargetUserIds().add(jsonArray.getString(i)); JSONArray jsonArray = jsonObject.getJSONArray("targetUserDisplayNames"); for (int i = 0; i < jsonArray.length(); i++) { dataEntity.getTargetUserDisplayNames().add(jsonArray.getString(i)); dataEntity.setOldCreatorId(jsonObject.getString("oldCreatorId")); dataEntity.setOldCreatorName(jsonObject.getString("oldCreatorName")); dataEntity.setNewCreatorId(jsonObject.getString("newCreatorId")); dataEntity.setNewCreatorName(jsonObject.getString("newCreatorName"));
return; if (data.getMessageDirection() == Message.MessageDirection.SEND) { holder.message.setBackgroundResource(R.drawable.rc_ic_bubble_right); } else {
@Override public void onItemClick(View view, int position, CallSTerminateMessage content, UIMessage message) { if (content.getReason() == OTHER_DEVICE_HAD_ACCEPTED){ return; } RongCallSession profile = RongCallClient.getInstance().getCallSession(); if (profile != null && profile.getActiveTime() > 0) { Toast.makeText(view.getContext(), profile.getMediaType() == RongCallCommon.CallMediaType.AUDIO ? view.getContext().getString(R.string.rc_voip_call_audio_start_fail) : view.getContext().getString(R.string.rc_voip_call_video_start_fail), Toast.LENGTH_SHORT) .show(); return; } RongCallCommon.CallMediaType mediaType = content.getMediaType(); String action = null; if (mediaType.equals(RongCallCommon.CallMediaType.VIDEO)) { action = RongVoIPIntent.RONG_INTENT_ACTION_VOIP_SINGLEVIDEO; } else { action = RongVoIPIntent.RONG_INTENT_ACTION_VOIP_SINGLEAUDIO; } Intent intent = new Intent(action); intent.setPackage(view.getContext().getPackageName()); intent.putExtra("conversationType", message.getConversationType().getName().toLowerCase(Locale.US)); intent.putExtra("targetId", message.getTargetId()); intent.putExtra("callAction", RongCallAction.ACTION_OUTGOING_CALL.getName()); view.getContext().startActivity(intent); }
@Override public void onOptionsItemClicked(int which) { if (which == 0) { @SuppressWarnings("deprecation") ClipboardManager clipboard = (ClipboardManager) view.getContext().getSystemService(Context.CLIPBOARD_SERVICE); clipboard.setText(((TestMessage) content).getContent()); } else if (which == 1) { RongIM.getInstance().deleteMessages(new int[] {message.getMessageId()}, null); } else if (which == 2) { RongIM.getInstance().recallMessage(message.getMessage(), getPushContent(view.getContext(), message)); } } }).show();
@Override public void onOptionsItemClicked(int which) { if (which == 0) RongIM.getInstance().deleteMessages(new int[] {message.getMessageId()}, null); } }).show();
@Override public boolean onConversationClick(Context context, View view, UIConversation uiConversation) { MessageContent messageContent = uiConversation.getMessageContent(); if (messageContent instanceof ContactNotificationMessage) { ContactNotificationMessage contactNotificationMessage = (ContactNotificationMessage) messageContent; if (contactNotificationMessage.getOperation().equals("AcceptResponse")) { // 被加方同意请求后 if (contactNotificationMessage.getExtra() != null) { ContactNotificationMessageData bean = null; try { bean = JsonMananger.jsonToBean(contactNotificationMessage.getExtra(), ContactNotificationMessageData.class); } catch (Exception e) { e.printStackTrace(); } RongIM.getInstance().startPrivateChat(context, uiConversation.getConversationSenderId(), bean.getSourceUserNickname()); } } else { context.startActivity(new Intent(context, NewFriendListActivity.class)); } return true; } return false; }
@Override public void onGotMemberList(ArrayList<String> members) { if (mAdapter != null) { if (members != null && members.size() > 0) { mAdapter.setAllMembers(members); allMembers=members; mAdapter.notifyDataSetChanged(); /**转换昵称***/ for (int i = 0; i < allMembers.size(); i++) { String userNickName=allMembers.get(i); userInfo = RongContext.getInstance().getUserInfoFromCache(userNickName); String displayName = ""; if (conversationType != null && conversationType.equals(Conversation.ConversationType.GROUP)) { groupUserInfo = RongUserInfoManager.getInstance().getGroupUserInfo(groupId, userNickName); if (groupUserInfo != null && !TextUtils.isEmpty(groupUserInfo.getNickname())) { displayName = groupUserInfo.getNickname(); userNickName=displayName; } } if (TextUtils.isEmpty(displayName)) { if (userInfo != null) { userNickName=userInfo.getName(); } } tempNickmembers.put(allMembers.get(i),userNickName); } } } } });
@Override public void getContactCardInfoCallback(List<? extends UserInfo> list) { if (list != null && list.size() > 0) { UserInfo userInfo = list.get(0); if (userInfo != null && userInfo.getPortraitUri() != null) { /* 如果名片发送的推荐人头像信息,与本地数据库的对应头像信息不一致, 则优先显示本地数据库的对应头像信息 */ if (TextUtils.isEmpty(content.getImgUrl()) || !content.getImgUrl().equals(userInfo.getPortraitUri().toString())) { viewHolder.mImage.setAvatar(userInfo.getPortraitUri()); ((ContactMessage) (message.getContent())) .setImgUrl(userInfo.getPortraitUri().toString()); } // 如果本端设置了该用户信息的别名(备注、昵称),优先显示这个别名 if (!TextUtils.isEmpty(content.getName()) && !content.getName().equals(userInfo.getName())) { viewHolder.mName.setText(userInfo.getName()); } } } } });
@Override public void onSuccess(int requestCode, Object result) { if (result != null) { GetGroupMemberResponse res = (GetGroupMemberResponse) result; if (res.getCode() == 200) { List<GetGroupMemberResponse.ResultEntity> mGroupMember = res.getResult(); for (GetGroupMemberResponse.ResultEntity g : mGroupMember) { if (g.getUser().getId().equals(userId)) { if (RongIM.getInstance() != null && RongIM.getInstance().getRongIMClient() != null) { RongIM.getInstance().refreshGroupUserInfoCache(new GroupUserInfo(groupId, userId, g.getDisplayName())); setGroupUserInfo(new GroupUserInfo(groupId, userId, g.getDisplayName())); } } } } } }
@ProviderTag(messageContent = ContactNotificationMessage.class, showPortrait = false, centerInHorizontal = true, showProgress = false, showSummaryWithName = false) public class ContactNotificationMessageProvider extends IContainerItemProvider.MessageProvider<ContactNotificationMessage> { @Override
TestMessageProvider.ViewHolder holder = (TestMessageProvider.ViewHolder) v.getTag(); if (data.getMessageDirection() == Message.MessageDirection.SEND) { holder.message.setBackgroundResource(io.rong.imkit.R.drawable.rc_ic_bubble_right); } else {
@Override public void onOptionsItemClicked(int which) { if (which == 0) RongIM.getInstance().deleteMessages(new int[]{message.getMessageId()}, null); } }).show();
@Override protected void bindView(View v, int position, UIConversation data) { if (data != null) { if (data.getConversationType().equals(Conversation.ConversationType.DISCUSSION)) data.setUnreadType(UIConversation.UnreadRemindType.REMIND_ONLY); } super.bindView(v, position, data); } }
@ProviderTag(messageContent = ContactMessage.class, showProgress = false, showReadState = true) public class ContactMessageItemProvider extends IContainerItemProvider.MessageProvider<ContactMessage> { private final static String TAG = "ContactMessageItemProvider";
if (message.getMessageDirection() == Message.MessageDirection.RECEIVE) viewHolder.mLayout.setBackgroundResource(R.drawable.rc_ic_bubble_left_file); else
@ProviderTag(messageContent = TestMessage.class, showReadState = true) public class TestMessageProvider extends IContainerItemProvider.MessageProvider<TestMessage>{ private static final String TAG = "TestMessageItemProvider";
@ProviderTag(messageContent = CallSTerminateMessage.class, showSummaryWithName = false, showProgress = false, showWarning = false, showReadState = false) public class CallEndMessageItemProvider extends IContainerItemProvider.MessageProvider<CallSTerminateMessage> { private static class ViewHolder {