package chat.handler.data; import java.util.ArrayList; import java.util.Base64; import java.util.HashMap; import java.util.List; import java.util.Map; import chat.user.User; import chat.user.UserStore; import cn.wildfirechat.proto.WFCMessage; import cn.wildfirechat.proto.WFCMessage.Message; import cn.wildfirechat.proto.WFCMessage.UserResult; public class DataList { private static List friendList; private static List messageList; private static Map userMap; private static WFCMessage.UserResult currentUserInfo; public static long timestamp; static { timestamp = System.currentTimeMillis(); //1. friend list friendList = new ArrayList(); // friendList.add(new FriendData("user000", "user001", "朋友1别名", null, 0, 0, timestamp)); // friendList.add(new FriendData("user000", "user002", "朋友2别名", null, 0, 0, timestamp)); // friendList.add(new FriendData("user000", "user003", "朋友3别名", null, 0, 0, timestamp)); // friendList.add(new FriendData("user000", "user004", "朋友4别名", null, 0, 0, timestamp)); //2. message list messageList = new ArrayList(); WFCMessage.Message message0 = createOneMessage(202101109876543201L, "user001"); messageList.add(message0); // WFCMessage.Message message1 = createOneMessage(202101109876543202L, "user001"); // messageList.add(message1); WFCMessage.Message message2 = createOneMessage(202101109876543203L, "user002"); messageList.add(message2); WFCMessage.Message message3 = createOneMessage(202101109876543204L, "user003"); messageList.add(message3); WFCMessage.Message message4 = createOneMessage(202101109876543204L, "user004"); messageList.add(message4); //3. user list userMap = new HashMap(); // currentUserInfo = createUserInfo("user000", "user000", "usera000", "http://cdn2.wildfirechat.cn/robot.png", "13636388405"); // WFCMessage.UserResult user1 = createUserInfo("user001", "user001", "usera001", "http://cdn2.wildfirechat.cn/robot.png", "13600000001"); // WFCMessage.UserResult user2 = createUserInfo("user002", "user002", "usera002", "http://cdn2.wildfirechat.cn/robot.png", "13600000002"); // WFCMessage.UserResult user3 = createUserInfo("user003", "user003", "usera003", "http://cdn2.wildfirechat.cn/robot.png", "13600000003"); // WFCMessage.UserResult user4 = createUserInfo("user004", "user004", "user004", "http://cdn2.wildfirechat.cn/robot.png", "13600000004"); // userMap.put("user000", currentUserInfo); // userMap.put("user001", user1); // userMap.put("user002", user2); // userMap.put("user003", user3); // userMap.put("user004", user4); } public static List getFriendList() { return friendList; } public static List getMessageList() { return messageList; } public static WFCMessage.UserResult getUserInfo() { return currentUserInfo; } private static Message createOneMessage(long messageId, String userId) { WFCMessage.Message message = null; try { WFCMessage.Message.Builder builder = WFCMessage.Message.newBuilder(); builder.setMessageId(messageId); builder.setFromUser(userId); WFCMessage.Conversation.Builder cb = WFCMessage.Conversation.newBuilder(); cb.setType(0); //cb.setTarget("user000"); cb.setTarget("user000"); cb.setLine(0); builder.setConversation(cb.build()); WFCMessage.MessageContent.Builder contentBuilder = WFCMessage.MessageContent.newBuilder(); contentBuilder.setType(1); String str = "this is " + userId + "say 测试: Hello!!!"; byte[] bytes = str.getBytes(); bytes = Base64.getEncoder().encode(bytes); //ByteString byteString = ByteString.copyFromUtf8(str); //contentBuilder.setSearchableContentBytes(byteString); contentBuilder.setSearchableContent(str); contentBuilder.setMediaType(0); contentBuilder.setPersistFlag(0); contentBuilder.setExpireDuration(0); contentBuilder.setMentionedType(0); WFCMessage.MessageContent messageContent = contentBuilder.build(); builder.setContent(messageContent); builder.setServerTimestamp(timestamp); message = builder.build(); } catch (Exception e) { e.printStackTrace(); } return message; } private static UserResult createUserInfo(String userId, String name, String displayName, String portrait, String mobile) { //1. create user User user = new User(userId); user.setName(name); user.setDisplayName(displayName); user.setPortrait(portrait); user.setMobile(mobile); //2. add to store UserStore.addOne(user); //3. to user result WFCMessage.UserResult userResult = user.toWFCUserResult(); return userResult; } public static UserResult getUser(String uid) { WFCMessage.UserResult user = userMap.get(uid); return user; } }