Handle read receipts from Matrix
This commit is contained in:
parent
a21388cdfc
commit
7860fb64c8
10 changed files with 522 additions and 200 deletions
|
@ -6,7 +6,7 @@
|
|||
* [x] Replies (RCS)
|
||||
* [x] Reactions (RCS)
|
||||
* [ ] Typing notifications (RCS)
|
||||
* [ ] Read receipts (RCS)
|
||||
* [x] Read receipts (RCS)
|
||||
* [x] Message deletions (own device only)
|
||||
* Google Messages → Matrix
|
||||
* [ ] Message content
|
||||
|
|
|
@ -216,6 +216,61 @@ func (x *NotifyDittoActivityPayload) GetSuccess() bool {
|
|||
return false
|
||||
}
|
||||
|
||||
type MessageReadPayload struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
ConversationID string `protobuf:"bytes,2,opt,name=conversationID,proto3" json:"conversationID,omitempty"`
|
||||
MessageID string `protobuf:"bytes,3,opt,name=messageID,proto3" json:"messageID,omitempty"`
|
||||
}
|
||||
|
||||
func (x *MessageReadPayload) Reset() {
|
||||
*x = MessageReadPayload{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_client_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *MessageReadPayload) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*MessageReadPayload) ProtoMessage() {}
|
||||
|
||||
func (x *MessageReadPayload) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_client_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use MessageReadPayload.ProtoReflect.Descriptor instead.
|
||||
func (*MessageReadPayload) Descriptor() ([]byte, []int) {
|
||||
return file_client_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *MessageReadPayload) GetConversationID() string {
|
||||
if x != nil {
|
||||
return x.ConversationID
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *MessageReadPayload) GetMessageID() string {
|
||||
if x != nil {
|
||||
return x.MessageID
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type AckMessageResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
|
@ -227,7 +282,7 @@ type AckMessageResponse struct {
|
|||
func (x *AckMessageResponse) Reset() {
|
||||
*x = AckMessageResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_client_proto_msgTypes[1]
|
||||
mi := &file_client_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -240,7 +295,7 @@ func (x *AckMessageResponse) String() string {
|
|||
func (*AckMessageResponse) ProtoMessage() {}
|
||||
|
||||
func (x *AckMessageResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_client_proto_msgTypes[1]
|
||||
mi := &file_client_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -253,7 +308,7 @@ func (x *AckMessageResponse) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use AckMessageResponse.ProtoReflect.Descriptor instead.
|
||||
func (*AckMessageResponse) Descriptor() ([]byte, []int) {
|
||||
return file_client_proto_rawDescGZIP(), []int{1}
|
||||
return file_client_proto_rawDescGZIP(), []int{2}
|
||||
}
|
||||
|
||||
func (x *AckMessageResponse) GetContainer() *AckContainer {
|
||||
|
@ -274,7 +329,7 @@ type AckContainer struct {
|
|||
func (x *AckContainer) Reset() {
|
||||
*x = AckContainer{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_client_proto_msgTypes[2]
|
||||
mi := &file_client_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -287,7 +342,7 @@ func (x *AckContainer) String() string {
|
|||
func (*AckContainer) ProtoMessage() {}
|
||||
|
||||
func (x *AckContainer) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_client_proto_msgTypes[2]
|
||||
mi := &file_client_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -300,7 +355,7 @@ func (x *AckContainer) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use AckContainer.ProtoReflect.Descriptor instead.
|
||||
func (*AckContainer) Descriptor() ([]byte, []int) {
|
||||
return file_client_proto_rawDescGZIP(), []int{2}
|
||||
return file_client_proto_rawDescGZIP(), []int{3}
|
||||
}
|
||||
|
||||
func (x *AckContainer) GetData() *AckData {
|
||||
|
@ -321,7 +376,7 @@ type AckData struct {
|
|||
func (x *AckData) Reset() {
|
||||
*x = AckData{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_client_proto_msgTypes[3]
|
||||
mi := &file_client_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -334,7 +389,7 @@ func (x *AckData) String() string {
|
|||
func (*AckData) ProtoMessage() {}
|
||||
|
||||
func (x *AckData) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_client_proto_msgTypes[3]
|
||||
mi := &file_client_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -347,7 +402,7 @@ func (x *AckData) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use AckData.ProtoReflect.Descriptor instead.
|
||||
func (*AckData) Descriptor() ([]byte, []int) {
|
||||
return file_client_proto_rawDescGZIP(), []int{3}
|
||||
return file_client_proto_rawDescGZIP(), []int{4}
|
||||
}
|
||||
|
||||
func (x *AckData) GetAckAmount() *AckAmount {
|
||||
|
@ -368,7 +423,7 @@ type AckAmount struct {
|
|||
func (x *AckAmount) Reset() {
|
||||
*x = AckAmount{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_client_proto_msgTypes[4]
|
||||
mi := &file_client_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -381,7 +436,7 @@ func (x *AckAmount) String() string {
|
|||
func (*AckAmount) ProtoMessage() {}
|
||||
|
||||
func (x *AckAmount) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_client_proto_msgTypes[4]
|
||||
mi := &file_client_proto_msgTypes[5]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -394,7 +449,7 @@ func (x *AckAmount) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use AckAmount.ProtoReflect.Descriptor instead.
|
||||
func (*AckAmount) Descriptor() ([]byte, []int) {
|
||||
return file_client_proto_rawDescGZIP(), []int{4}
|
||||
return file_client_proto_rawDescGZIP(), []int{5}
|
||||
}
|
||||
|
||||
func (x *AckAmount) GetCount() int32 {
|
||||
|
@ -417,7 +472,7 @@ type AckMessagePayload struct {
|
|||
func (x *AckMessagePayload) Reset() {
|
||||
*x = AckMessagePayload{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_client_proto_msgTypes[5]
|
||||
mi := &file_client_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -430,7 +485,7 @@ func (x *AckMessagePayload) String() string {
|
|||
func (*AckMessagePayload) ProtoMessage() {}
|
||||
|
||||
func (x *AckMessagePayload) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_client_proto_msgTypes[5]
|
||||
mi := &file_client_proto_msgTypes[6]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -443,7 +498,7 @@ func (x *AckMessagePayload) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use AckMessagePayload.ProtoReflect.Descriptor instead.
|
||||
func (*AckMessagePayload) Descriptor() ([]byte, []int) {
|
||||
return file_client_proto_rawDescGZIP(), []int{5}
|
||||
return file_client_proto_rawDescGZIP(), []int{6}
|
||||
}
|
||||
|
||||
func (x *AckMessagePayload) GetAuthData() *AuthMessage {
|
||||
|
@ -479,7 +534,7 @@ type AckMessageData struct {
|
|||
func (x *AckMessageData) Reset() {
|
||||
*x = AckMessageData{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_client_proto_msgTypes[6]
|
||||
mi := &file_client_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -492,7 +547,7 @@ func (x *AckMessageData) String() string {
|
|||
func (*AckMessageData) ProtoMessage() {}
|
||||
|
||||
func (x *AckMessageData) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_client_proto_msgTypes[6]
|
||||
mi := &file_client_proto_msgTypes[7]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -505,7 +560,7 @@ func (x *AckMessageData) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use AckMessageData.ProtoReflect.Descriptor instead.
|
||||
func (*AckMessageData) Descriptor() ([]byte, []int) {
|
||||
return file_client_proto_rawDescGZIP(), []int{6}
|
||||
return file_client_proto_rawDescGZIP(), []int{7}
|
||||
}
|
||||
|
||||
func (x *AckMessageData) GetRequestID() string {
|
||||
|
@ -534,7 +589,7 @@ type ImageMetaData struct {
|
|||
func (x *ImageMetaData) Reset() {
|
||||
*x = ImageMetaData{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_client_proto_msgTypes[7]
|
||||
mi := &file_client_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -547,7 +602,7 @@ func (x *ImageMetaData) String() string {
|
|||
func (*ImageMetaData) ProtoMessage() {}
|
||||
|
||||
func (x *ImageMetaData) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_client_proto_msgTypes[7]
|
||||
mi := &file_client_proto_msgTypes[8]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -560,7 +615,7 @@ func (x *ImageMetaData) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use ImageMetaData.ProtoReflect.Descriptor instead.
|
||||
func (*ImageMetaData) Descriptor() ([]byte, []int) {
|
||||
return file_client_proto_rawDescGZIP(), []int{7}
|
||||
return file_client_proto_rawDescGZIP(), []int{8}
|
||||
}
|
||||
|
||||
func (x *ImageMetaData) GetImageID() string {
|
||||
|
@ -589,7 +644,7 @@ type UploadImagePayload struct {
|
|||
func (x *UploadImagePayload) Reset() {
|
||||
*x = UploadImagePayload{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_client_proto_msgTypes[8]
|
||||
mi := &file_client_proto_msgTypes[9]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -602,7 +657,7 @@ func (x *UploadImagePayload) String() string {
|
|||
func (*UploadImagePayload) ProtoMessage() {}
|
||||
|
||||
func (x *UploadImagePayload) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_client_proto_msgTypes[8]
|
||||
mi := &file_client_proto_msgTypes[9]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -615,7 +670,7 @@ func (x *UploadImagePayload) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use UploadImagePayload.ProtoReflect.Descriptor instead.
|
||||
func (*UploadImagePayload) Descriptor() ([]byte, []int) {
|
||||
return file_client_proto_rawDescGZIP(), []int{8}
|
||||
return file_client_proto_rawDescGZIP(), []int{9}
|
||||
}
|
||||
|
||||
func (x *UploadImagePayload) GetMetaData() *ImageMetaData {
|
||||
|
@ -643,7 +698,7 @@ type BugleBackendService struct {
|
|||
func (x *BugleBackendService) Reset() {
|
||||
*x = BugleBackendService{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_client_proto_msgTypes[9]
|
||||
mi := &file_client_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -656,7 +711,7 @@ func (x *BugleBackendService) String() string {
|
|||
func (*BugleBackendService) ProtoMessage() {}
|
||||
|
||||
func (x *BugleBackendService) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_client_proto_msgTypes[9]
|
||||
mi := &file_client_proto_msgTypes[10]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -669,7 +724,7 @@ func (x *BugleBackendService) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use BugleBackendService.ProtoReflect.Descriptor instead.
|
||||
func (*BugleBackendService) Descriptor() ([]byte, []int) {
|
||||
return file_client_proto_rawDescGZIP(), []int{9}
|
||||
return file_client_proto_rawDescGZIP(), []int{10}
|
||||
}
|
||||
|
||||
func (x *BugleBackendService) GetData() *BugleCode {
|
||||
|
@ -690,7 +745,7 @@ type BugleCode struct {
|
|||
func (x *BugleCode) Reset() {
|
||||
*x = BugleCode{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_client_proto_msgTypes[10]
|
||||
mi := &file_client_proto_msgTypes[11]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -703,7 +758,7 @@ func (x *BugleCode) String() string {
|
|||
func (*BugleCode) ProtoMessage() {}
|
||||
|
||||
func (x *BugleCode) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_client_proto_msgTypes[10]
|
||||
mi := &file_client_proto_msgTypes[11]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -716,7 +771,7 @@ func (x *BugleCode) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use BugleCode.ProtoReflect.Descriptor instead.
|
||||
func (*BugleCode) Descriptor() ([]byte, []int) {
|
||||
return file_client_proto_rawDescGZIP(), []int{10}
|
||||
return file_client_proto_rawDescGZIP(), []int{11}
|
||||
}
|
||||
|
||||
func (x *BugleCode) GetType() int64 {
|
||||
|
@ -734,80 +789,86 @@ var file_client_proto_rawDesc = []byte{
|
|||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x36, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79,
|
||||
0x44, 0x69, 0x74, 0x74, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x61, 0x79,
|
||||
0x6c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x48,
|
||||
0x0a, 0x12, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
|
||||
0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
|
||||
0x2e, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x63,
|
||||
0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x22, 0x33, 0x0a, 0x0c, 0x41, 0x63, 0x6b, 0x43,
|
||||
0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e,
|
||||
0x41, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x3a, 0x0a,
|
||||
0x07, 0x41, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x63, 0x6b, 0x41,
|
||||
0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c,
|
||||
0x69, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x6b, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x09,
|
||||
0x61, 0x63, 0x6b, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x21, 0x0a, 0x09, 0x41, 0x63, 0x6b,
|
||||
0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a,
|
||||
0x11, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f,
|
||||
0x61, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e,
|
||||
0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x61, 0x75, 0x74,
|
||||
0x68, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x08, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x41, 0x72,
|
||||
0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
|
||||
0x65, 0x73, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x41, 0x72, 0x72, 0x52, 0x08, 0x65, 0x6d, 0x70,
|
||||
0x74, 0x79, 0x41, 0x72, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x43, 0x6c, 0x75, 0x65, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, 0x6f, 0x43, 0x6c, 0x75, 0x65, 0x22, 0x58, 0x0a,
|
||||
0x0e, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12,
|
||||
0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x12, 0x28, 0x0a,
|
||||
0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
|
||||
0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52,
|
||||
0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x47, 0x0a, 0x0d, 0x49, 0x6d, 0x61, 0x67, 0x65,
|
||||
0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6d, 0x61, 0x67,
|
||||
0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65,
|
||||
0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64,
|
||||
0x22, 0x7a, 0x0a, 0x12, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50,
|
||||
0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61,
|
||||
0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
|
||||
0x74, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52,
|
||||
0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x75, 0x74,
|
||||
0x68, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65,
|
||||
0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61,
|
||||
0x67, 0x65, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x22, 0x3c, 0x0a, 0x13,
|
||||
0x42, 0x75, 0x67, 0x6c, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76,
|
||||
0x69, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x75, 0x67, 0x6c, 0x65,
|
||||
0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1f, 0x0a, 0x09, 0x42, 0x75,
|
||||
0x67, 0x6c, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x2a, 0x90, 0x02, 0x0a, 0x10,
|
||||
0x42, 0x75, 0x67, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65,
|
||||
0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x42, 0x55, 0x47, 0x4c,
|
||||
0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00,
|
||||
0x12, 0x07, 0x0a, 0x03, 0x53, 0x4d, 0x53, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x4d, 0x53,
|
||||
0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x43, 0x53, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x43,
|
||||
0x4c, 0x4f, 0x55, 0x44, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49,
|
||||
0x4d, 0x44, 0x4e, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x05, 0x12,
|
||||
0x12, 0x0a, 0x0e, 0x49, 0x4d, 0x44, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x50, 0x4c, 0x41, 0x59, 0x45,
|
||||
0x44, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x4d, 0x44, 0x4e, 0x5f, 0x46, 0x41, 0x4c, 0x4c,
|
||||
0x42, 0x41, 0x43, 0x4b, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x43, 0x53, 0x5f, 0x47, 0x45,
|
||||
0x4e, 0x45, 0x52, 0x49, 0x43, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x54, 0x44, 0x10, 0x09,
|
||||
0x12, 0x12, 0x0a, 0x0e, 0x46, 0x54, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x5f, 0x4c, 0x45, 0x47, 0x41,
|
||||
0x43, 0x59, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x54, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x5f,
|
||||
0x58, 0x4d, 0x4c, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x45, 0x52,
|
||||
0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x42,
|
||||
0x4d, 0x5f, 0x53, 0x50, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x0d, 0x12,
|
||||
0x0d, 0x0a, 0x09, 0x53, 0x41, 0x54, 0x45, 0x4c, 0x4c, 0x49, 0x54, 0x45, 0x10, 0x0e, 0x2a, 0x75,
|
||||
0x0a, 0x0c, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x18,
|
||||
0x0a, 0x14, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x42, 0x52, 0x4f, 0x57, 0x53, 0x45,
|
||||
0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x54, 0x48, 0x45,
|
||||
0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x48, 0x52, 0x4f, 0x4d, 0x45, 0x10, 0x02, 0x12,
|
||||
0x0b, 0x0a, 0x07, 0x46, 0x49, 0x52, 0x45, 0x46, 0x4f, 0x58, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06,
|
||||
0x53, 0x41, 0x46, 0x41, 0x52, 0x49, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x50, 0x45, 0x52,
|
||||
0x41, 0x10, 0x05, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x45, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x45,
|
||||
0x44, 0x47, 0x45, 0x10, 0x07, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x62,
|
||||
0x69, 0x6e, 0x61, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x5a,
|
||||
0x0a, 0x12, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x61, 0x64, 0x50, 0x61, 0x79,
|
||||
0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f,
|
||||
0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09,
|
||||
0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x22, 0x48, 0x0a, 0x12, 0x41, 0x63,
|
||||
0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x12, 0x32, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x6b,
|
||||
0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61,
|
||||
0x69, 0x6e, 0x65, 0x72, 0x22, 0x33, 0x0a, 0x0c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x61,
|
||||
0x69, 0x6e, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x6b, 0x44,
|
||||
0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x3a, 0x0a, 0x07, 0x41, 0x63, 0x6b,
|
||||
0x44, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x63, 0x6b, 0x41, 0x6d, 0x6f, 0x75, 0x6e,
|
||||
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
|
||||
0x2e, 0x41, 0x63, 0x6b, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x09, 0x61, 0x63, 0x6b, 0x41,
|
||||
0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x21, 0x0a, 0x09, 0x41, 0x63, 0x6b, 0x41, 0x6d, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x41, 0x63, 0x6b,
|
||||
0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x31,
|
||||
0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x15, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68,
|
||||
0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74,
|
||||
0x61, 0x12, 0x2e, 0x0a, 0x08, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x41, 0x72, 0x72, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45,
|
||||
0x6d, 0x70, 0x74, 0x79, 0x41, 0x72, 0x72, 0x52, 0x08, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x41, 0x72,
|
||||
0x72, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x43, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x0c, 0x52, 0x06, 0x6e, 0x6f, 0x43, 0x6c, 0x75, 0x65, 0x22, 0x58, 0x0a, 0x0e, 0x41, 0x63, 0x6b,
|
||||
0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x72,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
|
||||
0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x06, 0x64, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73,
|
||||
0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x22, 0x47, 0x0a, 0x0d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61,
|
||||
0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x1c,
|
||||
0x0a, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x08, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x22, 0x7a, 0x0a, 0x12,
|
||||
0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f,
|
||||
0x61, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6d,
|
||||
0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74,
|
||||
0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74,
|
||||
0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
|
||||
0x65, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08,
|
||||
0x61, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x22, 0x3c, 0x0a, 0x13, 0x42, 0x75, 0x67, 0x6c,
|
||||
0x65, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
|
||||
0x25, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
|
||||
0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x75, 0x67, 0x6c, 0x65, 0x43, 0x6f, 0x64, 0x65,
|
||||
0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1f, 0x0a, 0x09, 0x42, 0x75, 0x67, 0x6c, 0x65, 0x43,
|
||||
0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x2a, 0x90, 0x02, 0x0a, 0x10, 0x42, 0x75, 0x67, 0x6c,
|
||||
0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a,
|
||||
0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x42, 0x55, 0x47, 0x4c, 0x45, 0x5f, 0x4d, 0x45,
|
||||
0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
|
||||
0x53, 0x4d, 0x53, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x4d, 0x53, 0x10, 0x02, 0x12, 0x07,
|
||||
0x0a, 0x03, 0x52, 0x43, 0x53, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4c, 0x4f, 0x55, 0x44,
|
||||
0x5f, 0x53, 0x59, 0x4e, 0x43, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4d, 0x44, 0x4e, 0x5f,
|
||||
0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x49,
|
||||
0x4d, 0x44, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, 0x06, 0x12,
|
||||
0x11, 0x0a, 0x0d, 0x49, 0x4d, 0x44, 0x4e, 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b,
|
||||
0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49,
|
||||
0x43, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x54, 0x44, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e,
|
||||
0x46, 0x54, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x5f, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x10, 0x0a,
|
||||
0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x54, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x5f, 0x58, 0x4d, 0x4c, 0x10,
|
||||
0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53,
|
||||
0x53, 0x41, 0x47, 0x45, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x42, 0x4d, 0x5f, 0x53, 0x50,
|
||||
0x41, 0x4d, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x53,
|
||||
0x41, 0x54, 0x45, 0x4c, 0x4c, 0x49, 0x54, 0x45, 0x10, 0x0e, 0x2a, 0x75, 0x0a, 0x0c, 0x42, 0x72,
|
||||
0x6f, 0x77, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x4e,
|
||||
0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x42, 0x52, 0x4f, 0x57, 0x53, 0x45, 0x52, 0x5f, 0x54, 0x59,
|
||||
0x50, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x01, 0x12,
|
||||
0x0a, 0x0a, 0x06, 0x43, 0x48, 0x52, 0x4f, 0x4d, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46,
|
||||
0x49, 0x52, 0x45, 0x46, 0x4f, 0x58, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x41, 0x46, 0x41,
|
||||
0x52, 0x49, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x10, 0x05, 0x12,
|
||||
0x06, 0x0a, 0x02, 0x49, 0x45, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x45, 0x44, 0x47, 0x45, 0x10,
|
||||
0x07, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x62, 0x69, 0x6e, 0x61, 0x72,
|
||||
0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
@ -823,35 +884,36 @@ func file_client_proto_rawDescGZIP() []byte {
|
|||
}
|
||||
|
||||
var file_client_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
||||
var file_client_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
|
||||
var file_client_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
|
||||
var file_client_proto_goTypes = []interface{}{
|
||||
(BugleMessageType)(0), // 0: client.BugleMessageType
|
||||
(BrowserTypes)(0), // 1: client.BrowserTypes
|
||||
(*NotifyDittoActivityPayload)(nil), // 2: client.NotifyDittoActivityPayload
|
||||
(*AckMessageResponse)(nil), // 3: client.AckMessageResponse
|
||||
(*AckContainer)(nil), // 4: client.AckContainer
|
||||
(*AckData)(nil), // 5: client.AckData
|
||||
(*AckAmount)(nil), // 6: client.AckAmount
|
||||
(*AckMessagePayload)(nil), // 7: client.AckMessagePayload
|
||||
(*AckMessageData)(nil), // 8: client.AckMessageData
|
||||
(*ImageMetaData)(nil), // 9: client.ImageMetaData
|
||||
(*UploadImagePayload)(nil), // 10: client.UploadImagePayload
|
||||
(*BugleBackendService)(nil), // 11: client.BugleBackendService
|
||||
(*BugleCode)(nil), // 12: client.BugleCode
|
||||
(*AuthMessage)(nil), // 13: messages.AuthMessage
|
||||
(*EmptyArr)(nil), // 14: messages.EmptyArr
|
||||
(*Device)(nil), // 15: messages.Device
|
||||
(*MessageReadPayload)(nil), // 3: client.MessageReadPayload
|
||||
(*AckMessageResponse)(nil), // 4: client.AckMessageResponse
|
||||
(*AckContainer)(nil), // 5: client.AckContainer
|
||||
(*AckData)(nil), // 6: client.AckData
|
||||
(*AckAmount)(nil), // 7: client.AckAmount
|
||||
(*AckMessagePayload)(nil), // 8: client.AckMessagePayload
|
||||
(*AckMessageData)(nil), // 9: client.AckMessageData
|
||||
(*ImageMetaData)(nil), // 10: client.ImageMetaData
|
||||
(*UploadImagePayload)(nil), // 11: client.UploadImagePayload
|
||||
(*BugleBackendService)(nil), // 12: client.BugleBackendService
|
||||
(*BugleCode)(nil), // 13: client.BugleCode
|
||||
(*AuthMessage)(nil), // 14: messages.AuthMessage
|
||||
(*EmptyArr)(nil), // 15: messages.EmptyArr
|
||||
(*Device)(nil), // 16: messages.Device
|
||||
}
|
||||
var file_client_proto_depIdxs = []int32{
|
||||
4, // 0: client.AckMessageResponse.container:type_name -> client.AckContainer
|
||||
5, // 1: client.AckContainer.data:type_name -> client.AckData
|
||||
6, // 2: client.AckData.ackAmount:type_name -> client.AckAmount
|
||||
13, // 3: client.AckMessagePayload.authData:type_name -> messages.AuthMessage
|
||||
14, // 4: client.AckMessagePayload.emptyArr:type_name -> messages.EmptyArr
|
||||
15, // 5: client.AckMessageData.device:type_name -> messages.Device
|
||||
9, // 6: client.UploadImagePayload.metaData:type_name -> client.ImageMetaData
|
||||
13, // 7: client.UploadImagePayload.authData:type_name -> messages.AuthMessage
|
||||
12, // 8: client.BugleBackendService.data:type_name -> client.BugleCode
|
||||
5, // 0: client.AckMessageResponse.container:type_name -> client.AckContainer
|
||||
6, // 1: client.AckContainer.data:type_name -> client.AckData
|
||||
7, // 2: client.AckData.ackAmount:type_name -> client.AckAmount
|
||||
14, // 3: client.AckMessagePayload.authData:type_name -> messages.AuthMessage
|
||||
15, // 4: client.AckMessagePayload.emptyArr:type_name -> messages.EmptyArr
|
||||
16, // 5: client.AckMessageData.device:type_name -> messages.Device
|
||||
10, // 6: client.UploadImagePayload.metaData:type_name -> client.ImageMetaData
|
||||
14, // 7: client.UploadImagePayload.authData:type_name -> messages.AuthMessage
|
||||
13, // 8: client.BugleBackendService.data:type_name -> client.BugleCode
|
||||
9, // [9:9] is the sub-list for method output_type
|
||||
9, // [9:9] is the sub-list for method input_type
|
||||
9, // [9:9] is the sub-list for extension type_name
|
||||
|
@ -879,7 +941,7 @@ func file_client_proto_init() {
|
|||
}
|
||||
}
|
||||
file_client_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*AckMessageResponse); i {
|
||||
switch v := v.(*MessageReadPayload); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
|
@ -891,7 +953,7 @@ func file_client_proto_init() {
|
|||
}
|
||||
}
|
||||
file_client_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*AckContainer); i {
|
||||
switch v := v.(*AckMessageResponse); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
|
@ -903,7 +965,7 @@ func file_client_proto_init() {
|
|||
}
|
||||
}
|
||||
file_client_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*AckData); i {
|
||||
switch v := v.(*AckContainer); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
|
@ -915,7 +977,7 @@ func file_client_proto_init() {
|
|||
}
|
||||
}
|
||||
file_client_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*AckAmount); i {
|
||||
switch v := v.(*AckData); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
|
@ -927,7 +989,7 @@ func file_client_proto_init() {
|
|||
}
|
||||
}
|
||||
file_client_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*AckMessagePayload); i {
|
||||
switch v := v.(*AckAmount); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
|
@ -939,7 +1001,7 @@ func file_client_proto_init() {
|
|||
}
|
||||
}
|
||||
file_client_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*AckMessageData); i {
|
||||
switch v := v.(*AckMessagePayload); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
|
@ -951,7 +1013,7 @@ func file_client_proto_init() {
|
|||
}
|
||||
}
|
||||
file_client_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*ImageMetaData); i {
|
||||
switch v := v.(*AckMessageData); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
|
@ -963,7 +1025,7 @@ func file_client_proto_init() {
|
|||
}
|
||||
}
|
||||
file_client_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*UploadImagePayload); i {
|
||||
switch v := v.(*ImageMetaData); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
|
@ -975,7 +1037,7 @@ func file_client_proto_init() {
|
|||
}
|
||||
}
|
||||
file_client_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*BugleBackendService); i {
|
||||
switch v := v.(*UploadImagePayload); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
|
@ -987,6 +1049,18 @@ func file_client_proto_init() {
|
|||
}
|
||||
}
|
||||
file_client_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*BugleBackendService); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_client_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*BugleCode); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
|
@ -1005,7 +1079,7 @@ func file_client_proto_init() {
|
|||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_client_proto_rawDesc,
|
||||
NumEnums: 2,
|
||||
NumMessages: 11,
|
||||
NumMessages: 12,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
|
|
|
@ -72,55 +72,151 @@ func (BugleRoute) EnumDescriptor() ([]byte, []int) {
|
|||
type ActionType int32
|
||||
|
||||
const (
|
||||
ActionType_UNKNOWN_ACTION_TYPE ActionType = 0
|
||||
ActionType_UNSPECIFIED ActionType = 0
|
||||
ActionType_LIST_CONVERSATIONS ActionType = 1
|
||||
ActionType_LIST_MESSAGES ActionType = 2
|
||||
ActionType_SEND_MESSAGE ActionType = 3
|
||||
ActionType_LIST_CONVERSATIONS_SYNC ActionType = 1111
|
||||
ActionType_MESSAGE_UPDATES ActionType = 4
|
||||
ActionType_LIST_CONTACTS ActionType = 6
|
||||
ActionType_CONVERSATION_UPDATES ActionType = 7
|
||||
ActionType_GET_OR_CREATE_CONVERSATION ActionType = 9
|
||||
ActionType_MESSAGE_READ ActionType = 10
|
||||
ActionType_BROWSER_PRESENCE_CHECK ActionType = 11
|
||||
ActionType_TYPING_UPDATES ActionType = 12
|
||||
ActionType_SETTINGS_UPDATE ActionType = 13
|
||||
ActionType_USER_ALERT ActionType = 14
|
||||
ActionType_UPDATE_CONVERSATION ActionType = 15
|
||||
ActionType_GET_UPDATES ActionType = 16
|
||||
ActionType_ACK_BROWSER_PRESENCE ActionType = 17
|
||||
ActionType_LIST_STICKER_SETS ActionType = 18
|
||||
ActionType_LEAVE_RCS_GROUP ActionType = 19
|
||||
ActionType_ADD_PARTICIPANT_TO_RCS_GROUP ActionType = 20
|
||||
ActionType_GET_CONVERSATION_TYPE ActionType = 21
|
||||
ActionType_NOTIFY_DITTO_ACTIVITY ActionType = 22
|
||||
ActionType_DELETE_MESSAGE ActionType = 23
|
||||
ActionType_INSTALL_STICKER_SET ActionType = 24
|
||||
ActionType_RESEND_MESSAGE ActionType = 25
|
||||
ActionType_GET_CONTACT_RCS_GROUP_STATUS ActionType = 26
|
||||
ActionType_DOWNLOAD_MESSAGE ActionType = 27
|
||||
ActionType_LIST_TOP_CONTACTS ActionType = 28
|
||||
ActionType_GET_CONTACTS_THUMBNAIL ActionType = 29
|
||||
ActionType_CHANGE_PARTICIPANT_COLOR ActionType = 30
|
||||
ActionType_IS_BUGLE_DEFAULT ActionType = 31
|
||||
ActionType_STICKER_USER_CONTEXT ActionType = 32
|
||||
ActionType_FAVORITE_STICKER_PACKS ActionType = 33
|
||||
ActionType_RECENT_STICKERS ActionType = 34
|
||||
ActionType_UPDATE_RECENT_STICKERS ActionType = 35
|
||||
ActionType_GET_FULL_SIZE_IMAGE ActionType = 36
|
||||
ActionType_GET_PARTICIPANTS_THUMBNAIL ActionType = 37
|
||||
ActionType_SEND_REACTION ActionType = 38
|
||||
ActionType_SEND_REPLY ActionType = 39
|
||||
ActionType_GET_BLOB_FOR_ATTACHMENT ActionType = 40
|
||||
ActionType_GET_DEVICES_AVAILABLE_FOR_GAIA_PAIRING ActionType = 41
|
||||
ActionType_CREATE_GAIA_PAIRING ActionType = 42
|
||||
ActionType_GET_CONVERSATION ActionType = 43
|
||||
ActionType_CREATE_GAIA_PAIRING_CLIENT_INIT ActionType = 44
|
||||
ActionType_CREATE_GAIA_PAIRING_CLIENT_FINISHED ActionType = 45
|
||||
ActionType_UNPAIR_GAIA_PAIRING ActionType = 46
|
||||
)
|
||||
|
||||
// Enum value maps for ActionType.
|
||||
var (
|
||||
ActionType_name = map[int32]string{
|
||||
0: "UNKNOWN_ACTION_TYPE",
|
||||
0: "UNSPECIFIED",
|
||||
1: "LIST_CONVERSATIONS",
|
||||
2: "LIST_MESSAGES",
|
||||
3: "SEND_MESSAGE",
|
||||
1111: "LIST_CONVERSATIONS_SYNC",
|
||||
4: "MESSAGE_UPDATES",
|
||||
6: "LIST_CONTACTS",
|
||||
7: "CONVERSATION_UPDATES",
|
||||
9: "GET_OR_CREATE_CONVERSATION",
|
||||
10: "MESSAGE_READ",
|
||||
11: "BROWSER_PRESENCE_CHECK",
|
||||
12: "TYPING_UPDATES",
|
||||
13: "SETTINGS_UPDATE",
|
||||
14: "USER_ALERT",
|
||||
15: "UPDATE_CONVERSATION",
|
||||
16: "GET_UPDATES",
|
||||
17: "ACK_BROWSER_PRESENCE",
|
||||
18: "LIST_STICKER_SETS",
|
||||
19: "LEAVE_RCS_GROUP",
|
||||
20: "ADD_PARTICIPANT_TO_RCS_GROUP",
|
||||
21: "GET_CONVERSATION_TYPE",
|
||||
22: "NOTIFY_DITTO_ACTIVITY",
|
||||
23: "DELETE_MESSAGE",
|
||||
24: "INSTALL_STICKER_SET",
|
||||
25: "RESEND_MESSAGE",
|
||||
26: "GET_CONTACT_RCS_GROUP_STATUS",
|
||||
27: "DOWNLOAD_MESSAGE",
|
||||
28: "LIST_TOP_CONTACTS",
|
||||
29: "GET_CONTACTS_THUMBNAIL",
|
||||
30: "CHANGE_PARTICIPANT_COLOR",
|
||||
31: "IS_BUGLE_DEFAULT",
|
||||
32: "STICKER_USER_CONTEXT",
|
||||
33: "FAVORITE_STICKER_PACKS",
|
||||
34: "RECENT_STICKERS",
|
||||
35: "UPDATE_RECENT_STICKERS",
|
||||
36: "GET_FULL_SIZE_IMAGE",
|
||||
37: "GET_PARTICIPANTS_THUMBNAIL",
|
||||
38: "SEND_REACTION",
|
||||
39: "SEND_REPLY",
|
||||
40: "GET_BLOB_FOR_ATTACHMENT",
|
||||
41: "GET_DEVICES_AVAILABLE_FOR_GAIA_PAIRING",
|
||||
42: "CREATE_GAIA_PAIRING",
|
||||
43: "GET_CONVERSATION",
|
||||
44: "CREATE_GAIA_PAIRING_CLIENT_INIT",
|
||||
45: "CREATE_GAIA_PAIRING_CLIENT_FINISHED",
|
||||
46: "UNPAIR_GAIA_PAIRING",
|
||||
}
|
||||
ActionType_value = map[string]int32{
|
||||
"UNKNOWN_ACTION_TYPE": 0,
|
||||
"UNSPECIFIED": 0,
|
||||
"LIST_CONVERSATIONS": 1,
|
||||
"LIST_MESSAGES": 2,
|
||||
"SEND_MESSAGE": 3,
|
||||
"LIST_CONVERSATIONS_SYNC": 1111,
|
||||
"MESSAGE_UPDATES": 4,
|
||||
"LIST_CONTACTS": 6,
|
||||
"CONVERSATION_UPDATES": 7,
|
||||
"GET_OR_CREATE_CONVERSATION": 9,
|
||||
"MESSAGE_READ": 10,
|
||||
"BROWSER_PRESENCE_CHECK": 11,
|
||||
"TYPING_UPDATES": 12,
|
||||
"SETTINGS_UPDATE": 13,
|
||||
"USER_ALERT": 14,
|
||||
"UPDATE_CONVERSATION": 15,
|
||||
"GET_UPDATES": 16,
|
||||
"ACK_BROWSER_PRESENCE": 17,
|
||||
"LIST_STICKER_SETS": 18,
|
||||
"LEAVE_RCS_GROUP": 19,
|
||||
"ADD_PARTICIPANT_TO_RCS_GROUP": 20,
|
||||
"GET_CONVERSATION_TYPE": 21,
|
||||
"NOTIFY_DITTO_ACTIVITY": 22,
|
||||
"DELETE_MESSAGE": 23,
|
||||
"INSTALL_STICKER_SET": 24,
|
||||
"RESEND_MESSAGE": 25,
|
||||
"GET_CONTACT_RCS_GROUP_STATUS": 26,
|
||||
"DOWNLOAD_MESSAGE": 27,
|
||||
"LIST_TOP_CONTACTS": 28,
|
||||
"GET_CONTACTS_THUMBNAIL": 29,
|
||||
"CHANGE_PARTICIPANT_COLOR": 30,
|
||||
"IS_BUGLE_DEFAULT": 31,
|
||||
"STICKER_USER_CONTEXT": 32,
|
||||
"FAVORITE_STICKER_PACKS": 33,
|
||||
"RECENT_STICKERS": 34,
|
||||
"UPDATE_RECENT_STICKERS": 35,
|
||||
"GET_FULL_SIZE_IMAGE": 36,
|
||||
"GET_PARTICIPANTS_THUMBNAIL": 37,
|
||||
"SEND_REACTION": 38,
|
||||
"SEND_REPLY": 39,
|
||||
"GET_BLOB_FOR_ATTACHMENT": 40,
|
||||
"GET_DEVICES_AVAILABLE_FOR_GAIA_PAIRING": 41,
|
||||
"CREATE_GAIA_PAIRING": 42,
|
||||
"GET_CONVERSATION": 43,
|
||||
"CREATE_GAIA_PAIRING_CLIENT_INIT": 44,
|
||||
"CREATE_GAIA_PAIRING_CLIENT_FINISHED": 45,
|
||||
"UNPAIR_GAIA_PAIRING": 46,
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -628,7 +724,7 @@ func (x *InternalRequestData) GetAction() ActionType {
|
|||
if x != nil {
|
||||
return x.Action
|
||||
}
|
||||
return ActionType_UNKNOWN_ACTION_TYPE
|
||||
return ActionType_UNSPECIFIED
|
||||
}
|
||||
|
||||
func (x *InternalRequestData) GetBool1() bool {
|
||||
|
@ -863,7 +959,7 @@ func (x *SendMessageInternal) GetAction() ActionType {
|
|||
if x != nil {
|
||||
return x.Action
|
||||
}
|
||||
return ActionType_UNKNOWN_ACTION_TYPE
|
||||
return ActionType_UNSPECIFIED
|
||||
}
|
||||
|
||||
func (x *SendMessageInternal) GetEncryptedProtoData() []byte {
|
||||
|
@ -1657,34 +1753,86 @@ var file_messages_proto_rawDesc = []byte{
|
|||
0x4f, 0x57, 0x4e, 0x5f, 0x42, 0x55, 0x47, 0x4c, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x10,
|
||||
0x00, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x13,
|
||||
0x12, 0x0d, 0x0a, 0x09, 0x50, 0x61, 0x69, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x0e, 0x2a,
|
||||
0xd1, 0x02, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17,
|
||||
0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e,
|
||||
0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x53, 0x54, 0x5f,
|
||||
0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x01, 0x12,
|
||||
0x11, 0x0a, 0x0d, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x53,
|
||||
0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
|
||||
0x47, 0x45, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x17, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4e,
|
||||
0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x10,
|
||||
0xd7, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e,
|
||||
0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0f, 0x12, 0x0f, 0x0a, 0x0b, 0x47,
|
||||
0x45, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x10, 0x10, 0x12, 0x19, 0x0a, 0x15,
|
||||
0x47, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e,
|
||||
0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x15, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x54, 0x49, 0x46,
|
||||
0x59, 0x5f, 0x44, 0x49, 0x54, 0x54, 0x4f, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59,
|
||||
0x10, 0x16, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53,
|
||||
0x53, 0x41, 0x47, 0x45, 0x10, 0x17, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x44,
|
||||
0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x53,
|
||||
0x5f, 0x42, 0x55, 0x47, 0x4c, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x1f,
|
||||
0x12, 0x1e, 0x0a, 0x1a, 0x47, 0x45, 0x54, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50,
|
||||
0x41, 0x4e, 0x54, 0x53, 0x5f, 0x54, 0x48, 0x55, 0x4d, 0x42, 0x4e, 0x41, 0x49, 0x4c, 0x10, 0x25,
|
||||
0x12, 0x11, 0x0a, 0x0d, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x43, 0x54, 0x49, 0x4f,
|
||||
0x4e, 0x10, 0x26, 0x2a, 0x50, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79,
|
||||
0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x45,
|
||||
0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
|
||||
0x42, 0x55, 0x47, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12,
|
||||
0x14, 0x0a, 0x10, 0x42, 0x55, 0x47, 0x4c, 0x45, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54,
|
||||
0x49, 0x4f, 0x4e, 0x10, 0x10, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x62,
|
||||
0x69, 0x6e, 0x61, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x8b, 0x09, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f,
|
||||
0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
|
||||
0x16, 0x0a, 0x12, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x41,
|
||||
0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x49, 0x53, 0x54, 0x5f,
|
||||
0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x53, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x45,
|
||||
0x4e, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x17,
|
||||
0x4c, 0x49, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f,
|
||||
0x4e, 0x53, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x10, 0xd7, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x45,
|
||||
0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x10, 0x04, 0x12,
|
||||
0x11, 0x0a, 0x0d, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x43, 0x54, 0x53,
|
||||
0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49,
|
||||
0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a,
|
||||
0x47, 0x45, 0x54, 0x5f, 0x4f, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f,
|
||||
0x4e, 0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c,
|
||||
0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x10, 0x0a, 0x12, 0x1a,
|
||||
0x0a, 0x16, 0x42, 0x52, 0x4f, 0x57, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e,
|
||||
0x43, 0x45, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x59,
|
||||
0x50, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x13,
|
||||
0x0a, 0x0f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54,
|
||||
0x45, 0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x41, 0x4c, 0x45, 0x52,
|
||||
0x54, 0x10, 0x0e, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f,
|
||||
0x4e, 0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0f, 0x12, 0x0f, 0x0a, 0x0b,
|
||||
0x47, 0x45, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x10, 0x10, 0x12, 0x18, 0x0a,
|
||||
0x14, 0x41, 0x43, 0x4b, 0x5f, 0x42, 0x52, 0x4f, 0x57, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45,
|
||||
0x53, 0x45, 0x4e, 0x43, 0x45, 0x10, 0x11, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x49, 0x53, 0x54, 0x5f,
|
||||
0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x54, 0x53, 0x10, 0x12, 0x12, 0x13,
|
||||
0x0a, 0x0f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x47, 0x52, 0x4f, 0x55,
|
||||
0x50, 0x10, 0x13, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49,
|
||||
0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x54, 0x4f, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x47, 0x52,
|
||||
0x4f, 0x55, 0x50, 0x10, 0x14, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e,
|
||||
0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x15,
|
||||
0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x44, 0x49, 0x54, 0x54, 0x4f,
|
||||
0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x10, 0x16, 0x12, 0x12, 0x0a, 0x0e, 0x44,
|
||||
0x45, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x17, 0x12,
|
||||
0x17, 0x0a, 0x13, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x5f, 0x53, 0x54, 0x49, 0x43, 0x4b,
|
||||
0x45, 0x52, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x45, 0x53, 0x45,
|
||||
0x4e, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x19, 0x12, 0x20, 0x0a, 0x1c,
|
||||
0x47, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x43, 0x54, 0x5f, 0x52, 0x43, 0x53, 0x5f,
|
||||
0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x1a, 0x12, 0x14,
|
||||
0x0a, 0x10, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
|
||||
0x47, 0x45, 0x10, 0x1b, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x54, 0x4f, 0x50,
|
||||
0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x43, 0x54, 0x53, 0x10, 0x1c, 0x12, 0x1a, 0x0a, 0x16, 0x47,
|
||||
0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x43, 0x54, 0x53, 0x5f, 0x54, 0x48, 0x55, 0x4d,
|
||||
0x42, 0x4e, 0x41, 0x49, 0x4c, 0x10, 0x1d, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x4e, 0x47,
|
||||
0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x43, 0x4f,
|
||||
0x4c, 0x4f, 0x52, 0x10, 0x1e, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x53, 0x5f, 0x42, 0x55, 0x47, 0x4c,
|
||||
0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x53,
|
||||
0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x54,
|
||||
0x45, 0x58, 0x54, 0x10, 0x20, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x41, 0x56, 0x4f, 0x52, 0x49, 0x54,
|
||||
0x45, 0x5f, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x53, 0x10,
|
||||
0x21, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x49, 0x43,
|
||||
0x4b, 0x45, 0x52, 0x53, 0x10, 0x22, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45,
|
||||
0x5f, 0x52, 0x45, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x53,
|
||||
0x10, 0x23, 0x12, 0x17, 0x0a, 0x13, 0x47, 0x45, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x53,
|
||||
0x49, 0x5a, 0x45, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x24, 0x12, 0x1e, 0x0a, 0x1a, 0x47,
|
||||
0x45, 0x54, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x53, 0x5f,
|
||||
0x54, 0x48, 0x55, 0x4d, 0x42, 0x4e, 0x41, 0x49, 0x4c, 0x10, 0x25, 0x12, 0x11, 0x0a, 0x0d, 0x53,
|
||||
0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x26, 0x12, 0x0e,
|
||||
0x0a, 0x0a, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x10, 0x27, 0x12, 0x1b,
|
||||
0x0a, 0x17, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x41,
|
||||
0x54, 0x54, 0x41, 0x43, 0x48, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x28, 0x12, 0x2a, 0x0a, 0x26, 0x47,
|
||||
0x45, 0x54, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x53, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c,
|
||||
0x41, 0x42, 0x4c, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x47, 0x41, 0x49, 0x41, 0x5f, 0x50, 0x41,
|
||||
0x49, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x29, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x52, 0x45, 0x41, 0x54,
|
||||
0x45, 0x5f, 0x47, 0x41, 0x49, 0x41, 0x5f, 0x50, 0x41, 0x49, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x2a,
|
||||
0x12, 0x14, 0x0a, 0x10, 0x47, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x41,
|
||||
0x54, 0x49, 0x4f, 0x4e, 0x10, 0x2b, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45,
|
||||
0x5f, 0x47, 0x41, 0x49, 0x41, 0x5f, 0x50, 0x41, 0x49, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4c,
|
||||
0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x2c, 0x12, 0x27, 0x0a, 0x23, 0x43,
|
||||
0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x47, 0x41, 0x49, 0x41, 0x5f, 0x50, 0x41, 0x49, 0x52, 0x49,
|
||||
0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48,
|
||||
0x45, 0x44, 0x10, 0x2d, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4e, 0x50, 0x41, 0x49, 0x52, 0x5f, 0x47,
|
||||
0x41, 0x49, 0x41, 0x5f, 0x50, 0x41, 0x49, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x2e, 0x2a, 0x50, 0x0a,
|
||||
0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14,
|
||||
0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f,
|
||||
0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x55, 0x47, 0x4c, 0x45, 0x5f,
|
||||
0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x55, 0x47,
|
||||
0x4c, 0x45, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x10, 0x42,
|
||||
0x0e, 0x5a, 0x0c, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x62,
|
||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
|
|
@ -9,6 +9,11 @@ message NotifyDittoActivityPayload {
|
|||
bool success = 2;
|
||||
}
|
||||
|
||||
message MessageReadPayload {
|
||||
string conversationID = 2;
|
||||
string messageID = 3;
|
||||
}
|
||||
|
||||
message AckMessageResponse {
|
||||
AckContainer container = 1;
|
||||
}
|
||||
|
|
|
@ -184,20 +184,52 @@ message ConfigVersion {
|
|||
}
|
||||
|
||||
enum ActionType {
|
||||
UNKNOWN_ACTION_TYPE = 0;
|
||||
UNSPECIFIED = 0;
|
||||
LIST_CONVERSATIONS = 1;
|
||||
LIST_MESSAGES = 2;
|
||||
SEND_MESSAGE = 3;
|
||||
LIST_CONVERSATIONS_SYNC = 1111;
|
||||
MESSAGE_UPDATES = 4;
|
||||
LIST_CONTACTS = 6;
|
||||
CONVERSATION_UPDATES = 7;
|
||||
GET_OR_CREATE_CONVERSATION = 9;
|
||||
MESSAGE_READ = 10;
|
||||
BROWSER_PRESENCE_CHECK = 11;
|
||||
TYPING_UPDATES = 12;
|
||||
SETTINGS_UPDATE = 13;
|
||||
USER_ALERT = 14;
|
||||
UPDATE_CONVERSATION = 15;
|
||||
GET_UPDATES = 16;
|
||||
ACK_BROWSER_PRESENCE = 17;
|
||||
LIST_STICKER_SETS = 18;
|
||||
LEAVE_RCS_GROUP = 19;
|
||||
ADD_PARTICIPANT_TO_RCS_GROUP = 20;
|
||||
GET_CONVERSATION_TYPE = 21;
|
||||
NOTIFY_DITTO_ACTIVITY = 22;
|
||||
DELETE_MESSAGE = 23;
|
||||
INSTALL_STICKER_SET = 24;
|
||||
RESEND_MESSAGE = 25;
|
||||
GET_CONTACT_RCS_GROUP_STATUS = 26;
|
||||
DOWNLOAD_MESSAGE = 27;
|
||||
LIST_TOP_CONTACTS = 28;
|
||||
GET_CONTACTS_THUMBNAIL = 29;
|
||||
CHANGE_PARTICIPANT_COLOR = 30;
|
||||
IS_BUGLE_DEFAULT = 31;
|
||||
STICKER_USER_CONTEXT = 32;
|
||||
FAVORITE_STICKER_PACKS = 33;
|
||||
RECENT_STICKERS = 34;
|
||||
UPDATE_RECENT_STICKERS = 35;
|
||||
GET_FULL_SIZE_IMAGE = 36;
|
||||
GET_PARTICIPANTS_THUMBNAIL = 37;
|
||||
SEND_REACTION = 38;
|
||||
SEND_REPLY = 39;
|
||||
GET_BLOB_FOR_ATTACHMENT = 40;
|
||||
GET_DEVICES_AVAILABLE_FOR_GAIA_PAIRING = 41;
|
||||
CREATE_GAIA_PAIRING = 42;
|
||||
GET_CONVERSATION = 43;
|
||||
CREATE_GAIA_PAIRING_CLIENT_INIT = 44;
|
||||
CREATE_GAIA_PAIRING_CLIENT_FINISHED = 45;
|
||||
UNPAIR_GAIA_PAIRING = 46;
|
||||
}
|
||||
|
||||
enum MessageType {
|
||||
|
|
|
@ -54,3 +54,20 @@ func (m *Messages) Delete(messageId string) (*binary.DeleteMessageResponse, erro
|
|||
m.client.Logger.Debug().Any("res", res).Msg("deleted message!")
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (m *Messages) MarkRead(conversationID, messageID string) error {
|
||||
payload := &binary.MessageReadPayload{ConversationID: conversationID, MessageID: messageID}
|
||||
actionType := binary.ActionType_MESSAGE_READ
|
||||
|
||||
sentRequestId, sendErr := m.client.sessionHandler.completeSendMessage(actionType, true, payload)
|
||||
if sendErr != nil {
|
||||
return sendErr
|
||||
}
|
||||
|
||||
_, err := m.client.sessionHandler.WaitForResponse(sentRequestId, actionType)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ var Routes = map[binary.ActionType]Route{
|
|||
binary.ActionType_GET_UPDATES: GET_UPDATES,
|
||||
binary.ActionType_LIST_CONVERSATIONS: LIST_CONVERSATIONS,
|
||||
binary.ActionType_LIST_CONVERSATIONS_SYNC: LIST_CONVERSATIONS_WITH_UPDATES,
|
||||
binary.ActionType_MESSAGE_READ: MESSAGE_READ,
|
||||
binary.ActionType_NOTIFY_DITTO_ACTIVITY: NOTIFY_DITTO_ACTIVITY,
|
||||
binary.ActionType_GET_CONVERSATION_TYPE: GET_CONVERSATION_TYPE,
|
||||
binary.ActionType_LIST_MESSAGES: LIST_MESSAGES,
|
||||
|
|
|
@ -37,3 +37,12 @@ var DELETE_MESSAGE = Route{
|
|||
UseSessionID: false,
|
||||
UseTTL: true,
|
||||
}
|
||||
|
||||
var MESSAGE_READ = Route{
|
||||
Action: binary.ActionType_MESSAGE_READ,
|
||||
MessageType: binary.MessageType_BUGLE_MESSAGE,
|
||||
BugleRoute: binary.BugleRoute_DataEvent,
|
||||
ResponseStruct: nil,
|
||||
UseSessionID: false,
|
||||
UseTTL: true,
|
||||
}
|
||||
|
|
37
portal.go
37
portal.go
|
@ -254,7 +254,7 @@ type Portal struct {
|
|||
|
||||
var (
|
||||
_ bridge.Portal = (*Portal)(nil)
|
||||
//_ bridge.ReadReceiptHandlingPortal = (*Portal)(nil)
|
||||
_ bridge.ReadReceiptHandlingPortal = (*Portal)(nil)
|
||||
//_ bridge.MembershipHandlingPortal = (*Portal)(nil)
|
||||
//_ bridge.MetaHandlingPortal = (*Portal)(nil)
|
||||
//_ bridge.TypingPortal = (*Portal)(nil)
|
||||
|
@ -1248,6 +1248,41 @@ func (portal *Portal) HandleMatrixMessage(sender *User, evt *event.Event, timing
|
|||
}
|
||||
}
|
||||
|
||||
func (portal *Portal) HandleMatrixReadReceipt(brUser bridge.User, eventID id.EventID, receipt event.ReadReceipt) {
|
||||
user := brUser.(*User)
|
||||
log := portal.zlog.With().
|
||||
Str("event_id", eventID.String()).
|
||||
Time("receipt_ts", receipt.Timestamp).
|
||||
Str("action", "handle matrix read receipt").
|
||||
Logger()
|
||||
ctx := log.WithContext(context.TODO())
|
||||
log.Debug().Msg("Handling Matrix read receipt")
|
||||
targetMessage, err := portal.bridge.DB.Message.GetByMXID(ctx, eventID)
|
||||
if err != nil {
|
||||
log.Err(err).Msg("Failed to get target message to handle read receipt")
|
||||
return
|
||||
} else if targetMessage == nil {
|
||||
lastMessage, err := portal.bridge.DB.Message.GetLastInChat(ctx, portal.Key)
|
||||
if err != nil {
|
||||
log.Err(err).Msg("Failed to get last message to handle read receipt")
|
||||
return
|
||||
} else if receipt.Timestamp.Before(lastMessage.Timestamp) {
|
||||
log.Debug().Msg("Ignoring read receipt for unknown message with timestamp before last message")
|
||||
return
|
||||
} else {
|
||||
log.Debug().Msg("Marking last message in chat as read for receipt targeting unknown message")
|
||||
}
|
||||
targetMessage = lastMessage
|
||||
}
|
||||
log = log.With().Str("message_id", targetMessage.ID).Logger()
|
||||
err = user.Client.Messages.MarkRead(portal.ID, targetMessage.ID)
|
||||
if err != nil {
|
||||
log.Err(err).Msg("Failed to mark message as read")
|
||||
} else {
|
||||
log.Debug().Msg("Marked message as read after Matrix read receipt")
|
||||
}
|
||||
}
|
||||
|
||||
func (portal *Portal) HandleMatrixReaction(sender *User, evt *event.Event) {
|
||||
err := portal.handleMatrixReaction(sender, evt)
|
||||
go portal.sendMessageMetrics(evt, err, "Error sending", nil)
|
||||
|
|
1
user.go
1
user.go
|
@ -576,6 +576,7 @@ func (user *User) syncConversation(v *binary.Conversation) {
|
|||
default:
|
||||
portal.UpdateMetadata(user, v)
|
||||
portal.missedForwardBackfill(user, time.UnixMicro(v.LastMessageTimestamp), v.LatestMessageID, !v.GetUnread())
|
||||
// TODO sync read status if there was nothing backfilled
|
||||
}
|
||||
} else if updateType == binary.ConvUpdateTypes_UNARCHIVED || updateType == binary.ConvUpdateTypes_ARCHIVED {
|
||||
err := portal.CreateMatrixRoom(user, v)
|
||||
|
|
Loading…
Reference in a new issue