发房间消息增加部分扩展字段

This commit is contained in:
huangjian
2021-02-23 17:37:14 +08:00
parent 1a6e8ba54f
commit 9c562a76df
2 changed files with 57 additions and 0 deletions

View File

@@ -156,6 +156,7 @@ import com.yizhuan.xchat_android_core.team.bean.TeamInfo;
import com.yizhuan.xchat_android_core.user.UserModel;
import com.yizhuan.xchat_android_core.user.bean.BaseInfo;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_core.utils.ExtensionUtils;
import com.yizhuan.xchat_android_core.utils.LogUtils;
import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils;
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
@@ -2591,6 +2592,15 @@ public final class IMNetEaseManager {
if (chatRoomMessage == null) {
throw new IllegalArgumentException("ChatRoomMessage can't be null!");
}
Map<String, Object> map = chatRoomMessage.getLocalExtension();
if (map == null) map = new HashMap<>();
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
if (userInfo != null) {
ExtensionUtils.setupExtension(map, userInfo);
}
chatRoomMessage.setLocalExtension(map);
chatRoomMessage.setRemoteExtension(map);
return Single.create((SingleOnSubscribe<ChatRoomMessage>) e -> {
NIMChatRoomSDK.getChatRoomService().sendMessage(chatRoomMessage, resend)
.setCallback(new RequestCallback<Void>() {

View File

@@ -0,0 +1,47 @@
package com.yizhuan.xchat_android_core.utils;
import androidx.annotation.NonNull;
import com.yizhuan.xchat_android_core.decoration.car.bean.CarInfo;
import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo;
import com.yizhuan.xchat_android_core.level.UserLevelVo;
import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import java.util.HashMap;
import java.util.Map;
public class ExtensionUtils {
public static void setupExtension(@NonNull Map<String, Object> map, @NonNull UserInfo userInfo) {
HeadWearInfo headWearInfo = userInfo.getUserHeadwear();
UserLevelVo userLevelVo = userInfo.getUserLevelVo();
CarInfo carInfo = userInfo.getCarInfo();
Map<String, Object> valueMap = new HashMap<>();
valueMap = userInfo.toMap(valueMap, userInfo);
if (userLevelVo != null) {
valueMap = userLevelVo.toMap(valueMap);
}
if (carInfo != null) {
valueMap = carInfo.toMap(valueMap, carInfo);
}
if (!TextUtils.isEmptyText(userInfo.getNameplateWord())) {
valueMap.put(UserInfo.NAMEPLATE_WORD, userInfo.getNameplateWord());
}
if (!TextUtils.isEmptyText(userInfo.getNameplatePic())) {
valueMap.put(UserInfo.NAMEPLATE_PIC, userInfo.getNameplatePic());
}
valueMap.put(SuperAdminUtil.PLATFORM_ROLE, userInfo.getPlatformRole());
//多个判断头饰不过期才传pic
if (headWearInfo != null && headWearInfo.getStatus() == HeadWearInfo.STATUS_IN_USED) {
valueMap = headWearInfo.toMap(valueMap);
}
if (valueMap.size() > 0) {
map.put(String.valueOf(userInfo.getUid()), valueMap);
}
}
}