kimi
2021-02-18 0ac056bb5b4c567293482286c80a1b83a467cd33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
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<FriendData> friendList;
    private static List<WFCMessage.Message> messageList;
    private static Map<String, WFCMessage.UserResult> userMap;
    private static WFCMessage.UserResult currentUserInfo;
    public static long timestamp;
    
    static {
        timestamp = System.currentTimeMillis();
        
        //1. friend list
        friendList = new ArrayList<FriendData>();
        
//        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>();
        
        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<String, WFCMessage.UserResult>();
//        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<FriendData> getFriendList() {
        return friendList;
    }
 
    public static List<WFCMessage.Message> 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;
    }
 
}