From d8670a0f6684bf5ffd38fa43f084720ed3b23994 Mon Sep 17 00:00:00 2001 From: imhao183 Date: Mon, 17 May 2021 19:42:49 +0800 Subject: [PATCH] =?UTF-8?q?group=20member=E5=92=8Cfriend=20request?= =?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0extra=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..._add_group_member_friend_request_extra.sql | 2 + ..._add_group_member_friend_request_extra.sql | 2 + .../action/admin/GetGroupMembersAction.java | 1 + .../action/robot/GetGroupMembersAction.java | 1 + .../io/moquette/imhandler/AddGroupMember.java | 2 +- .../imhandler/CreateGroupHandler.java | 2 +- .../moquette/persistence/DatabaseStore.java | 33 +- .../persistence/MemoryMessagesStore.java | 49 +- .../java/io/moquette/spi/IMessagesStore.java | 4 +- .../cn/wildfirechat/common/ErrorCode.java | 3 +- .../pojos/InputAddGroupMember.java | 3 + .../wildfirechat/pojos/InputCreateGroup.java | 3 + .../wildfirechat/pojos/PojoGroupMember.java | 9 + .../cn/wildfirechat/proto/ProtoConstants.java | 4 + .../cn/wildfirechat/proto/WFCMessage.java | 1106 ++++++++++++++--- 15 files changed, 1038 insertions(+), 186 deletions(-) create mode 100755 broker/migrate/h2/V39__add_group_member_friend_request_extra.sql create mode 100755 broker/migrate/mysql/V44__add_group_member_friend_request_extra.sql diff --git a/broker/migrate/h2/V39__add_group_member_friend_request_extra.sql b/broker/migrate/h2/V39__add_group_member_friend_request_extra.sql new file mode 100755 index 00000000..2c24560b --- /dev/null +++ b/broker/migrate/h2/V39__add_group_member_friend_request_extra.sql @@ -0,0 +1,2 @@ +alter table `t_group_member` add column `_extra` TEXT DEFAULT NULL; +alter table `t_friend_request` add column `_extra` TEXT DEFAULT NULL; diff --git a/broker/migrate/mysql/V44__add_group_member_friend_request_extra.sql b/broker/migrate/mysql/V44__add_group_member_friend_request_extra.sql new file mode 100755 index 00000000..2c24560b --- /dev/null +++ b/broker/migrate/mysql/V44__add_group_member_friend_request_extra.sql @@ -0,0 +1,2 @@ +alter table `t_group_member` add column `_extra` TEXT DEFAULT NULL; +alter table `t_friend_request` add column `_extra` TEXT DEFAULT NULL; diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetGroupMembersAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetGroupMembersAction.java index c4dac3b5..438d053d 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetGroupMembersAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetGroupMembersAction.java @@ -62,6 +62,7 @@ public class GetGroupMembersAction extends AdminAction { pm.setMember_id(member.getMemberId()); pm.setAlias(member.getAlias()); pm.setType(member.getType()); + pm.setExtra(member.getExtra()); out.getMembers().add(pm); } result = RestResult.ok(out); diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/robot/GetGroupMembersAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/robot/GetGroupMembersAction.java index afea25b5..8ac60fea 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/robot/GetGroupMembersAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/robot/GetGroupMembersAction.java @@ -66,6 +66,7 @@ public class GetGroupMembersAction extends RobotAction { pm.setMember_id(member.getMemberId()); pm.setAlias(member.getAlias()); pm.setType(member.getType()); + pm.setExtra(member.getExtra()); out.getMembers().add(pm); } if(!isInGroup) { diff --git a/broker/src/main/java/io/moquette/imhandler/AddGroupMember.java b/broker/src/main/java/io/moquette/imhandler/AddGroupMember.java index 4f62598f..4116513e 100644 --- a/broker/src/main/java/io/moquette/imhandler/AddGroupMember.java +++ b/broker/src/main/java/io/moquette/imhandler/AddGroupMember.java @@ -22,7 +22,7 @@ public class AddGroupMember extends GroupHandler 0) { sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), request.getNotifyContent()); diff --git a/broker/src/main/java/io/moquette/imhandler/CreateGroupHandler.java b/broker/src/main/java/io/moquette/imhandler/CreateGroupHandler.java index 370f9c15..979e02a1 100644 --- a/broker/src/main/java/io/moquette/imhandler/CreateGroupHandler.java +++ b/broker/src/main/java/io/moquette/imhandler/CreateGroupHandler.java @@ -32,7 +32,7 @@ public class CreateGroupHandler extends GroupHandler 0 && (isAdmin || m_messagesStore.isAllowClientCustomGroupNotification())) { diff --git a/broker/src/main/java/io/moquette/persistence/DatabaseStore.java b/broker/src/main/java/io/moquette/persistence/DatabaseStore.java index afb4e4db..79e6708c 100644 --- a/broker/src/main/java/io/moquette/persistence/DatabaseStore.java +++ b/broker/src/main/java/io/moquette/persistence/DatabaseStore.java @@ -332,7 +332,7 @@ public class DatabaseStore { String sql = "select `_mid`" + ", `_alias`" + ", `_type`" + - ", `_dt`, `_create_dt` from t_group_member where _gid = ?"; + ", `_dt`, `_create_dt`, `_extra` from t_group_member where _gid = ?"; statement = connection.prepareStatement(sql); statement.setString(1, groupId); @@ -362,6 +362,10 @@ public class DatabaseStore { longValue = rs.getLong(index++); builder.setCreateDt(longValue); + value = rs.getString(index++); + value = (value == null ? "" : value); + builder.setExtra(value); + WFCMessage.GroupMember member = builder.build(); groupMembers.put(groupId, member); } @@ -442,7 +446,7 @@ public class DatabaseStore { try { connection = DBUtil.getConnection(); - String sql = "select `_uid`, `_friend_uid`, `_reason`, `_status`, `_dt`, `_from_read_status`, `_to_read_status` from t_friend_request"; + String sql = "select `_uid`, `_friend_uid`, `_reason`, `_status`, `_dt`, `_from_read_status`, `_to_read_status`, `_extra` from t_friend_request"; statement = connection.prepareStatement(sql); int index; @@ -476,6 +480,9 @@ public class DatabaseStore { intvalue = rs.getInt(index++); builder.setToReadStatus(intvalue > 0); + value = rs.getString(index++); + value = (value == null ? "" : value); + builder.setExtra(value); WFCMessage.FriendRequest request = builder.build(); requestMap.put(request.getFromUid(), request); @@ -1713,11 +1720,12 @@ public class DatabaseStore { ", `_mid`" + ", `_alias`" + ", `_type`" + - ", `_dt`, `_create_dt`) values(?, ?, ?, ?, ?, ?)" + + ", `_dt`, `_create_dt`, `_extra`) values(?, ?, ?, ?, ?, ?,?)" + " ON DUPLICATE KEY UPDATE " + "`_alias` = ?," + "`_type` = ?," + - "`_dt` = ?"; + "`_dt` = ?," + + "`_extra` = ?"; if(updateCreateTime) { sql += ", `_create_dt` = ?"; } @@ -1738,9 +1746,11 @@ public class DatabaseStore { statement.setInt(index++, member.getType()); statement.setLong(index++, dt); statement.setLong(index++, member.getCreateDt()); + statement.setString(index++, member.getExtra()); statement.setString(index++, member.getAlias()); statement.setInt(index++, member.getType()); statement.setLong(index++, dt); + statement.setString(index++, member.getExtra()); if(updateCreateTime) { statement.setLong(index++, dt); } @@ -2680,14 +2690,14 @@ public class DatabaseStore { ", `_status`" + ", `_dt`" + ", `_from_read_status`" + - ", `_to_read_status` from t_friend_request where `_uid` = ? UNION ALL " + + ", `_to_read_status`, `_extra` from t_friend_request where `_uid` = ? UNION ALL " + "select `_uid`" + ", `_friend_uid`" + ", `_reason`" + ", `_status`" + ", `_dt`" + ", `_from_read_status`" + - ", `_to_read_status` from t_friend_request where `_friend_uid` = ?"; + ", `_to_read_status`, `_extra` from t_friend_request where `_friend_uid` = ?"; statement = connection.prepareStatement(sql); int index = 1; @@ -2725,6 +2735,10 @@ public class DatabaseStore { b = rs.getBoolean(index++); builder.setToReadStatus(b); + value = rs.getString(index++); + value = (value == null ? "" : value); + builder.setExtra(value); + out.add(builder.build()); } return out; @@ -2772,13 +2786,14 @@ public class DatabaseStore { PreparedStatement statement = null; try { connection = DBUtil.getConnection(); - String sql = "insert into t_friend_request (`_uid`, `_friend_uid`, `_reason`, `_status`, `_dt`, `_from_read_status`, `_to_read_status`) values(?, ?, ?, ?, ?, ?, ?)" + + String sql = "insert into t_friend_request (`_uid`, `_friend_uid`, `_reason`, `_status`, `_dt`, `_from_read_status`, `_to_read_status`, `_extra`) values(?, ?, ?, ?, ?, ?, ?, ?)" + " ON DUPLICATE KEY UPDATE " + "`_reason` = ?," + "`_status` = ?," + "`_dt` = ?," + "`_from_read_status` = ?," + - "`_to_read_status` = ?"; + "`_to_read_status` = ?," + + "`_extra` = ?"; statement = connection.prepareStatement(sql); int index = 1; @@ -2789,12 +2804,14 @@ public class DatabaseStore { statement.setLong(index++, request.getUpdateDt()); statement.setInt(index++, request.getFromReadStatus() ? 1 : 0); statement.setInt(index++, request.getToReadStatus() ? 1 : 0); + statement.setString(index++, request.getExtra()); statement.setString(index++, request.getReason()); statement.setInt(index++, request.getStatus()); statement.setLong(index++, request.getUpdateDt()); statement.setInt(index++, request.getFromReadStatus() ? 1 : 0); statement.setInt(index++, request.getToReadStatus() ? 1 : 0); + statement.setString(index++, request.getExtra()); int count = statement.executeUpdate(); LOG.info("Update rows {}", count); } catch (SQLException e) { diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index 1635aec1..39162bb0 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -934,7 +934,7 @@ public class MemoryMessagesStore implements IMessagesStore { } @Override - public WFCMessage.GroupInfo createGroup(String fromUser, WFCMessage.GroupInfo groupInfo, List memberList, boolean isAdmin) { + public WFCMessage.GroupInfo createGroup(String fromUser, WFCMessage.GroupInfo groupInfo, List memberList, String memberExtra, boolean isAdmin) { HazelcastInstance hzInstance = m_Server.getHazelcastInstance(); IMap mIMap = hzInstance.getMap(GROUPS_MAP); @@ -956,19 +956,39 @@ public class MemoryMessagesStore implements IMessagesStore { List updatedMemberList = new ArrayList<>(); boolean hasOwnerMember = false; for (WFCMessage.GroupMember member : memberList) { + WFCMessage.GroupMember.Builder builder = member.toBuilder(); + builder.setUpdateDt(dt).setCreateDt(dt); if (member.getMemberId().equals(owner)) { - member = member.toBuilder().setUpdateDt(dt).setCreateDt(dt).setType(ProtoConstants.GroupMemberType.GroupMemberType_Owner).build(); + builder.setType(ProtoConstants.GroupMemberType.GroupMemberType_Owner); hasOwnerMember = true; } else { - member = member.toBuilder().setUpdateDt(dt).setCreateDt(dt).build(); + if (isAdmin) { + if (member.getType() == GroupMemberType_Owner) { + builder.setType(GroupMemberType_Normal); + LOG.error("group member conflicted, group info owner is {}, and group member {} type is owner, set the member to normal member", owner, member.getMemberId()); + } + } else { + builder.setType(GroupMemberType_Normal); + } } + + if(!StringUtil.isNullOrEmpty(memberExtra)) { + builder.setExtra(memberExtra); + } + + member = builder.build(); groupMembers.put(groupId, member); updatedMemberList.add(member); dt++; } if(!hasOwnerMember && !StringUtil.isNullOrEmpty(owner)) { - WFCMessage.GroupMember member = WFCMessage.GroupMember.newBuilder().setMemberId(owner).setUpdateDt(dt).setCreateDt(dt).setType(ProtoConstants.GroupMemberType.GroupMemberType_Owner).build(); + WFCMessage.GroupMember member; + if(!StringUtil.isNullOrEmpty(memberExtra)) { + member = WFCMessage.GroupMember.newBuilder().setMemberId(owner).setExtra(memberExtra).setUpdateDt(dt).setCreateDt(dt).setType(ProtoConstants.GroupMemberType.GroupMemberType_Owner).build(); + } else { + member = WFCMessage.GroupMember.newBuilder().setMemberId(owner).setUpdateDt(dt).setCreateDt(dt).setType(ProtoConstants.GroupMemberType.GroupMemberType_Owner).build(); + } groupMembers.put(groupId, member); updatedMemberList.add(member); } @@ -1112,7 +1132,7 @@ public class MemoryMessagesStore implements IMessagesStore { } @Override - public ErrorCode addGroupMembers(String operator, boolean isAdmin, String groupId, List memberList) { + public ErrorCode addGroupMembers(String operator, boolean isAdmin, String groupId, List memberList, String extra) { HazelcastInstance hzInstance = m_Server.getHazelcastInstance(); IMap mIMap = hzInstance.getMap(GROUPS_MAP); @@ -1169,18 +1189,24 @@ public class MemoryMessagesStore implements IMessagesStore { List tmp = new ArrayList<>(); ArrayList newInviteUsers = new ArrayList<>(); for (WFCMessage.GroupMember member : memberList) { + WFCMessage.GroupMember.Builder builder = member.toBuilder(); + builder.setUpdateDt(updateDt).setCreateDt(updateDt); if (member.getMemberId().equals(groupInfo.getOwner())) { - member = member.toBuilder().setType(GroupMemberType_Owner).setUpdateDt(updateDt).setCreateDt(updateDt).build(); + builder.setType(GroupMemberType_Owner).build(); } else { if (isAdmin) { - if (member.getType() != GroupMemberType_Owner) - member = member.toBuilder().setUpdateDt(updateDt).setCreateDt(updateDt).build(); - else - return ErrorCode.INVALID_PARAMETER; + if (member.getType() == GroupMemberType_Owner) { + builder.setType(GroupMemberType_Normal); + LOG.error("group member conflicted, group info owner is {}, and group member {} type is owner, set the member to normal member", groupInfo.getOwner(), member.getMemberId()); + } } else { - member = member.toBuilder().setType(GroupMemberType_Normal).setUpdateDt(updateDt).setCreateDt(updateDt).build(); + builder.setType(GroupMemberType_Normal); } } + if(!StringUtil.isNullOrEmpty(extra)) { + builder.setExtra(extra); + } + member = builder.build(); tmp.add(member); newInviteUsers.add(member.getMemberId()); updateDt++; @@ -2650,6 +2676,7 @@ public class MemoryMessagesStore implements IMessagesStore { .setFromUid(userId) .setToUid(request.getTargetUid()) .setReason(request.getReason()) + .setExtra(request.getExtra()) .setStatus(ProtoConstants.FriendRequestStatus.RequestStatus_Sent) .setToReadStatus(false) .setUpdateDt(System.currentTimeMillis()) diff --git a/broker/src/main/java/io/moquette/spi/IMessagesStore.java b/broker/src/main/java/io/moquette/spi/IMessagesStore.java index 6653fe75..713aa6e8 100755 --- a/broker/src/main/java/io/moquette/spi/IMessagesStore.java +++ b/broker/src/main/java/io/moquette/spi/IMessagesStore.java @@ -106,8 +106,8 @@ public interface IMessagesStore { WFCMessage.PullMessageResult fetchMessage(String user, String exceptClientId, long fromMessageId, int pullType); WFCMessage.PullMessageResult loadRemoteMessages(String user, WFCMessage.Conversation conversation, long beforeUid, int count); long insertUserMessages(String sender, int conversationType, String target, int line, int messageContentType, String userId, long messageId); - WFCMessage.GroupInfo createGroup(String operator, WFCMessage.GroupInfo groupInfo, List memberList, boolean isAdmin); - ErrorCode addGroupMembers(String operator, boolean isAdmin, String groupId, List memberList); + WFCMessage.GroupInfo createGroup(String operator, WFCMessage.GroupInfo groupInfo, List memberList, String memberExtra, boolean isAdmin); + ErrorCode addGroupMembers(String operator, boolean isAdmin, String groupId, List memberList, String extra); ErrorCode kickoffGroupMembers(String operator, boolean isAdmin, String groupId, List memberList); ErrorCode quitGroup(String operator, String groupId); void clearUserGroups(String userId); diff --git a/common/src/main/java/cn/wildfirechat/common/ErrorCode.java b/common/src/main/java/cn/wildfirechat/common/ErrorCode.java index 81625c6b..b5fe0bd6 100755 --- a/common/src/main/java/cn/wildfirechat/common/ErrorCode.java +++ b/common/src/main/java/cn/wildfirechat/common/ErrorCode.java @@ -40,7 +40,8 @@ public enum ErrorCode { ERROR_CODE_ALREADY_FRIENDS(23, "already friends"), - ERROR_CODE_RECALL_TIME_EXPIRED(24, "recall time expired"), + ERROR_CODE_RECALL_TIME_EXPIRED(24, "time expired"), + ERROR_CODE_CONFERENCE_ROOM_NOT_EXIST(60, "conference room not exist"), ERROR_CODE_API_NOT_SIGNED(239, "api not signed or sign parameter not completion"), ERROR_CODE_GROUP_EXCEED_MAX_MEMBER_COUNT(240, "group exceed max member count"), diff --git a/common/src/main/java/cn/wildfirechat/pojos/InputAddGroupMember.java b/common/src/main/java/cn/wildfirechat/pojos/InputAddGroupMember.java index 5a839eee..4b39f262 100755 --- a/common/src/main/java/cn/wildfirechat/pojos/InputAddGroupMember.java +++ b/common/src/main/java/cn/wildfirechat/pojos/InputAddGroupMember.java @@ -47,6 +47,9 @@ public class InputAddGroupMember extends InputGroupBase { groupMemberBuilder.setAlias(pojoGroupMember.getAlias()); } groupMemberBuilder.setType(pojoGroupMember.getType()); + if(!StringUtil.isNullOrEmpty(pojoGroupMember.getExtra())) { + groupMemberBuilder.setExtra(pojoGroupMember.getExtra()); + } addGroupBuilder.addAddedMember(groupMemberBuilder); } diff --git a/common/src/main/java/cn/wildfirechat/pojos/InputCreateGroup.java b/common/src/main/java/cn/wildfirechat/pojos/InputCreateGroup.java index 775ec27d..2e2f02b3 100755 --- a/common/src/main/java/cn/wildfirechat/pojos/InputCreateGroup.java +++ b/common/src/main/java/cn/wildfirechat/pojos/InputCreateGroup.java @@ -67,6 +67,9 @@ public class InputCreateGroup extends InputGroupBase { groupMemberBuilder.setAlias(pojoGroupMember.getAlias()); } groupMemberBuilder.setType(pojoGroupMember.getType()); + if(!StringUtil.isNullOrEmpty(pojoGroupMember.getExtra())) { + groupMemberBuilder.setExtra(pojoGroupMember.extra); + } groupBuilder.addMembers(groupMemberBuilder); } diff --git a/common/src/main/java/cn/wildfirechat/pojos/PojoGroupMember.java b/common/src/main/java/cn/wildfirechat/pojos/PojoGroupMember.java index 7b593084..24690c09 100644 --- a/common/src/main/java/cn/wildfirechat/pojos/PojoGroupMember.java +++ b/common/src/main/java/cn/wildfirechat/pojos/PojoGroupMember.java @@ -12,6 +12,7 @@ public class PojoGroupMember { String member_id; String alias; int type; + String extra; public String getMember_id() { return member_id; @@ -36,4 +37,12 @@ public class PojoGroupMember { public void setType(int type) { this.type = type; } + + public String getExtra() { + return extra; + } + + public void setExtra(String extra) { + this.extra = extra; + } } diff --git a/common/src/main/java/cn/wildfirechat/proto/ProtoConstants.java b/common/src/main/java/cn/wildfirechat/proto/ProtoConstants.java index 757e57c3..695fea38 100644 --- a/common/src/main/java/cn/wildfirechat/proto/ProtoConstants.java +++ b/common/src/main/java/cn/wildfirechat/proto/ProtoConstants.java @@ -94,6 +94,10 @@ public class ProtoConstants { int Modify_Group_JoinType = 4; int Modify_Group_PrivateChat = 5; int Modify_Group_Searchable = 6; + //仅专业版支持 + int Modify_Group_History_Message = 7; + //仅专业版的server api支持 + int Modify_Group_Max_Member_Count = 8; } //ModifyGroupInfoRequest -> type diff --git a/common/src/main/java/cn/wildfirechat/proto/WFCMessage.java b/common/src/main/java/cn/wildfirechat/proto/WFCMessage.java index 5cf29197..723c090b 100644 --- a/common/src/main/java/cn/wildfirechat/proto/WFCMessage.java +++ b/common/src/main/java/cn/wildfirechat/proto/WFCMessage.java @@ -40,6 +40,21 @@ public final class WFCMessage { */ com.google.protobuf.ByteString getReasonBytes(); + + // optional string extra = 3; + /** + * optional string extra = 3; + */ + boolean hasExtra(); + /** + * optional string extra = 3; + */ + java.lang.String getExtra(); + /** + * optional string extra = 3; + */ + com.google.protobuf.ByteString + getExtraBytes(); } /** * Protobuf type {@code AddFriendRequest} @@ -102,6 +117,11 @@ public final class WFCMessage { reason_ = input.readBytes(); break; } + case 26: { + bitField0_ |= 0x00000004; + extra_ = input.readBytes(); + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -228,9 +248,53 @@ public final class WFCMessage { } } + // optional string extra = 3; + public static final int EXTRA_FIELD_NUMBER = 3; + private java.lang.Object extra_; + /** + * optional string extra = 3; + */ + public boolean hasExtra() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional string extra = 3; + */ + public java.lang.String getExtra() { + java.lang.Object ref = extra_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + extra_ = s; + } + return s; + } + } + /** + * optional string extra = 3; + */ + public com.google.protobuf.ByteString + getExtraBytes() { + java.lang.Object ref = extra_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + extra_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private void initFields() { targetUid_ = ""; reason_ = ""; + extra_ = ""; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -258,6 +322,9 @@ public final class WFCMessage { if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeBytes(2, getReasonBytes()); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBytes(3, getExtraBytes()); + } getUnknownFields().writeTo(output); } @@ -275,6 +342,10 @@ public final class WFCMessage { size += com.google.protobuf.CodedOutputStream .computeBytesSize(2, getReasonBytes()); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(3, getExtraBytes()); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -395,6 +466,8 @@ public final class WFCMessage { bitField0_ = (bitField0_ & ~0x00000001); reason_ = ""; bitField0_ = (bitField0_ & ~0x00000002); + extra_ = ""; + bitField0_ = (bitField0_ & ~0x00000004); return this; } @@ -431,6 +504,10 @@ public final class WFCMessage { to_bitField0_ |= 0x00000002; } result.reason_ = reason_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.extra_ = extra_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -457,6 +534,11 @@ public final class WFCMessage { reason_ = other.reason_; onChanged(); } + if (other.hasExtra()) { + bitField0_ |= 0x00000004; + extra_ = other.extra_; + onChanged(); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -640,6 +722,80 @@ public final class WFCMessage { return this; } + // optional string extra = 3; + private java.lang.Object extra_ = ""; + /** + * optional string extra = 3; + */ + public boolean hasExtra() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional string extra = 3; + */ + public java.lang.String getExtra() { + java.lang.Object ref = extra_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((com.google.protobuf.ByteString) ref) + .toStringUtf8(); + extra_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string extra = 3; + */ + public com.google.protobuf.ByteString + getExtraBytes() { + java.lang.Object ref = extra_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + extra_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * optional string extra = 3; + */ + public Builder setExtra( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + extra_ = value; + onChanged(); + return this; + } + /** + * optional string extra = 3; + */ + public Builder clearExtra() { + bitField0_ = (bitField0_ & ~0x00000004); + extra_ = getDefaultInstance().getExtra(); + onChanged(); + return this; + } + /** + * optional string extra = 3; + */ + public Builder setExtraBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + extra_ = value; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:AddFriendRequest) } @@ -3129,6 +3285,21 @@ public final class WFCMessage { * optional int64 create_dt = 5; */ long getCreateDt(); + + // optional string extra = 6; + /** + * optional string extra = 6; + */ + boolean hasExtra(); + /** + * optional string extra = 6; + */ + java.lang.String getExtra(); + /** + * optional string extra = 6; + */ + com.google.protobuf.ByteString + getExtraBytes(); } /** * Protobuf type {@code GroupMember} @@ -3206,6 +3377,11 @@ public final class WFCMessage { createDt_ = input.readInt64(); break; } + case 50: { + bitField0_ |= 0x00000020; + extra_ = input.readBytes(); + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -3380,12 +3556,56 @@ public final class WFCMessage { return createDt_; } + // optional string extra = 6; + public static final int EXTRA_FIELD_NUMBER = 6; + private java.lang.Object extra_; + /** + * optional string extra = 6; + */ + public boolean hasExtra() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * optional string extra = 6; + */ + public java.lang.String getExtra() { + java.lang.Object ref = extra_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + extra_ = s; + } + return s; + } + } + /** + * optional string extra = 6; + */ + public com.google.protobuf.ByteString + getExtraBytes() { + java.lang.Object ref = extra_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + extra_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private void initFields() { memberId_ = ""; alias_ = ""; type_ = 0; updateDt_ = 0L; createDt_ = 0L; + extra_ = ""; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -3422,6 +3642,9 @@ public final class WFCMessage { if (((bitField0_ & 0x00000010) == 0x00000010)) { output.writeInt64(5, createDt_); } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + output.writeBytes(6, getExtraBytes()); + } getUnknownFields().writeTo(output); } @@ -3451,6 +3674,10 @@ public final class WFCMessage { size += com.google.protobuf.CodedOutputStream .computeInt64Size(5, createDt_); } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(6, getExtraBytes()); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -3577,6 +3804,8 @@ public final class WFCMessage { bitField0_ = (bitField0_ & ~0x00000008); createDt_ = 0L; bitField0_ = (bitField0_ & ~0x00000010); + extra_ = ""; + bitField0_ = (bitField0_ & ~0x00000020); return this; } @@ -3625,6 +3854,10 @@ public final class WFCMessage { to_bitField0_ |= 0x00000010; } result.createDt_ = createDt_; + if (((from_bitField0_ & 0x00000020) == 0x00000020)) { + to_bitField0_ |= 0x00000020; + } + result.extra_ = extra_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -3660,6 +3893,11 @@ public final class WFCMessage { if (other.hasCreateDt()) { setCreateDt(other.getCreateDt()); } + if (other.hasExtra()) { + bitField0_ |= 0x00000020; + extra_ = other.extra_; + onChanged(); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -3942,6 +4180,80 @@ public final class WFCMessage { return this; } + // optional string extra = 6; + private java.lang.Object extra_ = ""; + /** + * optional string extra = 6; + */ + public boolean hasExtra() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * optional string extra = 6; + */ + public java.lang.String getExtra() { + java.lang.Object ref = extra_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((com.google.protobuf.ByteString) ref) + .toStringUtf8(); + extra_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string extra = 6; + */ + public com.google.protobuf.ByteString + getExtraBytes() { + java.lang.Object ref = extra_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + extra_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * optional string extra = 6; + */ + public Builder setExtra( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000020; + extra_ = value; + onChanged(); + return this; + } + /** + * optional string extra = 6; + */ + public Builder clearExtra() { + bitField0_ = (bitField0_ & ~0x00000020); + extra_ = getDefaultInstance().getExtra(); + onChanged(); + return this; + } + /** + * optional string extra = 6; + */ + public Builder setExtraBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000020; + extra_ = value; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:GroupMember) } @@ -13398,6 +13710,21 @@ public final class WFCMessage { * optional .MessageContent notify_content = 4; */ cn.wildfirechat.proto.WFCMessage.MessageContentOrBuilder getNotifyContentOrBuilder(); + + // optional string extra = 5; + /** + * optional string extra = 5; + */ + boolean hasExtra(); + /** + * optional string extra = 5; + */ + java.lang.String getExtra(); + /** + * optional string extra = 5; + */ + com.google.protobuf.ByteString + getExtraBytes(); } /** * Protobuf type {@code AddGroupMemberRequest} @@ -13497,6 +13824,11 @@ public final class WFCMessage { bitField0_ |= 0x00000002; break; } + case 42: { + bitField0_ |= 0x00000004; + extra_ = input.readBytes(); + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -13667,11 +13999,55 @@ public final class WFCMessage { return notifyContent_; } + // optional string extra = 5; + public static final int EXTRA_FIELD_NUMBER = 5; + private java.lang.Object extra_; + /** + * optional string extra = 5; + */ + public boolean hasExtra() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional string extra = 5; + */ + public java.lang.String getExtra() { + java.lang.Object ref = extra_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + extra_ = s; + } + return s; + } + } + /** + * optional string extra = 5; + */ + public com.google.protobuf.ByteString + getExtraBytes() { + java.lang.Object ref = extra_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + extra_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private void initFields() { groupId_ = ""; addedMember_ = java.util.Collections.emptyList(); toLine_ = java.util.Collections.emptyList(); notifyContent_ = cn.wildfirechat.proto.WFCMessage.MessageContent.getDefaultInstance(); + extra_ = ""; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -13713,6 +14089,9 @@ public final class WFCMessage { if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeMessage(4, notifyContent_); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBytes(5, getExtraBytes()); + } getUnknownFields().writeTo(output); } @@ -13743,6 +14122,10 @@ public final class WFCMessage { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, notifyContent_); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(5, getExtraBytes()); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -13877,6 +14260,8 @@ public final class WFCMessage { notifyContentBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000008); + extra_ = ""; + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -13931,6 +14316,10 @@ public final class WFCMessage { } else { result.notifyContent_ = notifyContentBuilder_.build(); } + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000004; + } + result.extra_ = extra_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -13991,6 +14380,11 @@ public final class WFCMessage { if (other.hasNotifyContent()) { mergeNotifyContent(other.getNotifyContent()); } + if (other.hasExtra()) { + bitField0_ |= 0x00000010; + extra_ = other.extra_; + onChanged(); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -14531,6 +14925,80 @@ public final class WFCMessage { return notifyContentBuilder_; } + // optional string extra = 5; + private java.lang.Object extra_ = ""; + /** + * optional string extra = 5; + */ + public boolean hasExtra() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * optional string extra = 5; + */ + public java.lang.String getExtra() { + java.lang.Object ref = extra_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((com.google.protobuf.ByteString) ref) + .toStringUtf8(); + extra_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string extra = 5; + */ + public com.google.protobuf.ByteString + getExtraBytes() { + java.lang.Object ref = extra_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + extra_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * optional string extra = 5; + */ + public Builder setExtra( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000010; + extra_ = value; + onChanged(); + return this; + } + /** + * optional string extra = 5; + */ + public Builder clearExtra() { + bitField0_ = (bitField0_ & ~0x00000010); + extra_ = getDefaultInstance().getExtra(); + onChanged(); + return this; + } + /** + * optional string extra = 5; + */ + public Builder setExtraBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000010; + extra_ = value; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:AddGroupMemberRequest) } @@ -14586,6 +15054,21 @@ public final class WFCMessage { * optional .MessageContent notify_content = 3; */ cn.wildfirechat.proto.WFCMessage.MessageContentOrBuilder getNotifyContentOrBuilder(); + + // optional string member_extra = 4; + /** + * optional string member_extra = 4; + */ + boolean hasMemberExtra(); + /** + * optional string member_extra = 4; + */ + java.lang.String getMemberExtra(); + /** + * optional string member_extra = 4; + */ + com.google.protobuf.ByteString + getMemberExtraBytes(); } /** * Protobuf type {@code CreateGroupRequest} @@ -14685,6 +15168,11 @@ public final class WFCMessage { bitField0_ |= 0x00000002; break; } + case 34: { + bitField0_ |= 0x00000004; + memberExtra_ = input.readBytes(); + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -14795,10 +15283,54 @@ public final class WFCMessage { return notifyContent_; } + // optional string member_extra = 4; + public static final int MEMBER_EXTRA_FIELD_NUMBER = 4; + private java.lang.Object memberExtra_; + /** + * optional string member_extra = 4; + */ + public boolean hasMemberExtra() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional string member_extra = 4; + */ + public java.lang.String getMemberExtra() { + java.lang.Object ref = memberExtra_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + memberExtra_ = s; + } + return s; + } + } + /** + * optional string member_extra = 4; + */ + public com.google.protobuf.ByteString + getMemberExtraBytes() { + java.lang.Object ref = memberExtra_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + memberExtra_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private void initFields() { group_ = cn.wildfirechat.proto.WFCMessage.Group.getDefaultInstance(); toLine_ = java.util.Collections.emptyList(); notifyContent_ = cn.wildfirechat.proto.WFCMessage.MessageContent.getDefaultInstance(); + memberExtra_ = ""; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -14835,6 +15367,9 @@ public final class WFCMessage { if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeMessage(3, notifyContent_); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBytes(4, getMemberExtraBytes()); + } getUnknownFields().writeTo(output); } @@ -14861,6 +15396,10 @@ public final class WFCMessage { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, notifyContent_); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(4, getMemberExtraBytes()); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -14993,6 +15532,8 @@ public final class WFCMessage { notifyContentBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000004); + memberExtra_ = ""; + bitField0_ = (bitField0_ & ~0x00000008); return this; } @@ -15042,6 +15583,10 @@ public final class WFCMessage { } else { result.notifyContent_ = notifyContentBuilder_.build(); } + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000004; + } + result.memberExtra_ = memberExtra_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -15074,6 +15619,11 @@ public final class WFCMessage { if (other.hasNotifyContent()) { mergeNotifyContent(other.getNotifyContent()); } + if (other.hasMemberExtra()) { + bitField0_ |= 0x00000008; + memberExtra_ = other.memberExtra_; + onChanged(); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -15415,6 +15965,80 @@ public final class WFCMessage { return notifyContentBuilder_; } + // optional string member_extra = 4; + private java.lang.Object memberExtra_ = ""; + /** + * optional string member_extra = 4; + */ + public boolean hasMemberExtra() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional string member_extra = 4; + */ + public java.lang.String getMemberExtra() { + java.lang.Object ref = memberExtra_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((com.google.protobuf.ByteString) ref) + .toStringUtf8(); + memberExtra_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string member_extra = 4; + */ + public com.google.protobuf.ByteString + getMemberExtraBytes() { + java.lang.Object ref = memberExtra_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + memberExtra_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * optional string member_extra = 4; + */ + public Builder setMemberExtra( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000008; + memberExtra_ = value; + onChanged(); + return this; + } + /** + * optional string member_extra = 4; + */ + public Builder clearMemberExtra() { + bitField0_ = (bitField0_ & ~0x00000008); + memberExtra_ = getDefaultInstance().getMemberExtra(); + onChanged(); + return this; + } + /** + * optional string member_extra = 4; + */ + public Builder setMemberExtraBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000008; + memberExtra_ = value; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:CreateGroupRequest) } @@ -16353,6 +16977,21 @@ public final class WFCMessage { * optional bool to_read_status = 7; */ boolean getToReadStatus(); + + // optional string extra = 8; + /** + * optional string extra = 8; + */ + boolean hasExtra(); + /** + * optional string extra = 8; + */ + java.lang.String getExtra(); + /** + * optional string extra = 8; + */ + com.google.protobuf.ByteString + getExtraBytes(); } /** * Protobuf type {@code FriendRequest} @@ -16440,6 +17079,11 @@ public final class WFCMessage { toReadStatus_ = input.readBool(); break; } + case 66: { + bitField0_ |= 0x00000080; + extra_ = input.readBytes(); + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -16673,6 +17317,49 @@ public final class WFCMessage { return toReadStatus_; } + // optional string extra = 8; + public static final int EXTRA_FIELD_NUMBER = 8; + private java.lang.Object extra_; + /** + * optional string extra = 8; + */ + public boolean hasExtra() { + return ((bitField0_ & 0x00000080) == 0x00000080); + } + /** + * optional string extra = 8; + */ + public java.lang.String getExtra() { + java.lang.Object ref = extra_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + extra_ = s; + } + return s; + } + } + /** + * optional string extra = 8; + */ + public com.google.protobuf.ByteString + getExtraBytes() { + java.lang.Object ref = extra_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + extra_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private void initFields() { fromUid_ = ""; toUid_ = ""; @@ -16681,6 +17368,7 @@ public final class WFCMessage { updateDt_ = 0L; fromReadStatus_ = false; toReadStatus_ = false; + extra_ = ""; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -16723,6 +17411,9 @@ public final class WFCMessage { if (((bitField0_ & 0x00000040) == 0x00000040)) { output.writeBool(7, toReadStatus_); } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + output.writeBytes(8, getExtraBytes()); + } getUnknownFields().writeTo(output); } @@ -16760,6 +17451,10 @@ public final class WFCMessage { size += com.google.protobuf.CodedOutputStream .computeBoolSize(7, toReadStatus_); } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(8, getExtraBytes()); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -16890,6 +17585,8 @@ public final class WFCMessage { bitField0_ = (bitField0_ & ~0x00000020); toReadStatus_ = false; bitField0_ = (bitField0_ & ~0x00000040); + extra_ = ""; + bitField0_ = (bitField0_ & ~0x00000080); return this; } @@ -16946,6 +17643,10 @@ public final class WFCMessage { to_bitField0_ |= 0x00000040; } result.toReadStatus_ = toReadStatus_; + if (((from_bitField0_ & 0x00000080) == 0x00000080)) { + to_bitField0_ |= 0x00000080; + } + result.extra_ = extra_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -16989,6 +17690,11 @@ public final class WFCMessage { if (other.hasToReadStatus()) { setToReadStatus(other.getToReadStatus()); } + if (other.hasExtra()) { + bitField0_ |= 0x00000080; + extra_ = other.extra_; + onChanged(); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -17378,6 +18084,80 @@ public final class WFCMessage { return this; } + // optional string extra = 8; + private java.lang.Object extra_ = ""; + /** + * optional string extra = 8; + */ + public boolean hasExtra() { + return ((bitField0_ & 0x00000080) == 0x00000080); + } + /** + * optional string extra = 8; + */ + public java.lang.String getExtra() { + java.lang.Object ref = extra_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((com.google.protobuf.ByteString) ref) + .toStringUtf8(); + extra_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string extra = 8; + */ + public com.google.protobuf.ByteString + getExtraBytes() { + java.lang.Object ref = extra_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + extra_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * optional string extra = 8; + */ + public Builder setExtra( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000080; + extra_ = value; + onChanged(); + return this; + } + /** + * optional string extra = 8; + */ + public Builder clearExtra() { + bitField0_ = (bitField0_ & ~0x00000080); + extra_ = getDefaultInstance().getExtra(); + onChanged(); + return this; + } + /** + * optional string extra = 8; + */ + public Builder setExtraBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000080; + extra_ = value; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:FriendRequest) } @@ -59902,164 +60682,166 @@ public final class WFCMessage { descriptor; static { java.lang.String[] descriptorData = { - "\n\032wfcmessage_community.proto\"6\n\020AddFrien" + + "\n\032wfcmessage_community.proto\"E\n\020AddFrien" + "dRequest\022\022\n\ntarget_uid\030\001 \002(\t\022\016\n\006reason\030\002" + - " \002(\t\":\n\014Conversation\022\014\n\004type\030\001 \002(\005\022\016\n\006ta" + - "rget\030\002 \002(\t\022\014\n\004line\030\003 \002(\005\"\370\001\n\tGroupInfo\022\021" + - "\n\ttarget_id\030\001 \001(\t\022\014\n\004name\030\002 \002(\t\022\020\n\010portr" + - "ait\030\003 \001(\t\022\r\n\005owner\030\004 \001(\t\022\014\n\004type\030\005 \002(\005\022\024" + - "\n\014member_count\030\006 \001(\005\022\r\n\005extra\030\007 \001(\t\022\021\n\tu" + - "pdate_dt\030\010 \001(\003\022\030\n\020member_update_dt\030\t \001(\003" + - "\022\014\n\004mute\030\n \001(\005\022\021\n\tjoin_type\030\013 \001(\005\022\024\n\014pri" + - "vate_chat\030\014 \001(\005\022\022\n\nsearchable\030\r \001(\005\"c\n\013G", - "roupMember\022\021\n\tmember_id\030\001 \002(\t\022\r\n\005alias\030\002" + - " \001(\t\022\014\n\004type\030\003 \002(\005\022\021\n\tupdate_dt\030\004 \001(\003\022\021\n" + - "\tcreate_dt\030\005 \001(\003\"F\n\005Group\022\036\n\ngroup_info\030" + - "\001 \002(\0132\n.GroupInfo\022\035\n\007members\030\002 \003(\0132\014.Gro" + - "upMember\"\304\001\n\013ChannelInfo\022\021\n\ttarget_id\030\001 " + - "\001(\t\022\014\n\004name\030\002 \002(\t\022\020\n\010portrait\030\003 \001(\t\022\r\n\005o" + - "wner\030\004 \001(\t\022\016\n\006status\030\005 \001(\005\022\014\n\004desc\030\006 \001(\t" + - "\022\r\n\005extra\030\007 \001(\t\022\021\n\tupdate_dt\030\010 \001(\003\022\016\n\006se" + - "cret\030\t \001(\t\022\020\n\010callback\030\n \001(\t\022\021\n\tautomati" + - "c\030\013 \001(\005\"D\n\021ModifyChannelInfo\022\022\n\nchannel_", - "id\030\001 \002(\t\022\014\n\004type\030\002 \002(\005\022\r\n\005value\030\003 \002(\t\"8\n" + - "\017TransferChannel\022\022\n\nchannel_id\030\001 \002(\t\022\021\n\t" + - "new_owner\030\002 \002(\t\"3\n\017PullChannelInfo\022\022\n\nch" + - "annel_id\030\001 \002(\t\022\014\n\004head\030\002 \002(\003\"H\n\023PullChan" + - "nelListener\022\022\n\nchannel_id\030\001 \002(\t\022\016\n\006offse" + - "t\030\002 \002(\005\022\r\n\005count\030\003 \002(\005\"R\n\031PullChannelLis" + - "tenerResult\022\023\n\013total_count\030\001 \002(\005\022\016\n\006offs" + - "et\030\002 \002(\005\022\020\n\010listener\030\003 \003(\t\"3\n\rListenChan" + - "nel\022\022\n\nchannel_id\030\001 \002(\t\022\016\n\006listen\030\002 \002(\005\"" + - "E\n\023SearchChannelResult\022\035\n\007channel\030\001 \003(\0132", - "\014.ChannelInfo\022\017\n\007keyword\030\002 \002(\t\"\235\002\n\016Messa" + - "geContent\022\014\n\004type\030\001 \002(\005\022\032\n\022searchable_co" + - "ntent\030\002 \001(\t\022\024\n\014push_content\030\003 \001(\t\022\017\n\007con" + - "tent\030\004 \001(\t\022\014\n\004data\030\005 \001(\014\022\021\n\tmediaType\030\006 " + - "\001(\005\022\026\n\016remoteMediaUrl\030\007 \001(\t\022\024\n\014persist_f" + - "lag\030\010 \001(\005\022\027\n\017expire_duration\030\t \001(\005\022\026\n\016me" + - "ntioned_type\030\n \001(\005\022\030\n\020mentioned_target\030\013" + - " \003(\t\022\r\n\005extra\030\014 \001(\t\022\021\n\tpush_data\030\r \001(\t\"\207" + - "\001\n\025AddGroupMemberRequest\022\020\n\010group_id\030\001 \002" + - "(\t\022\"\n\014added_member\030\002 \003(\0132\014.GroupMember\022\017", - "\n\007to_line\030\003 \003(\005\022\'\n\016notify_content\030\004 \001(\0132" + - "\017.MessageContent\"e\n\022CreateGroupRequest\022\025" + - "\n\005group\030\001 \002(\0132\006.Group\022\017\n\007to_line\030\002 \003(\005\022\'" + - "\n\016notify_content\030\003 \001(\0132\017.MessageContent\"" + - "a\n\023DismissGroupRequest\022\020\n\010group_id\030\001 \002(\t" + - "\022\017\n\007to_line\030\002 \003(\005\022\'\n\016notify_content\030\003 \001(" + - "\0132\017.MessageContent\"\226\001\n\rFriendRequest\022\020\n\010" + - "from_uid\030\001 \001(\t\022\016\n\006to_uid\030\002 \002(\t\022\016\n\006reason" + - "\030\003 \002(\t\022\016\n\006status\030\004 \001(\005\022\021\n\tupdate_dt\030\005 \001(" + - "\003\022\030\n\020from_read_status\030\006 \001(\010\022\026\n\016to_read_s", - "tatus\030\007 \001(\010\"#\n\rGeneralResult\022\022\n\nerror_co" + - "de\030\001 \002(\005\"?\n\025GetUploadTokenRequest\022\022\n\nmed" + - "ia_type\030\001 \002(\005\022\022\n\nmedia_path\030\002 \002(\t\"S\n\024Get" + - "UploadTokenResult\022\016\n\006domain\030\001 \002(\t\022\r\n\005tok" + - "en\030\002 \002(\t\022\016\n\006server\030\003 \002(\t\022\014\n\004port\030\004 \001(\005\"H" + - "\n\023HandleFriendRequest\022\022\n\ntarget_uid\030\001 \002(" + - "\t\022\016\n\006status\030\002 \002(\005\022\r\n\005extra\030\003 \001(\t\"\023\n\005IDBu" + - "f\022\n\n\002id\030\001 \002(\t\"\027\n\tIDListBuf\022\n\n\002id\030\001 \003(\t\"\256" + - "\001\n\007Message\022#\n\014conversation\030\001 \002(\0132\r.Conve" + - "rsation\022\021\n\tfrom_user\030\002 \002(\t\022 \n\007content\030\003 ", - "\002(\0132\017.MessageContent\022\022\n\nmessage_id\030\004 \001(\003" + - "\022\030\n\020server_timestamp\030\005 \001(\003\022\017\n\007to_user\030\006 " + - "\001(\t\022\n\n\002to\030\007 \003(\t\"\353\001\n\004User\022\013\n\003uid\030\001 \002(\t\022\014\n" + - "\004name\030\002 \001(\t\022\024\n\014display_name\030\003 \001(\t\022\020\n\010por" + - "trait\030\004 \001(\t\022\016\n\006mobile\030\005 \001(\t\022\r\n\005email\030\006 \001" + - "(\t\022\017\n\007address\030\007 \001(\t\022\017\n\007company\030\010 \001(\t\022\r\n\005" + - "extra\030\t \001(\t\022\021\n\tupdate_dt\030\n \001(\003\022\016\n\006gender" + - "\030\013 \001(\005\022\016\n\006social\030\014 \001(\t\022\014\n\004type\030\r \001(\005\022\017\n\007" + - "deleted\030\016 \001(\005\"c\n\005Robot\022\013\n\003uid\030\001 \002(\t\022\r\n\005s" + - "tate\030\002 \002(\005\022\r\n\005owner\030\003 \001(\t\022\016\n\006secret\030\004 \001(", - "\t\022\020\n\010callback\030\005 \001(\t\022\r\n\005extra\030\006 \001(\t\"(\n\017Ge" + - "tRobotsResult\022\025\n\005entry\030\001 \003(\0132\006.Robot\"g\n\030" + - "UploadDeviceTokenRequest\022\020\n\010platform\030\001 \002" + - "(\005\022\020\n\010app_name\030\002 \002(\t\022\024\n\014device_token\030\003 \002" + - "(\t\022\021\n\tpush_type\030\004 \002(\005\"\201\001\n\026ModifyGroupInf" + - "oRequest\022\020\n\010group_id\030\001 \002(\t\022\014\n\004type\030\002 \002(\005" + - "\022\r\n\005value\030\003 \002(\t\022\017\n\007to_line\030\004 \003(\005\022\'\n\016noti" + - "fy_content\030\005 \001(\0132\017.MessageContent\"\203\001\n\026Se" + - "tGroupManagerRequest\022\020\n\010group_id\030\001 \002(\t\022\014" + - "\n\004type\030\002 \002(\005\022\017\n\007user_id\030\003 \003(\t\022\017\n\007to_line", - "\030\004 \003(\005\022\'\n\016notify_content\030\005 \001(\0132\017.Message" + - "Content\"(\n\tInfoEntry\022\014\n\004type\030\001 \002(\005\022\r\n\005va" + - "lue\030\002 \002(\t\"0\n\023ModifyMyInfoRequest\022\031\n\005entr" + - "y\030\001 \003(\0132\n.InfoEntry\";\n\rNotifyMessage\022\014\n\004" + - "type\030\001 \002(\005\022\014\n\004head\030\002 \002(\003\022\016\n\006target\030\003 \001(\t" + - "\"=\n\022PullMessageRequest\022\n\n\002id\030\001 \002(\003\022\014\n\004ty" + - "pe\030\002 \002(\005\022\r\n\005delay\030\003 \001(\003\"M\n\021PullMessageRe" + - "sult\022\031\n\007message\030\001 \003(\0132\010.Message\022\017\n\007curre" + - "nt\030\002 \002(\003\022\014\n\004head\030\003 \002(\003\"/\n\023PullGroupInfoR" + - "esult\022\030\n\004info\030\001 \003(\0132\n.GroupInfo\"6\n\026PullG", - "roupMemberRequest\022\016\n\006target\030\001 \002(\t\022\014\n\004hea" + - "d\030\002 \002(\003\"5\n\025PullGroupMemberResult\022\034\n\006memb" + - "er\030\001 \003(\0132\014.GroupMember\"-\n\013UserRequest\022\013\n" + - "\003uid\030\001 \002(\t\022\021\n\tupdate_dt\030\002 \001(\003\"0\n\017PullUse" + - "rRequest\022\035\n\007request\030\001 \003(\0132\014.UserRequest\"" + - "/\n\nUserResult\022\023\n\004user\030\001 \002(\0132\005.User\022\014\n\004co" + - "de\030\002 \002(\005\"-\n\016PullUserResult\022\033\n\006result\030\001 \003" + - "(\0132\013.UserResult\"^\n\020QuitGroupRequest\022\020\n\010g" + - "roup_id\030\001 \002(\t\022\017\n\007to_line\030\002 \003(\005\022\'\n\016notify" + - "_content\030\003 \001(\0132\017.MessageContent\"~\n\030Remov", - "eGroupMemberRequest\022\020\n\010group_id\030\001 \002(\t\022\026\n" + - "\016removed_member\030\002 \003(\t\022\017\n\007to_line\030\003 \003(\005\022\'" + - "\n\016notify_content\030\004 \001(\0132\017.MessageContent\"" + - "u\n\024TransferGroupRequest\022\020\n\010group_id\030\001 \002(" + - "\t\022\021\n\tnew_owner\030\002 \002(\t\022\017\n\007to_line\030\003 \003(\005\022\'\n" + - "\016notify_content\030\004 \001(\0132\017.MessageContent\"\206" + - "\001\n\026ModifyGroupMemberAlias\022\020\n\010group_id\030\001 " + - "\002(\t\022\r\n\005alias\030\002 \002(\t\022\017\n\007to_line\030\003 \003(\005\022\'\n\016n" + - "otify_content\030\004 \001(\0132\017.MessageContent\022\021\n\t" + - "member_id\030\005 \001(\t\"P\n\020UserSettingEntry\022\r\n\005s", - "cope\030\001 \002(\005\022\013\n\003key\030\002 \002(\t\022\r\n\005value\030\003 \002(\t\022\021" + - "\n\tupdate_dt\030\004 \002(\003\"A\n\024ModifyUserSettingRe" + - "q\022\r\n\005scope\030\001 \002(\005\022\013\n\003key\030\002 \002(\t\022\r\n\005value\030\003" + - " \002(\t\"\032\n\007Version\022\017\n\007version\030\001 \002(\003\"8\n\024GetU" + - "serSettingResult\022 \n\005entry\030\001 \003(\0132\021.UserSe" + - "ttingEntry\"f\n\006Friend\022\013\n\003uid\030\001 \002(\t\022\r\n\005sta" + - "te\030\002 \002(\005\022\021\n\tupdate_dt\030\003 \002(\003\022\r\n\005alias\030\004 \001" + - "(\t\022\017\n\007blacked\030\005 \001(\005\022\r\n\005extra\030\006 \001(\t\"*\n\020Ge" + - "tFriendsResult\022\026\n\005entry\030\001 \003(\0132\007.Friend\"7" + - "\n\026GetFriendRequestResult\022\035\n\005entry\030\001 \003(\0132", - "\016.FriendRequest\"\243\001\n\021ConnectAckPayload\022\020\n" + - "\010msg_head\030\001 \001(\003\022\023\n\013friend_head\030\002 \001(\003\022\026\n\016" + - "friend_rq_head\030\003 \001(\003\022\024\n\014setting_head\030\004 \001" + - "(\003\022\021\n\tnode_addr\030\005 \001(\t\022\021\n\tnode_port\030\006 \001(\005" + - "\022\023\n\013server_time\030\007 \001(\003\"P\n\rIMHttpWrapper\022\r" + - "\n\005token\030\001 \002(\t\022\021\n\tclient_id\030\002 \002(\t\022\017\n\007requ" + - "est\030\003 \002(\t\022\014\n\004data\030\004 \001(\014\"A\n\021SearchUserReq" + - "uest\022\017\n\007keyword\030\001 \002(\t\022\r\n\005fuzzy\030\002 \001(\005\022\014\n\004" + - "page\030\003 \001(\005\"(\n\020SearchUserResult\022\024\n\005entry\030" + - "\001 \003(\0132\005.User\"@\n\026GetChatroomInfoRequest\022\023", - "\n\013chatroom_id\030\001 \002(\t\022\021\n\tupdate_dt\030\002 \001(\003\"\227" + - "\001\n\014ChatroomInfo\022\r\n\005title\030\001 \002(\t\022\014\n\004desc\030\002" + - " \001(\t\022\020\n\010portrait\030\003 \001(\t\022\024\n\014member_count\030\004" + - " \001(\005\022\021\n\tcreate_dt\030\005 \001(\003\022\021\n\tupdate_dt\030\006 \001" + - "(\003\022\r\n\005extra\030\007 \001(\t\022\r\n\005state\030\010 \001(\005\"F\n\034GetC" + - "hatroomMemberInfoRequest\022\023\n\013chatroom_id\030" + - "\001 \002(\t\022\021\n\tmax_count\030\002 \001(\005\";\n\022ChatroomMemb" + - "erInfo\022\024\n\014member_count\030\001 \001(\005\022\017\n\007members\030" + - "\002 \003(\t\"\026\n\010INT64Buf\022\n\n\002id\030\001 \002(\003\"4\n\023NotifyR" + - "ecallMessage\022\n\n\002id\030\001 \002(\003\022\021\n\tfrom_user\030\002 ", - "\002(\t\"/\n\020BlackUserRequest\022\013\n\003uid\030\001 \002(\t\022\016\n\006" + - "status\030\002 \002(\005\"\323\001\n\014RouteRequest\022\013\n\003app\030\001 \001" + - "(\t\022\020\n\010platform\030\002 \001(\005\022\021\n\tpush_type\030\003 \001(\005\022" + - "\023\n\013device_name\030\004 \001(\t\022\026\n\016device_version\030\005" + - " \001(\t\022\022\n\nphone_name\030\006 \001(\t\022\020\n\010language\030\007 \001" + - "(\t\022\024\n\014carrier_name\030\010 \001(\t\022\023\n\013app_version\030" + - "\t \001(\t\022\023\n\013sdk_version\030\n \001(\t\"D\n\rRouteRespo" + - "nse\022\014\n\004host\030\001 \002(\t\022\021\n\tlong_port\030\002 \002(\005\022\022\n\n" + - "short_port\030\003 \002(\005\"G\n\017GetTokenRequest\022\017\n\007u" + - "ser_id\030\001 \002(\t\022\021\n\tclient_id\030\002 \002(\t\022\020\n\010platf", - "orm\030\003 \001(\005\"\\\n\022LoadRemoteMessages\022#\n\014conve" + - "rsation\030\001 \002(\0132\r.Conversation\022\022\n\nbefore_u" + - "id\030\002 \002(\003\022\r\n\005count\030\003 \002(\005\"a\n\020MultiCastMess" + - "age\022\021\n\tfrom_user\030\001 \002(\t\022 \n\007content\030\002 \002(\0132" + - "\017.MessageContent\022\n\n\002to\030\003 \003(\t\022\014\n\004line\030\004 \002" + - "(\005\"E\n\035RecallMultiCastMessageRequest\022\022\n\nm" + - "essage_id\030\001 \002(\003\022\020\n\010receiver\030\002 \003(\tB#\n\025cn." + - "wildfirechat.protoB\nWFCMessage" + " \002(\t\022\r\n\005extra\030\003 \001(\t\":\n\014Conversation\022\014\n\004t" + + "ype\030\001 \002(\005\022\016\n\006target\030\002 \002(\t\022\014\n\004line\030\003 \002(\005\"" + + "\370\001\n\tGroupInfo\022\021\n\ttarget_id\030\001 \001(\t\022\014\n\004name" + + "\030\002 \002(\t\022\020\n\010portrait\030\003 \001(\t\022\r\n\005owner\030\004 \001(\t\022" + + "\014\n\004type\030\005 \002(\005\022\024\n\014member_count\030\006 \001(\005\022\r\n\005e" + + "xtra\030\007 \001(\t\022\021\n\tupdate_dt\030\010 \001(\003\022\030\n\020member_" + + "update_dt\030\t \001(\003\022\014\n\004mute\030\n \001(\005\022\021\n\tjoin_ty" + + "pe\030\013 \001(\005\022\024\n\014private_chat\030\014 \001(\005\022\022\n\nsearch", + "able\030\r \001(\005\"r\n\013GroupMember\022\021\n\tmember_id\030\001" + + " \002(\t\022\r\n\005alias\030\002 \001(\t\022\014\n\004type\030\003 \002(\005\022\021\n\tupd" + + "ate_dt\030\004 \001(\003\022\021\n\tcreate_dt\030\005 \001(\003\022\r\n\005extra" + + "\030\006 \001(\t\"F\n\005Group\022\036\n\ngroup_info\030\001 \002(\0132\n.Gr" + + "oupInfo\022\035\n\007members\030\002 \003(\0132\014.GroupMember\"\304" + + "\001\n\013ChannelInfo\022\021\n\ttarget_id\030\001 \001(\t\022\014\n\004nam" + + "e\030\002 \002(\t\022\020\n\010portrait\030\003 \001(\t\022\r\n\005owner\030\004 \001(\t" + + "\022\016\n\006status\030\005 \001(\005\022\014\n\004desc\030\006 \001(\t\022\r\n\005extra\030" + + "\007 \001(\t\022\021\n\tupdate_dt\030\010 \001(\003\022\016\n\006secret\030\t \001(\t" + + "\022\020\n\010callback\030\n \001(\t\022\021\n\tautomatic\030\013 \001(\005\"D\n", + "\021ModifyChannelInfo\022\022\n\nchannel_id\030\001 \002(\t\022\014" + + "\n\004type\030\002 \002(\005\022\r\n\005value\030\003 \002(\t\"8\n\017TransferC" + + "hannel\022\022\n\nchannel_id\030\001 \002(\t\022\021\n\tnew_owner\030" + + "\002 \002(\t\"3\n\017PullChannelInfo\022\022\n\nchannel_id\030\001" + + " \002(\t\022\014\n\004head\030\002 \002(\003\"H\n\023PullChannelListene" + + "r\022\022\n\nchannel_id\030\001 \002(\t\022\016\n\006offset\030\002 \002(\005\022\r\n" + + "\005count\030\003 \002(\005\"R\n\031PullChannelListenerResul" + + "t\022\023\n\013total_count\030\001 \002(\005\022\016\n\006offset\030\002 \002(\005\022\020" + + "\n\010listener\030\003 \003(\t\"3\n\rListenChannel\022\022\n\ncha" + + "nnel_id\030\001 \002(\t\022\016\n\006listen\030\002 \002(\005\"E\n\023SearchC", + "hannelResult\022\035\n\007channel\030\001 \003(\0132\014.ChannelI" + + "nfo\022\017\n\007keyword\030\002 \002(\t\"\235\002\n\016MessageContent\022" + + "\014\n\004type\030\001 \002(\005\022\032\n\022searchable_content\030\002 \001(" + + "\t\022\024\n\014push_content\030\003 \001(\t\022\017\n\007content\030\004 \001(\t" + + "\022\014\n\004data\030\005 \001(\014\022\021\n\tmediaType\030\006 \001(\005\022\026\n\016rem" + + "oteMediaUrl\030\007 \001(\t\022\024\n\014persist_flag\030\010 \001(\005\022" + + "\027\n\017expire_duration\030\t \001(\005\022\026\n\016mentioned_ty" + + "pe\030\n \001(\005\022\030\n\020mentioned_target\030\013 \003(\t\022\r\n\005ex" + + "tra\030\014 \001(\t\022\021\n\tpush_data\030\r \001(\t\"\226\001\n\025AddGrou" + + "pMemberRequest\022\020\n\010group_id\030\001 \002(\t\022\"\n\014adde", + "d_member\030\002 \003(\0132\014.GroupMember\022\017\n\007to_line\030" + + "\003 \003(\005\022\'\n\016notify_content\030\004 \001(\0132\017.MessageC" + + "ontent\022\r\n\005extra\030\005 \001(\t\"{\n\022CreateGroupRequ" + + "est\022\025\n\005group\030\001 \002(\0132\006.Group\022\017\n\007to_line\030\002 " + + "\003(\005\022\'\n\016notify_content\030\003 \001(\0132\017.MessageCon" + + "tent\022\024\n\014member_extra\030\004 \001(\t\"a\n\023DismissGro" + + "upRequest\022\020\n\010group_id\030\001 \002(\t\022\017\n\007to_line\030\002" + + " \003(\005\022\'\n\016notify_content\030\003 \001(\0132\017.MessageCo" + + "ntent\"\245\001\n\rFriendRequest\022\020\n\010from_uid\030\001 \001(" + + "\t\022\016\n\006to_uid\030\002 \002(\t\022\016\n\006reason\030\003 \002(\t\022\016\n\006sta", + "tus\030\004 \001(\005\022\021\n\tupdate_dt\030\005 \001(\003\022\030\n\020from_rea" + + "d_status\030\006 \001(\010\022\026\n\016to_read_status\030\007 \001(\010\022\r" + + "\n\005extra\030\010 \001(\t\"#\n\rGeneralResult\022\022\n\nerror_" + + "code\030\001 \002(\005\"?\n\025GetUploadTokenRequest\022\022\n\nm" + + "edia_type\030\001 \002(\005\022\022\n\nmedia_path\030\002 \002(\t\"S\n\024G" + + "etUploadTokenResult\022\016\n\006domain\030\001 \002(\t\022\r\n\005t" + + "oken\030\002 \002(\t\022\016\n\006server\030\003 \002(\t\022\014\n\004port\030\004 \001(\005" + + "\"H\n\023HandleFriendRequest\022\022\n\ntarget_uid\030\001 " + + "\002(\t\022\016\n\006status\030\002 \002(\005\022\r\n\005extra\030\003 \001(\t\"\023\n\005ID" + + "Buf\022\n\n\002id\030\001 \002(\t\"\027\n\tIDListBuf\022\n\n\002id\030\001 \003(\t", + "\"\256\001\n\007Message\022#\n\014conversation\030\001 \002(\0132\r.Con" + + "versation\022\021\n\tfrom_user\030\002 \002(\t\022 \n\007content\030" + + "\003 \002(\0132\017.MessageContent\022\022\n\nmessage_id\030\004 \001" + + "(\003\022\030\n\020server_timestamp\030\005 \001(\003\022\017\n\007to_user\030" + + "\006 \001(\t\022\n\n\002to\030\007 \003(\t\"\353\001\n\004User\022\013\n\003uid\030\001 \002(\t\022" + + "\014\n\004name\030\002 \001(\t\022\024\n\014display_name\030\003 \001(\t\022\020\n\010p" + + "ortrait\030\004 \001(\t\022\016\n\006mobile\030\005 \001(\t\022\r\n\005email\030\006" + + " \001(\t\022\017\n\007address\030\007 \001(\t\022\017\n\007company\030\010 \001(\t\022\r" + + "\n\005extra\030\t \001(\t\022\021\n\tupdate_dt\030\n \001(\003\022\016\n\006gend" + + "er\030\013 \001(\005\022\016\n\006social\030\014 \001(\t\022\014\n\004type\030\r \001(\005\022\017", + "\n\007deleted\030\016 \001(\005\"c\n\005Robot\022\013\n\003uid\030\001 \002(\t\022\r\n" + + "\005state\030\002 \002(\005\022\r\n\005owner\030\003 \001(\t\022\016\n\006secret\030\004 " + + "\001(\t\022\020\n\010callback\030\005 \001(\t\022\r\n\005extra\030\006 \001(\t\"(\n\017" + + "GetRobotsResult\022\025\n\005entry\030\001 \003(\0132\006.Robot\"g" + + "\n\030UploadDeviceTokenRequest\022\020\n\010platform\030\001" + + " \002(\005\022\020\n\010app_name\030\002 \002(\t\022\024\n\014device_token\030\003" + + " \002(\t\022\021\n\tpush_type\030\004 \002(\005\"\201\001\n\026ModifyGroupI" + + "nfoRequest\022\020\n\010group_id\030\001 \002(\t\022\014\n\004type\030\002 \002" + + "(\005\022\r\n\005value\030\003 \002(\t\022\017\n\007to_line\030\004 \003(\005\022\'\n\016no" + + "tify_content\030\005 \001(\0132\017.MessageContent\"\203\001\n\026", + "SetGroupManagerRequest\022\020\n\010group_id\030\001 \002(\t" + + "\022\014\n\004type\030\002 \002(\005\022\017\n\007user_id\030\003 \003(\t\022\017\n\007to_li" + + "ne\030\004 \003(\005\022\'\n\016notify_content\030\005 \001(\0132\017.Messa" + + "geContent\"(\n\tInfoEntry\022\014\n\004type\030\001 \002(\005\022\r\n\005" + + "value\030\002 \002(\t\"0\n\023ModifyMyInfoRequest\022\031\n\005en" + + "try\030\001 \003(\0132\n.InfoEntry\";\n\rNotifyMessage\022\014" + + "\n\004type\030\001 \002(\005\022\014\n\004head\030\002 \002(\003\022\016\n\006target\030\003 \001" + + "(\t\"=\n\022PullMessageRequest\022\n\n\002id\030\001 \002(\003\022\014\n\004" + + "type\030\002 \002(\005\022\r\n\005delay\030\003 \001(\003\"M\n\021PullMessage" + + "Result\022\031\n\007message\030\001 \003(\0132\010.Message\022\017\n\007cur", + "rent\030\002 \002(\003\022\014\n\004head\030\003 \002(\003\"/\n\023PullGroupInf" + + "oResult\022\030\n\004info\030\001 \003(\0132\n.GroupInfo\"6\n\026Pul" + + "lGroupMemberRequest\022\016\n\006target\030\001 \002(\t\022\014\n\004h" + + "ead\030\002 \002(\003\"5\n\025PullGroupMemberResult\022\034\n\006me" + + "mber\030\001 \003(\0132\014.GroupMember\"-\n\013UserRequest\022" + + "\013\n\003uid\030\001 \002(\t\022\021\n\tupdate_dt\030\002 \001(\003\"0\n\017PullU" + + "serRequest\022\035\n\007request\030\001 \003(\0132\014.UserReques" + + "t\"/\n\nUserResult\022\023\n\004user\030\001 \002(\0132\005.User\022\014\n\004" + + "code\030\002 \002(\005\"-\n\016PullUserResult\022\033\n\006result\030\001" + + " \003(\0132\013.UserResult\"^\n\020QuitGroupRequest\022\020\n", + "\010group_id\030\001 \002(\t\022\017\n\007to_line\030\002 \003(\005\022\'\n\016noti" + + "fy_content\030\003 \001(\0132\017.MessageContent\"~\n\030Rem" + + "oveGroupMemberRequest\022\020\n\010group_id\030\001 \002(\t\022" + + "\026\n\016removed_member\030\002 \003(\t\022\017\n\007to_line\030\003 \003(\005" + + "\022\'\n\016notify_content\030\004 \001(\0132\017.MessageConten" + + "t\"u\n\024TransferGroupRequest\022\020\n\010group_id\030\001 " + + "\002(\t\022\021\n\tnew_owner\030\002 \002(\t\022\017\n\007to_line\030\003 \003(\005\022" + + "\'\n\016notify_content\030\004 \001(\0132\017.MessageContent" + + "\"\206\001\n\026ModifyGroupMemberAlias\022\020\n\010group_id\030" + + "\001 \002(\t\022\r\n\005alias\030\002 \002(\t\022\017\n\007to_line\030\003 \003(\005\022\'\n", + "\016notify_content\030\004 \001(\0132\017.MessageContent\022\021" + + "\n\tmember_id\030\005 \001(\t\"P\n\020UserSettingEntry\022\r\n" + + "\005scope\030\001 \002(\005\022\013\n\003key\030\002 \002(\t\022\r\n\005value\030\003 \002(\t" + + "\022\021\n\tupdate_dt\030\004 \002(\003\"A\n\024ModifyUserSetting" + + "Req\022\r\n\005scope\030\001 \002(\005\022\013\n\003key\030\002 \002(\t\022\r\n\005value" + + "\030\003 \002(\t\"\032\n\007Version\022\017\n\007version\030\001 \002(\003\"8\n\024Ge" + + "tUserSettingResult\022 \n\005entry\030\001 \003(\0132\021.User" + + "SettingEntry\"f\n\006Friend\022\013\n\003uid\030\001 \002(\t\022\r\n\005s" + + "tate\030\002 \002(\005\022\021\n\tupdate_dt\030\003 \002(\003\022\r\n\005alias\030\004" + + " \001(\t\022\017\n\007blacked\030\005 \001(\005\022\r\n\005extra\030\006 \001(\t\"*\n\020", + "GetFriendsResult\022\026\n\005entry\030\001 \003(\0132\007.Friend" + + "\"7\n\026GetFriendRequestResult\022\035\n\005entry\030\001 \003(" + + "\0132\016.FriendRequest\"\243\001\n\021ConnectAckPayload\022" + + "\020\n\010msg_head\030\001 \001(\003\022\023\n\013friend_head\030\002 \001(\003\022\026" + + "\n\016friend_rq_head\030\003 \001(\003\022\024\n\014setting_head\030\004" + + " \001(\003\022\021\n\tnode_addr\030\005 \001(\t\022\021\n\tnode_port\030\006 \001" + + "(\005\022\023\n\013server_time\030\007 \001(\003\"P\n\rIMHttpWrapper" + + "\022\r\n\005token\030\001 \002(\t\022\021\n\tclient_id\030\002 \002(\t\022\017\n\007re" + + "quest\030\003 \002(\t\022\014\n\004data\030\004 \001(\014\"A\n\021SearchUserR" + + "equest\022\017\n\007keyword\030\001 \002(\t\022\r\n\005fuzzy\030\002 \001(\005\022\014", + "\n\004page\030\003 \001(\005\"(\n\020SearchUserResult\022\024\n\005entr" + + "y\030\001 \003(\0132\005.User\"@\n\026GetChatroomInfoRequest" + + "\022\023\n\013chatroom_id\030\001 \002(\t\022\021\n\tupdate_dt\030\002 \001(\003" + + "\"\227\001\n\014ChatroomInfo\022\r\n\005title\030\001 \002(\t\022\014\n\004desc" + + "\030\002 \001(\t\022\020\n\010portrait\030\003 \001(\t\022\024\n\014member_count" + + "\030\004 \001(\005\022\021\n\tcreate_dt\030\005 \001(\003\022\021\n\tupdate_dt\030\006" + + " \001(\003\022\r\n\005extra\030\007 \001(\t\022\r\n\005state\030\010 \001(\005\"F\n\034Ge" + + "tChatroomMemberInfoRequest\022\023\n\013chatroom_i" + + "d\030\001 \002(\t\022\021\n\tmax_count\030\002 \001(\005\";\n\022ChatroomMe" + + "mberInfo\022\024\n\014member_count\030\001 \001(\005\022\017\n\007member", + "s\030\002 \003(\t\"\026\n\010INT64Buf\022\n\n\002id\030\001 \002(\003\"4\n\023Notif" + + "yRecallMessage\022\n\n\002id\030\001 \002(\003\022\021\n\tfrom_user\030" + + "\002 \002(\t\"/\n\020BlackUserRequest\022\013\n\003uid\030\001 \002(\t\022\016" + + "\n\006status\030\002 \002(\005\"\323\001\n\014RouteRequest\022\013\n\003app\030\001" + + " \001(\t\022\020\n\010platform\030\002 \001(\005\022\021\n\tpush_type\030\003 \001(" + + "\005\022\023\n\013device_name\030\004 \001(\t\022\026\n\016device_version" + + "\030\005 \001(\t\022\022\n\nphone_name\030\006 \001(\t\022\020\n\010language\030\007" + + " \001(\t\022\024\n\014carrier_name\030\010 \001(\t\022\023\n\013app_versio" + + "n\030\t \001(\t\022\023\n\013sdk_version\030\n \001(\t\"D\n\rRouteRes" + + "ponse\022\014\n\004host\030\001 \002(\t\022\021\n\tlong_port\030\002 \002(\005\022\022", + "\n\nshort_port\030\003 \002(\005\"G\n\017GetTokenRequest\022\017\n" + + "\007user_id\030\001 \002(\t\022\021\n\tclient_id\030\002 \002(\t\022\020\n\010pla" + + "tform\030\003 \001(\005\"\\\n\022LoadRemoteMessages\022#\n\014con" + + "versation\030\001 \002(\0132\r.Conversation\022\022\n\nbefore" + + "_uid\030\002 \002(\003\022\r\n\005count\030\003 \002(\005\"a\n\020MultiCastMe" + + "ssage\022\021\n\tfrom_user\030\001 \002(\t\022 \n\007content\030\002 \002(" + + "\0132\017.MessageContent\022\n\n\002to\030\003 \003(\t\022\014\n\004line\030\004" + + " \002(\005\"E\n\035RecallMultiCastMessageRequest\022\022\n" + + "\nmessage_id\030\001 \002(\003\022\020\n\010receiver\030\002 \003(\tB#\n\025c" + + "n.wildfirechat.protoB\nWFCMessage" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -60071,7 +60853,7 @@ public final class WFCMessage { internal_static_AddFriendRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_AddFriendRequest_descriptor, - new java.lang.String[] { "TargetUid", "Reason", }); + new java.lang.String[] { "TargetUid", "Reason", "Extra", }); internal_static_Conversation_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_Conversation_fieldAccessorTable = new @@ -60089,7 +60871,7 @@ public final class WFCMessage { internal_static_GroupMember_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_GroupMember_descriptor, - new java.lang.String[] { "MemberId", "Alias", "Type", "UpdateDt", "CreateDt", }); + new java.lang.String[] { "MemberId", "Alias", "Type", "UpdateDt", "CreateDt", "Extra", }); internal_static_Group_descriptor = getDescriptor().getMessageTypes().get(4); internal_static_Group_fieldAccessorTable = new @@ -60155,13 +60937,13 @@ public final class WFCMessage { internal_static_AddGroupMemberRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_AddGroupMemberRequest_descriptor, - new java.lang.String[] { "GroupId", "AddedMember", "ToLine", "NotifyContent", }); + new java.lang.String[] { "GroupId", "AddedMember", "ToLine", "NotifyContent", "Extra", }); internal_static_CreateGroupRequest_descriptor = getDescriptor().getMessageTypes().get(15); internal_static_CreateGroupRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_CreateGroupRequest_descriptor, - new java.lang.String[] { "Group", "ToLine", "NotifyContent", }); + new java.lang.String[] { "Group", "ToLine", "NotifyContent", "MemberExtra", }); internal_static_DismissGroupRequest_descriptor = getDescriptor().getMessageTypes().get(16); internal_static_DismissGroupRequest_fieldAccessorTable = new @@ -60173,7 +60955,7 @@ public final class WFCMessage { internal_static_FriendRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_FriendRequest_descriptor, - new java.lang.String[] { "FromUid", "ToUid", "Reason", "Status", "UpdateDt", "FromReadStatus", "ToReadStatus", }); + new java.lang.String[] { "FromUid", "ToUid", "Reason", "Status", "UpdateDt", "FromReadStatus", "ToReadStatus", "Extra", }); internal_static_GeneralResult_descriptor = getDescriptor().getMessageTypes().get(18); internal_static_GeneralResult_fieldAccessorTable = new