From be197621ac1709f58445a3a8f6b87e8c594db1de Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 2 Oct 2017 16:03:17 -0400 Subject: [PATCH] Add read receipts field/configuration protos Also converge with Android protos where possible // FREEBIE --- .../protobuf/OWSProvisioningProtos.proto | 1 + .../protobuf/OWSSignalServiceProtos.proto | 64 +- .../src/Devices/OWSProvisioningProtos.pb.h | 10 + .../src/Devices/OWSProvisioningProtos.pb.m | 54 + .../src/Messages/OWSMessageHandler.m | 2 +- .../src/Messages/OWSMessageManager.m | 2 +- .../src/Messages/OWSProfileKeyMessage.m | 2 +- .../src/Messages/OWSSignalServiceProtos.pb.h | 205 ++- .../src/Messages/OWSSignalServiceProtos.pb.m | 1135 +++++++++++------ 9 files changed, 949 insertions(+), 526 deletions(-) diff --git a/SignalServiceKit/protobuf/OWSProvisioningProtos.proto b/SignalServiceKit/protobuf/OWSProvisioningProtos.proto index cc7914182..67ca48ca0 100644 --- a/SignalServiceKit/protobuf/OWSProvisioningProtos.proto +++ b/SignalServiceKit/protobuf/OWSProvisioningProtos.proto @@ -24,4 +24,5 @@ message ProvisionMessage { optional string provisioningCode = 4; optional string userAgent = 5; optional bytes profileKey = 6; + optional bool readReceipts = 7; } diff --git a/SignalServiceKit/protobuf/OWSSignalServiceProtos.proto b/SignalServiceKit/protobuf/OWSSignalServiceProtos.proto index 13112b352..781658b71 100644 --- a/SignalServiceKit/protobuf/OWSSignalServiceProtos.proto +++ b/SignalServiceKit/protobuf/OWSSignalServiceProtos.proto @@ -31,23 +31,13 @@ message Envelope { } message Content { - optional DataMessage dataMessage = 1; - optional SyncMessage syncMessage = 2; - optional CallMessage callMessage = 3; - optional NullMessage nullMessage = 4; + optional DataMessage dataMessage = 1; + optional SyncMessage syncMessage = 2; + optional CallMessage callMessage = 3; + optional NullMessage nullMessage = 4; optional ReceiptMessage receiptMessage = 5; } -message ReceiptMessage { - enum Type { - DELIVERY = 0; - READ = 1; - } - - optional Type type = 1; - repeated uint64 timestamp = 2; -} - message CallMessage { message Offer { optional uint64 id = 1; @@ -91,9 +81,9 @@ message CallMessage { message DataMessage { enum Flags { - END_SESSION = 1; + END_SESSION = 1; EXPIRATION_TIMER_UPDATE = 2; - PROFILE_KEY = 4; + PROFILE_KEY_UPDATE = 4; } optional string body = 1; @@ -108,6 +98,16 @@ message NullMessage { optional bytes padding = 1; } +message ReceiptMessage { + enum Type { + DELIVERY = 0; + READ = 1; + } + + optional Type type = 1; + repeated uint64 timestamp = 2; +} + message Verified { enum State { DEFAULT = 0; @@ -130,7 +130,7 @@ message SyncMessage { } message Contacts { - optional AttachmentPointer blob = 1; + optional AttachmentPointer blob = 1; optional bool isComplete = 2 [default = false]; } @@ -144,10 +144,11 @@ message SyncMessage { message Request { enum Type { - UNKNOWN = 0; - CONTACTS = 1; - GROUPS = 2; - BLOCKED = 3; + UNKNOWN = 0; + CONTACTS = 1; + GROUPS = 2; + BLOCKED = 3; + CONFIGURATION = 4; } optional Type type = 1; @@ -158,14 +159,19 @@ message SyncMessage { optional uint64 timestamp = 2; } - optional Sent sent = 1; - optional Contacts contacts = 2; - optional Groups groups = 3; - optional Request request = 4; - repeated Read read = 5; - optional Blocked blocked = 6; - optional Verified verified = 7; - optional bytes padding = 8; + message Configuration { + optional bool readReceipts = 1; + } + + optional Sent sent = 1; + optional Contacts contacts = 2; + optional Groups groups = 3; + optional Request request = 4; + repeated Read read = 5; + optional Blocked blocked = 6; + optional Verified verified = 7; + optional Configuration configuration = 9; + optional bytes padding = 8; } message AttachmentPointer { diff --git a/SignalServiceKit/src/Devices/OWSProvisioningProtos.pb.h b/SignalServiceKit/src/Devices/OWSProvisioningProtos.pb.h index a01777326..b8d751587 100644 --- a/SignalServiceKit/src/Devices/OWSProvisioningProtos.pb.h +++ b/SignalServiceKit/src/Devices/OWSProvisioningProtos.pb.h @@ -127,14 +127,17 @@ #define ProvisionMessage_provisioningCode @"provisioningCode" #define ProvisionMessage_userAgent @"userAgent" #define ProvisionMessage_profileKey @"profileKey" +#define ProvisionMessage_readReceipts @"readReceipts" @interface OWSProvisioningProtosProvisionMessage : PBGeneratedMessage { @private + BOOL hasReadReceipts_:1; BOOL hasNumber_:1; BOOL hasProvisioningCode_:1; BOOL hasUserAgent_:1; BOOL hasIdentityKeyPublic_:1; BOOL hasIdentityKeyPrivate_:1; BOOL hasProfileKey_:1; + BOOL readReceipts_:1; NSString* number; NSString* provisioningCode; NSString* userAgent; @@ -148,12 +151,14 @@ - (BOOL) hasProvisioningCode; - (BOOL) hasUserAgent; - (BOOL) hasProfileKey; +- (BOOL) hasReadReceipts; @property (readonly, strong) NSData* identityKeyPublic; @property (readonly, strong) NSData* identityKeyPrivate; @property (readonly, strong) NSString* number; @property (readonly, strong) NSString* provisioningCode; @property (readonly, strong) NSString* userAgent; @property (readonly, strong) NSData* profileKey; +- (BOOL) readReceipts; + (instancetype) defaultInstance; - (instancetype) defaultInstance; @@ -219,6 +224,11 @@ - (NSData*) profileKey; - (OWSProvisioningProtosProvisionMessageBuilder*) setProfileKey:(NSData*) value; - (OWSProvisioningProtosProvisionMessageBuilder*) clearProfileKey; + +- (BOOL) hasReadReceipts; +- (BOOL) readReceipts; +- (OWSProvisioningProtosProvisionMessageBuilder*) setReadReceipts:(BOOL) value; +- (OWSProvisioningProtosProvisionMessageBuilder*) clearReadReceipts; @end diff --git a/SignalServiceKit/src/Devices/OWSProvisioningProtos.pb.m b/SignalServiceKit/src/Devices/OWSProvisioningProtos.pb.m index 22a56baa9..397c1b7a5 100644 --- a/SignalServiceKit/src/Devices/OWSProvisioningProtos.pb.m +++ b/SignalServiceKit/src/Devices/OWSProvisioningProtos.pb.m @@ -283,6 +283,7 @@ static OWSProvisioningProtosProvisionEnvelope* defaultOWSProvisioningProtosProvi @property (strong) NSString* provisioningCode; @property (strong) NSString* userAgent; @property (strong) NSData* profileKey; +@property BOOL readReceipts; @end @implementation OWSProvisioningProtosProvisionMessage @@ -329,6 +330,18 @@ static OWSProvisioningProtosProvisionEnvelope* defaultOWSProvisioningProtosProvi hasProfileKey_ = !!_value_; } @synthesize profileKey; +- (BOOL) hasReadReceipts { + return !!hasReadReceipts_; +} +- (void) setHasReadReceipts:(BOOL) _value_ { + hasReadReceipts_ = !!_value_; +} +- (BOOL) readReceipts { + return !!readReceipts_; +} +- (void) setReadReceipts:(BOOL) _value_ { + readReceipts_ = !!_value_; +} - (instancetype) init { if ((self = [super init])) { self.identityKeyPublic = [NSData data]; @@ -337,6 +350,7 @@ static OWSProvisioningProtosProvisionEnvelope* defaultOWSProvisioningProtosProvi self.provisioningCode = @""; self.userAgent = @""; self.profileKey = [NSData data]; + self.readReceipts = NO; } return self; } @@ -374,6 +388,9 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis if (self.hasProfileKey) { [output writeData:6 value:self.profileKey]; } + if (self.hasReadReceipts) { + [output writeBool:7 value:self.readReceipts]; + } [self.unknownFields writeToCodedOutputStream:output]; } - (SInt32) serializedSize { @@ -401,6 +418,9 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis if (self.hasProfileKey) { size_ += computeDataSize(6, self.profileKey); } + if (self.hasReadReceipts) { + size_ += computeBoolSize(7, self.readReceipts); + } size_ += self.unknownFields.serializedSize; memoizedSerializedSize = size_; return size_; @@ -454,6 +474,9 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis if (self.hasProfileKey) { [output appendFormat:@"%@%@: %@\n", indent, @"profileKey", self.profileKey]; } + if (self.hasReadReceipts) { + [output appendFormat:@"%@%@: %@\n", indent, @"readReceipts", [NSNumber numberWithBool:self.readReceipts]]; + } [self.unknownFields writeDescriptionTo:output withIndent:indent]; } - (void) storeInDictionary:(NSMutableDictionary *)dictionary { @@ -475,6 +498,9 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis if (self.hasProfileKey) { [dictionary setObject: self.profileKey forKey: @"profileKey"]; } + if (self.hasReadReceipts) { + [dictionary setObject: [NSNumber numberWithBool:self.readReceipts] forKey: @"readReceipts"]; + } [self.unknownFields storeInDictionary:dictionary]; } - (BOOL) isEqual:(id)other { @@ -498,6 +524,8 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis (!self.hasUserAgent || [self.userAgent isEqual:otherMessage.userAgent]) && self.hasProfileKey == otherMessage.hasProfileKey && (!self.hasProfileKey || [self.profileKey isEqual:otherMessage.profileKey]) && + self.hasReadReceipts == otherMessage.hasReadReceipts && + (!self.hasReadReceipts || self.readReceipts == otherMessage.readReceipts) && (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields])); } - (NSUInteger) hash { @@ -520,6 +548,9 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis if (self.hasProfileKey) { hashCode = hashCode * 31 + [self.profileKey hash]; } + if (self.hasReadReceipts) { + hashCode = hashCode * 31 + [[NSNumber numberWithBool:self.readReceipts] hash]; + } hashCode = hashCode * 31 + [self.unknownFields hash]; return hashCode; } @@ -581,6 +612,9 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis if (other.hasProfileKey) { [self setProfileKey:other.profileKey]; } + if (other.hasReadReceipts) { + [self setReadReceipts:other.readReceipts]; + } [self mergeUnknownFields:other.unknownFields]; return self; } @@ -626,6 +660,10 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis [self setProfileKey:[input readData]]; break; } + case 56: { + [self setReadReceipts:[input readBool]]; + break; + } } } } @@ -725,6 +763,22 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis resultProvisionMessage.profileKey = [NSData data]; return self; } +- (BOOL) hasReadReceipts { + return resultProvisionMessage.hasReadReceipts; +} +- (BOOL) readReceipts { + return resultProvisionMessage.readReceipts; +} +- (OWSProvisioningProtosProvisionMessageBuilder*) setReadReceipts:(BOOL) value { + resultProvisionMessage.hasReadReceipts = YES; + resultProvisionMessage.readReceipts = value; + return self; +} +- (OWSProvisioningProtosProvisionMessageBuilder*) clearReadReceipts { + resultProvisionMessage.hasReadReceipts = NO; + resultProvisionMessage.readReceipts = NO; + return self; +} @end diff --git a/SignalServiceKit/src/Messages/OWSMessageHandler.m b/SignalServiceKit/src/Messages/OWSMessageHandler.m index b2915930b..69fe9a900 100644 --- a/SignalServiceKit/src/Messages/OWSMessageHandler.m +++ b/SignalServiceKit/src/Messages/OWSMessageHandler.m @@ -91,7 +91,7 @@ NSString *envelopeAddress(OWSSignalServiceProtosEnvelope *envelope) [description appendString:@"EndSession"]; } else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsExpirationTimerUpdate) != 0) { [description appendString:@"ExpirationTimerUpdate"]; - } else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsProfileKey) != 0) { + } else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsProfileKeyUpdate) != 0) { [description appendString:@"ProfileKey"]; } else if (dataMessage.attachments.count > 0) { [description appendString:@"MessageWithAttachment"]; diff --git a/SignalServiceKit/src/Messages/OWSMessageManager.m b/SignalServiceKit/src/Messages/OWSMessageManager.m index d8293c9cc..7e465d0af 100644 --- a/SignalServiceKit/src/Messages/OWSMessageManager.m +++ b/SignalServiceKit/src/Messages/OWSMessageManager.m @@ -348,7 +348,7 @@ NS_ASSUME_NONNULL_BEGIN [self handleEndSessionMessageWithEnvelope:envelope dataMessage:dataMessage transaction:transaction]; } else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsExpirationTimerUpdate) != 0) { [self handleExpirationTimerUpdateMessageWithEnvelope:envelope dataMessage:dataMessage transaction:transaction]; - } else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsProfileKey) != 0) { + } else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsProfileKeyUpdate) != 0) { [self handleProfileKeyMessageWithEnvelope:envelope dataMessage:dataMessage]; } else if (dataMessage.attachments.count > 0) { [self handleReceivedMediaWithEnvelope:envelope dataMessage:dataMessage transaction:transaction]; diff --git a/SignalServiceKit/src/Messages/OWSProfileKeyMessage.m b/SignalServiceKit/src/Messages/OWSProfileKeyMessage.m index 73254cbd3..5e0bb7dce 100644 --- a/SignalServiceKit/src/Messages/OWSProfileKeyMessage.m +++ b/SignalServiceKit/src/Messages/OWSProfileKeyMessage.m @@ -30,7 +30,7 @@ NS_ASSUME_NONNULL_BEGIN OWSSignalServiceProtosDataMessageBuilder *builder = [self dataMessageBuilder]; [builder addLocalProfileKey]; - [builder setFlags:OWSSignalServiceProtosDataMessageFlagsProfileKey]; + [builder setFlags:OWSSignalServiceProtosDataMessageFlagsProfileKeyUpdate]; if (recipientId.length > 0) { // Once we've shared our profile key with a user (perhaps due to being diff --git a/SignalServiceKit/src/Messages/OWSSignalServiceProtos.pb.h b/SignalServiceKit/src/Messages/OWSSignalServiceProtos.pb.h index f72a555e5..844e462bf 100644 --- a/SignalServiceKit/src/Messages/OWSSignalServiceProtos.pb.h +++ b/SignalServiceKit/src/Messages/OWSSignalServiceProtos.pb.h @@ -42,6 +42,8 @@ @class OWSSignalServiceProtosSyncMessageBlocked; @class OWSSignalServiceProtosSyncMessageBlockedBuilder; @class OWSSignalServiceProtosSyncMessageBuilder; +@class OWSSignalServiceProtosSyncMessageConfiguration; +@class OWSSignalServiceProtosSyncMessageConfigurationBuilder; @class OWSSignalServiceProtosSyncMessageContacts; @class OWSSignalServiceProtosSyncMessageContactsBuilder; @class OWSSignalServiceProtosSyncMessageGroups; @@ -111,23 +113,23 @@ typedef NS_ENUM(SInt32, OWSSignalServiceProtosEnvelopeType) { BOOL OWSSignalServiceProtosEnvelopeTypeIsValidValue(OWSSignalServiceProtosEnvelopeType value); NSString *NSStringFromOWSSignalServiceProtosEnvelopeType(OWSSignalServiceProtosEnvelopeType value); -typedef NS_ENUM(SInt32, OWSSignalServiceProtosReceiptMessageType) { - OWSSignalServiceProtosReceiptMessageTypeDelivery = 0, - OWSSignalServiceProtosReceiptMessageTypeRead = 1, -}; - -BOOL OWSSignalServiceProtosReceiptMessageTypeIsValidValue(OWSSignalServiceProtosReceiptMessageType value); -NSString *NSStringFromOWSSignalServiceProtosReceiptMessageType(OWSSignalServiceProtosReceiptMessageType value); - typedef NS_ENUM(SInt32, OWSSignalServiceProtosDataMessageFlags) { OWSSignalServiceProtosDataMessageFlagsEndSession = 1, OWSSignalServiceProtosDataMessageFlagsExpirationTimerUpdate = 2, - OWSSignalServiceProtosDataMessageFlagsProfileKey = 4, + OWSSignalServiceProtosDataMessageFlagsProfileKeyUpdate = 4, }; BOOL OWSSignalServiceProtosDataMessageFlagsIsValidValue(OWSSignalServiceProtosDataMessageFlags value); NSString *NSStringFromOWSSignalServiceProtosDataMessageFlags(OWSSignalServiceProtosDataMessageFlags value); +typedef NS_ENUM(SInt32, OWSSignalServiceProtosReceiptMessageType) { + OWSSignalServiceProtosReceiptMessageTypeDelivery = 0, + OWSSignalServiceProtosReceiptMessageTypeRead = 1, +}; + +BOOL OWSSignalServiceProtosReceiptMessageTypeIsValidValue(OWSSignalServiceProtosReceiptMessageType value); +NSString *NSStringFromOWSSignalServiceProtosReceiptMessageType(OWSSignalServiceProtosReceiptMessageType value); + typedef NS_ENUM(SInt32, OWSSignalServiceProtosVerifiedState) { OWSSignalServiceProtosVerifiedStateDefault = 0, OWSSignalServiceProtosVerifiedStateVerified = 1, @@ -142,6 +144,7 @@ typedef NS_ENUM(SInt32, OWSSignalServiceProtosSyncMessageRequestType) { OWSSignalServiceProtosSyncMessageRequestTypeContacts = 1, OWSSignalServiceProtosSyncMessageRequestTypeGroups = 2, OWSSignalServiceProtosSyncMessageRequestTypeBlocked = 3, + OWSSignalServiceProtosSyncMessageRequestTypeConfiguration = 4, }; BOOL OWSSignalServiceProtosSyncMessageRequestTypeIsValidValue(OWSSignalServiceProtosSyncMessageRequestType value); @@ -382,67 +385,6 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro - (OWSSignalServiceProtosContentBuilder*) clearReceiptMessage; @end -#define ReceiptMessage_type @"type" -#define ReceiptMessage_timestamp @"timestamp" -@interface OWSSignalServiceProtosReceiptMessage : PBGeneratedMessage { -@private - BOOL hasType_:1; - OWSSignalServiceProtosReceiptMessageType type; - PBAppendableArray * timestampArray; -} -- (BOOL) hasType; -@property (readonly) OWSSignalServiceProtosReceiptMessageType type; -@property (readonly, strong) PBArray * timestamp; -- (UInt64)timestampAtIndex:(NSUInteger)index; - -+ (instancetype) defaultInstance; -- (instancetype) defaultInstance; - -- (BOOL) isInitialized; -- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; -- (OWSSignalServiceProtosReceiptMessageBuilder*) builder; -+ (OWSSignalServiceProtosReceiptMessageBuilder*) builder; -+ (OWSSignalServiceProtosReceiptMessageBuilder*) builderWithPrototype:(OWSSignalServiceProtosReceiptMessage*) prototype; -- (OWSSignalServiceProtosReceiptMessageBuilder*) toBuilder; - -+ (OWSSignalServiceProtosReceiptMessage*) parseFromData:(NSData*) data; -+ (OWSSignalServiceProtosReceiptMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; -+ (OWSSignalServiceProtosReceiptMessage*) parseFromInputStream:(NSInputStream*) input; -+ (OWSSignalServiceProtosReceiptMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; -+ (OWSSignalServiceProtosReceiptMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input; -+ (OWSSignalServiceProtosReceiptMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; -@end - -@interface OWSSignalServiceProtosReceiptMessageBuilder : PBGeneratedMessageBuilder { -@private - OWSSignalServiceProtosReceiptMessage* resultReceiptMessage; -} - -- (OWSSignalServiceProtosReceiptMessage*) defaultInstance; - -- (OWSSignalServiceProtosReceiptMessageBuilder*) clear; -- (OWSSignalServiceProtosReceiptMessageBuilder*) clone; - -- (OWSSignalServiceProtosReceiptMessage*) build; -- (OWSSignalServiceProtosReceiptMessage*) buildPartial; - -- (OWSSignalServiceProtosReceiptMessageBuilder*) mergeFrom:(OWSSignalServiceProtosReceiptMessage*) other; -- (OWSSignalServiceProtosReceiptMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; -- (OWSSignalServiceProtosReceiptMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; - -- (BOOL) hasType; -- (OWSSignalServiceProtosReceiptMessageType) type; -- (OWSSignalServiceProtosReceiptMessageBuilder*) setType:(OWSSignalServiceProtosReceiptMessageType) value; -- (OWSSignalServiceProtosReceiptMessageBuilder*) clearType; - -- (PBAppendableArray *)timestamp; -- (UInt64)timestampAtIndex:(NSUInteger)index; -- (OWSSignalServiceProtosReceiptMessageBuilder *)addTimestamp:(UInt64)value; -- (OWSSignalServiceProtosReceiptMessageBuilder *)setTimestampArray:(NSArray *)array; -- (OWSSignalServiceProtosReceiptMessageBuilder *)setTimestampValues:(const UInt64 *)values count:(NSUInteger)count; -- (OWSSignalServiceProtosReceiptMessageBuilder *)clearTimestamp; -@end - #define CallMessage_offer @"offer" #define CallMessage_answer @"answer" #define CallMessage_iceUpdate @"iceUpdate" @@ -1003,6 +945,67 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro - (OWSSignalServiceProtosNullMessageBuilder*) clearPadding; @end +#define ReceiptMessage_type @"type" +#define ReceiptMessage_timestamp @"timestamp" +@interface OWSSignalServiceProtosReceiptMessage : PBGeneratedMessage { +@private + BOOL hasType_:1; + OWSSignalServiceProtosReceiptMessageType type; + PBAppendableArray * timestampArray; +} +- (BOOL) hasType; +@property (readonly) OWSSignalServiceProtosReceiptMessageType type; +@property (readonly, strong) PBArray * timestamp; +- (UInt64)timestampAtIndex:(NSUInteger)index; + ++ (instancetype) defaultInstance; +- (instancetype) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (OWSSignalServiceProtosReceiptMessageBuilder*) builder; ++ (OWSSignalServiceProtosReceiptMessageBuilder*) builder; ++ (OWSSignalServiceProtosReceiptMessageBuilder*) builderWithPrototype:(OWSSignalServiceProtosReceiptMessage*) prototype; +- (OWSSignalServiceProtosReceiptMessageBuilder*) toBuilder; + ++ (OWSSignalServiceProtosReceiptMessage*) parseFromData:(NSData*) data; ++ (OWSSignalServiceProtosReceiptMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (OWSSignalServiceProtosReceiptMessage*) parseFromInputStream:(NSInputStream*) input; ++ (OWSSignalServiceProtosReceiptMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (OWSSignalServiceProtosReceiptMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (OWSSignalServiceProtosReceiptMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface OWSSignalServiceProtosReceiptMessageBuilder : PBGeneratedMessageBuilder { +@private + OWSSignalServiceProtosReceiptMessage* resultReceiptMessage; +} + +- (OWSSignalServiceProtosReceiptMessage*) defaultInstance; + +- (OWSSignalServiceProtosReceiptMessageBuilder*) clear; +- (OWSSignalServiceProtosReceiptMessageBuilder*) clone; + +- (OWSSignalServiceProtosReceiptMessage*) build; +- (OWSSignalServiceProtosReceiptMessage*) buildPartial; + +- (OWSSignalServiceProtosReceiptMessageBuilder*) mergeFrom:(OWSSignalServiceProtosReceiptMessage*) other; +- (OWSSignalServiceProtosReceiptMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (OWSSignalServiceProtosReceiptMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasType; +- (OWSSignalServiceProtosReceiptMessageType) type; +- (OWSSignalServiceProtosReceiptMessageBuilder*) setType:(OWSSignalServiceProtosReceiptMessageType) value; +- (OWSSignalServiceProtosReceiptMessageBuilder*) clearType; + +- (PBAppendableArray *)timestamp; +- (UInt64)timestampAtIndex:(NSUInteger)index; +- (OWSSignalServiceProtosReceiptMessageBuilder *)addTimestamp:(UInt64)value; +- (OWSSignalServiceProtosReceiptMessageBuilder *)setTimestampArray:(NSArray *)array; +- (OWSSignalServiceProtosReceiptMessageBuilder *)setTimestampValues:(const UInt64 *)values count:(NSUInteger)count; +- (OWSSignalServiceProtosReceiptMessageBuilder *)clearTimestamp; +@end + #define Verified_destination @"destination" #define Verified_identityKey @"identityKey" #define Verified_state @"state" @@ -1090,6 +1093,7 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro #define SyncMessage_read @"read" #define SyncMessage_blocked @"blocked" #define SyncMessage_verified @"verified" +#define SyncMessage_configuration @"configuration" #define SyncMessage_padding @"padding" @interface OWSSignalServiceProtosSyncMessage : PBGeneratedMessage { @private @@ -1099,6 +1103,7 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro BOOL hasRequest_:1; BOOL hasBlocked_:1; BOOL hasVerified_:1; + BOOL hasConfiguration_:1; BOOL hasPadding_:1; OWSSignalServiceProtosSyncMessageSent* sent; OWSSignalServiceProtosSyncMessageContacts* contacts; @@ -1106,6 +1111,7 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro OWSSignalServiceProtosSyncMessageRequest* request; OWSSignalServiceProtosSyncMessageBlocked* blocked; OWSSignalServiceProtosVerified* verified; + OWSSignalServiceProtosSyncMessageConfiguration* configuration; NSData* padding; NSMutableArray * readArray; } @@ -1115,6 +1121,7 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro - (BOOL) hasRequest; - (BOOL) hasBlocked; - (BOOL) hasVerified; +- (BOOL) hasConfiguration; - (BOOL) hasPadding; @property (readonly, strong) OWSSignalServiceProtosSyncMessageSent* sent; @property (readonly, strong) OWSSignalServiceProtosSyncMessageContacts* contacts; @@ -1123,6 +1130,7 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro @property (readonly, strong) NSArray * read; @property (readonly, strong) OWSSignalServiceProtosSyncMessageBlocked* blocked; @property (readonly, strong) OWSSignalServiceProtosVerified* verified; +@property (readonly, strong) OWSSignalServiceProtosSyncMessageConfiguration* configuration; @property (readonly, strong) NSData* padding; - (OWSSignalServiceProtosSyncMessageRead*)readAtIndex:(NSUInteger)index; @@ -1500,6 +1508,56 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro - (OWSSignalServiceProtosSyncMessageReadBuilder*) clearTimestamp; @end +#define Configuration_readReceipts @"readReceipts" +@interface OWSSignalServiceProtosSyncMessageConfiguration : PBGeneratedMessage { +@private + BOOL hasReadReceipts_:1; + BOOL readReceipts_:1; +} +- (BOOL) hasReadReceipts; +- (BOOL) readReceipts; + ++ (instancetype) defaultInstance; +- (instancetype) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) builder; ++ (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) builder; ++ (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessageConfiguration*) prototype; +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) toBuilder; + ++ (OWSSignalServiceProtosSyncMessageConfiguration*) parseFromData:(NSData*) data; ++ (OWSSignalServiceProtosSyncMessageConfiguration*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (OWSSignalServiceProtosSyncMessageConfiguration*) parseFromInputStream:(NSInputStream*) input; ++ (OWSSignalServiceProtosSyncMessageConfiguration*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (OWSSignalServiceProtosSyncMessageConfiguration*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (OWSSignalServiceProtosSyncMessageConfiguration*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface OWSSignalServiceProtosSyncMessageConfigurationBuilder : PBGeneratedMessageBuilder { +@private + OWSSignalServiceProtosSyncMessageConfiguration* resultConfiguration; +} + +- (OWSSignalServiceProtosSyncMessageConfiguration*) defaultInstance; + +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) clear; +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) clone; + +- (OWSSignalServiceProtosSyncMessageConfiguration*) build; +- (OWSSignalServiceProtosSyncMessageConfiguration*) buildPartial; + +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessageConfiguration*) other; +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasReadReceipts; +- (BOOL) readReceipts; +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) setReadReceipts:(BOOL) value; +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) clearReadReceipts; +@end + @interface OWSSignalServiceProtosSyncMessageBuilder : PBGeneratedMessageBuilder { @private OWSSignalServiceProtosSyncMessage* resultSyncMessage; @@ -1565,6 +1623,13 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro - (OWSSignalServiceProtosSyncMessageBuilder*) mergeVerified:(OWSSignalServiceProtosVerified*) value; - (OWSSignalServiceProtosSyncMessageBuilder*) clearVerified; +- (BOOL) hasConfiguration; +- (OWSSignalServiceProtosSyncMessageConfiguration*) configuration; +- (OWSSignalServiceProtosSyncMessageBuilder*) setConfiguration:(OWSSignalServiceProtosSyncMessageConfiguration*) value; +- (OWSSignalServiceProtosSyncMessageBuilder*) setConfigurationBuilder:(OWSSignalServiceProtosSyncMessageConfigurationBuilder*) builderForValue; +- (OWSSignalServiceProtosSyncMessageBuilder*) mergeConfiguration:(OWSSignalServiceProtosSyncMessageConfiguration*) value; +- (OWSSignalServiceProtosSyncMessageBuilder*) clearConfiguration; + - (BOOL) hasPadding; - (NSData*) padding; - (OWSSignalServiceProtosSyncMessageBuilder*) setPadding:(NSData*) value; diff --git a/SignalServiceKit/src/Messages/OWSSignalServiceProtos.pb.m b/SignalServiceKit/src/Messages/OWSSignalServiceProtos.pb.m index b176a1ffc..f809a8d65 100644 --- a/SignalServiceKit/src/Messages/OWSSignalServiceProtos.pb.m +++ b/SignalServiceKit/src/Messages/OWSSignalServiceProtos.pb.m @@ -1077,312 +1077,6 @@ static OWSSignalServiceProtosContent* defaultOWSSignalServiceProtosContentInstan } @end -@interface OWSSignalServiceProtosReceiptMessage () -@property OWSSignalServiceProtosReceiptMessageType type; -@property (strong) PBAppendableArray * timestampArray; -@end - -@implementation OWSSignalServiceProtosReceiptMessage - -- (BOOL) hasType { - return !!hasType_; -} -- (void) setHasType:(BOOL) _value_ { - hasType_ = !!_value_; -} -@synthesize type; -@synthesize timestampArray; -@dynamic timestamp; -- (instancetype) init { - if ((self = [super init])) { - self.type = OWSSignalServiceProtosReceiptMessageTypeDelivery; - } - return self; -} -static OWSSignalServiceProtosReceiptMessage* defaultOWSSignalServiceProtosReceiptMessageInstance = nil; -+ (void) initialize { - if (self == [OWSSignalServiceProtosReceiptMessage class]) { - defaultOWSSignalServiceProtosReceiptMessageInstance = [[OWSSignalServiceProtosReceiptMessage alloc] init]; - } -} -+ (instancetype) defaultInstance { - return defaultOWSSignalServiceProtosReceiptMessageInstance; -} -- (instancetype) defaultInstance { - return defaultOWSSignalServiceProtosReceiptMessageInstance; -} -- (PBArray *)timestamp { - return timestampArray; -} -- (UInt64)timestampAtIndex:(NSUInteger)index { - return [timestampArray uint64AtIndex:index]; -} -- (BOOL) isInitialized { - return YES; -} -- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { - if (self.hasType) { - [output writeEnum:1 value:self.type]; - } - const NSUInteger timestampArrayCount = self.timestampArray.count; - if (timestampArrayCount > 0) { - const UInt64 *values = (const UInt64 *)self.timestampArray.data; - for (NSUInteger i = 0; i < timestampArrayCount; ++i) { - [output writeUInt64:2 value:values[i]]; - } - } - [self.unknownFields writeToCodedOutputStream:output]; -} -- (SInt32) serializedSize { - __block SInt32 size_ = memoizedSerializedSize; - if (size_ != -1) { - return size_; - } - - size_ = 0; - if (self.hasType) { - size_ += computeEnumSize(1, self.type); - } - { - __block SInt32 dataSize = 0; - const NSUInteger count = self.timestampArray.count; - const UInt64 *values = (const UInt64 *)self.timestampArray.data; - for (NSUInteger i = 0; i < count; ++i) { - dataSize += computeUInt64SizeNoTag(values[i]); - } - size_ += dataSize; - size_ += (SInt32)(1 * count); - } - size_ += self.unknownFields.serializedSize; - memoizedSerializedSize = size_; - return size_; -} -+ (OWSSignalServiceProtosReceiptMessage*) parseFromData:(NSData*) data { - return (OWSSignalServiceProtosReceiptMessage*)[[[OWSSignalServiceProtosReceiptMessage builder] mergeFromData:data] build]; -} -+ (OWSSignalServiceProtosReceiptMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { - return (OWSSignalServiceProtosReceiptMessage*)[[[OWSSignalServiceProtosReceiptMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; -} -+ (OWSSignalServiceProtosReceiptMessage*) parseFromInputStream:(NSInputStream*) input { - return (OWSSignalServiceProtosReceiptMessage*)[[[OWSSignalServiceProtosReceiptMessage builder] mergeFromInputStream:input] build]; -} -+ (OWSSignalServiceProtosReceiptMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { - return (OWSSignalServiceProtosReceiptMessage*)[[[OWSSignalServiceProtosReceiptMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; -} -+ (OWSSignalServiceProtosReceiptMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input { - return (OWSSignalServiceProtosReceiptMessage*)[[[OWSSignalServiceProtosReceiptMessage builder] mergeFromCodedInputStream:input] build]; -} -+ (OWSSignalServiceProtosReceiptMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { - return (OWSSignalServiceProtosReceiptMessage*)[[[OWSSignalServiceProtosReceiptMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; -} -+ (OWSSignalServiceProtosReceiptMessageBuilder*) builder { - return [[OWSSignalServiceProtosReceiptMessageBuilder alloc] init]; -} -+ (OWSSignalServiceProtosReceiptMessageBuilder*) builderWithPrototype:(OWSSignalServiceProtosReceiptMessage*) prototype { - return [[OWSSignalServiceProtosReceiptMessage builder] mergeFrom:prototype]; -} -- (OWSSignalServiceProtosReceiptMessageBuilder*) builder { - return [OWSSignalServiceProtosReceiptMessage builder]; -} -- (OWSSignalServiceProtosReceiptMessageBuilder*) toBuilder { - return [OWSSignalServiceProtosReceiptMessage builderWithPrototype:self]; -} -- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent { - if (self.hasType) { - [output appendFormat:@"%@%@: %@\n", indent, @"type", NSStringFromOWSSignalServiceProtosReceiptMessageType(self.type)]; - } - [self.timestampArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { - [output appendFormat:@"%@%@: %@\n", indent, @"timestamp", obj]; - }]; - [self.unknownFields writeDescriptionTo:output withIndent:indent]; -} -- (void) storeInDictionary:(NSMutableDictionary *)dictionary { - if (self.hasType) { - [dictionary setObject: @(self.type) forKey: @"type"]; - } - NSMutableArray * timestampArrayArray = [NSMutableArray new]; - NSUInteger timestampArrayCount=self.timestampArray.count; - for(int i=0;i 0) { - if (resultReceiptMessage.timestampArray == nil) { - resultReceiptMessage.timestampArray = [other.timestampArray copy]; - } else { - [resultReceiptMessage.timestampArray appendArray:other.timestampArray]; - } - } - [self mergeUnknownFields:other.unknownFields]; - return self; -} -- (OWSSignalServiceProtosReceiptMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { - return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; -} -- (OWSSignalServiceProtosReceiptMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { - PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; - while (YES) { - SInt32 tag = [input readTag]; - switch (tag) { - case 0: - [self setUnknownFields:[unknownFields build]]; - return self; - default: { - if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { - [self setUnknownFields:[unknownFields build]]; - return self; - } - break; - } - case 8: { - OWSSignalServiceProtosReceiptMessageType value = (OWSSignalServiceProtosReceiptMessageType)[input readEnum]; - if (OWSSignalServiceProtosReceiptMessageTypeIsValidValue(value)) { - [self setType:value]; - } else { - [unknownFields mergeVarintField:1 value:value]; - } - break; - } - case 16: { - [self addTimestamp:[input readUInt64]]; - break; - } - } - } -} -- (BOOL) hasType { - return resultReceiptMessage.hasType; -} -- (OWSSignalServiceProtosReceiptMessageType) type { - return resultReceiptMessage.type; -} -- (OWSSignalServiceProtosReceiptMessageBuilder*) setType:(OWSSignalServiceProtosReceiptMessageType) value { - resultReceiptMessage.hasType = YES; - resultReceiptMessage.type = value; - return self; -} -- (OWSSignalServiceProtosReceiptMessageBuilder*) clearType { - resultReceiptMessage.hasType = NO; - resultReceiptMessage.type = OWSSignalServiceProtosReceiptMessageTypeDelivery; - return self; -} -- (PBAppendableArray *)timestamp { - return resultReceiptMessage.timestampArray; -} -- (UInt64)timestampAtIndex:(NSUInteger)index { - return [resultReceiptMessage timestampAtIndex:index]; -} -- (OWSSignalServiceProtosReceiptMessageBuilder *)addTimestamp:(UInt64)value { - if (resultReceiptMessage.timestampArray == nil) { - resultReceiptMessage.timestampArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt64]; - } - [resultReceiptMessage.timestampArray addUint64:value]; - return self; -} -- (OWSSignalServiceProtosReceiptMessageBuilder *)setTimestampArray:(NSArray *)array { - resultReceiptMessage.timestampArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeUInt64]; - return self; -} -- (OWSSignalServiceProtosReceiptMessageBuilder *)setTimestampValues:(const UInt64 *)values count:(NSUInteger)count { - resultReceiptMessage.timestampArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeUInt64]; - return self; -} -- (OWSSignalServiceProtosReceiptMessageBuilder *)clearTimestamp { - resultReceiptMessage.timestampArray = nil; - return self; -} -@end - @interface OWSSignalServiceProtosCallMessage () @property (strong) OWSSignalServiceProtosCallMessageOffer* offer; @property (strong) OWSSignalServiceProtosCallMessageAnswer* answer; @@ -3482,7 +3176,7 @@ BOOL OWSSignalServiceProtosDataMessageFlagsIsValidValue(OWSSignalServiceProtosDa switch (value) { case OWSSignalServiceProtosDataMessageFlagsEndSession: case OWSSignalServiceProtosDataMessageFlagsExpirationTimerUpdate: - case OWSSignalServiceProtosDataMessageFlagsProfileKey: + case OWSSignalServiceProtosDataMessageFlagsProfileKeyUpdate: return YES; default: return NO; @@ -3494,8 +3188,8 @@ NSString *NSStringFromOWSSignalServiceProtosDataMessageFlags(OWSSignalServicePro return @"OWSSignalServiceProtosDataMessageFlagsEndSession"; case OWSSignalServiceProtosDataMessageFlagsExpirationTimerUpdate: return @"OWSSignalServiceProtosDataMessageFlagsExpirationTimerUpdate"; - case OWSSignalServiceProtosDataMessageFlagsProfileKey: - return @"OWSSignalServiceProtosDataMessageFlagsProfileKey"; + case OWSSignalServiceProtosDataMessageFlagsProfileKeyUpdate: + return @"OWSSignalServiceProtosDataMessageFlagsProfileKeyUpdate"; default: return nil; } @@ -3683,93 +3377,315 @@ NSString *NSStringFromOWSSignalServiceProtosDataMessageFlags(OWSSignalServicePro resultDataMessage.group = [OWSSignalServiceProtosGroupContext defaultInstance]; return self; } -- (BOOL) hasFlags { - return resultDataMessage.hasFlags; -} -- (UInt32) flags { - return resultDataMessage.flags; +- (BOOL) hasFlags { + return resultDataMessage.hasFlags; +} +- (UInt32) flags { + return resultDataMessage.flags; +} +- (OWSSignalServiceProtosDataMessageBuilder*) setFlags:(UInt32) value { + resultDataMessage.hasFlags = YES; + resultDataMessage.flags = value; + return self; +} +- (OWSSignalServiceProtosDataMessageBuilder*) clearFlags { + resultDataMessage.hasFlags = NO; + resultDataMessage.flags = 0; + return self; +} +- (BOOL) hasExpireTimer { + return resultDataMessage.hasExpireTimer; +} +- (UInt32) expireTimer { + return resultDataMessage.expireTimer; +} +- (OWSSignalServiceProtosDataMessageBuilder*) setExpireTimer:(UInt32) value { + resultDataMessage.hasExpireTimer = YES; + resultDataMessage.expireTimer = value; + return self; +} +- (OWSSignalServiceProtosDataMessageBuilder*) clearExpireTimer { + resultDataMessage.hasExpireTimer = NO; + resultDataMessage.expireTimer = 0; + return self; +} +- (BOOL) hasProfileKey { + return resultDataMessage.hasProfileKey; +} +- (NSData*) profileKey { + return resultDataMessage.profileKey; +} +- (OWSSignalServiceProtosDataMessageBuilder*) setProfileKey:(NSData*) value { + resultDataMessage.hasProfileKey = YES; + resultDataMessage.profileKey = value; + return self; +} +- (OWSSignalServiceProtosDataMessageBuilder*) clearProfileKey { + resultDataMessage.hasProfileKey = NO; + resultDataMessage.profileKey = [NSData data]; + return self; +} +@end + +@interface OWSSignalServiceProtosNullMessage () +@property (strong) NSData* padding; +@end + +@implementation OWSSignalServiceProtosNullMessage + +- (BOOL) hasPadding { + return !!hasPadding_; +} +- (void) setHasPadding:(BOOL) _value_ { + hasPadding_ = !!_value_; +} +@synthesize padding; +- (instancetype) init { + if ((self = [super init])) { + self.padding = [NSData data]; + } + return self; +} +static OWSSignalServiceProtosNullMessage* defaultOWSSignalServiceProtosNullMessageInstance = nil; ++ (void) initialize { + if (self == [OWSSignalServiceProtosNullMessage class]) { + defaultOWSSignalServiceProtosNullMessageInstance = [[OWSSignalServiceProtosNullMessage alloc] init]; + } +} ++ (instancetype) defaultInstance { + return defaultOWSSignalServiceProtosNullMessageInstance; +} +- (instancetype) defaultInstance { + return defaultOWSSignalServiceProtosNullMessageInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasPadding) { + [output writeData:1 value:self.padding]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (SInt32) serializedSize { + __block SInt32 size_ = memoizedSerializedSize; + if (size_ != -1) { + return size_; + } + + size_ = 0; + if (self.hasPadding) { + size_ += computeDataSize(1, self.padding); + } + size_ += self.unknownFields.serializedSize; + memoizedSerializedSize = size_; + return size_; +} ++ (OWSSignalServiceProtosNullMessage*) parseFromData:(NSData*) data { + return (OWSSignalServiceProtosNullMessage*)[[[OWSSignalServiceProtosNullMessage builder] mergeFromData:data] build]; +} ++ (OWSSignalServiceProtosNullMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (OWSSignalServiceProtosNullMessage*)[[[OWSSignalServiceProtosNullMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (OWSSignalServiceProtosNullMessage*) parseFromInputStream:(NSInputStream*) input { + return (OWSSignalServiceProtosNullMessage*)[[[OWSSignalServiceProtosNullMessage builder] mergeFromInputStream:input] build]; +} ++ (OWSSignalServiceProtosNullMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (OWSSignalServiceProtosNullMessage*)[[[OWSSignalServiceProtosNullMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (OWSSignalServiceProtosNullMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (OWSSignalServiceProtosNullMessage*)[[[OWSSignalServiceProtosNullMessage builder] mergeFromCodedInputStream:input] build]; +} ++ (OWSSignalServiceProtosNullMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (OWSSignalServiceProtosNullMessage*)[[[OWSSignalServiceProtosNullMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (OWSSignalServiceProtosNullMessageBuilder*) builder { + return [[OWSSignalServiceProtosNullMessageBuilder alloc] init]; +} ++ (OWSSignalServiceProtosNullMessageBuilder*) builderWithPrototype:(OWSSignalServiceProtosNullMessage*) prototype { + return [[OWSSignalServiceProtosNullMessage builder] mergeFrom:prototype]; +} +- (OWSSignalServiceProtosNullMessageBuilder*) builder { + return [OWSSignalServiceProtosNullMessage builder]; +} +- (OWSSignalServiceProtosNullMessageBuilder*) toBuilder { + return [OWSSignalServiceProtosNullMessage builderWithPrototype:self]; +} +- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent { + if (self.hasPadding) { + [output appendFormat:@"%@%@: %@\n", indent, @"padding", self.padding]; + } + [self.unknownFields writeDescriptionTo:output withIndent:indent]; +} +- (void) storeInDictionary:(NSMutableDictionary *)dictionary { + if (self.hasPadding) { + [dictionary setObject: self.padding forKey: @"padding"]; + } + [self.unknownFields storeInDictionary:dictionary]; +} +- (BOOL) isEqual:(id)other { + if (other == self) { + return YES; + } + if (![other isKindOfClass:[OWSSignalServiceProtosNullMessage class]]) { + return NO; + } + OWSSignalServiceProtosNullMessage *otherMessage = other; + return + self.hasPadding == otherMessage.hasPadding && + (!self.hasPadding || [self.padding isEqual:otherMessage.padding]) && + (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields])); +} +- (NSUInteger) hash { + __block NSUInteger hashCode = 7; + if (self.hasPadding) { + hashCode = hashCode * 31 + [self.padding hash]; + } + hashCode = hashCode * 31 + [self.unknownFields hash]; + return hashCode; +} +@end + +@interface OWSSignalServiceProtosNullMessageBuilder() +@property (strong) OWSSignalServiceProtosNullMessage* resultNullMessage; +@end + +@implementation OWSSignalServiceProtosNullMessageBuilder +@synthesize resultNullMessage; +- (instancetype) init { + if ((self = [super init])) { + self.resultNullMessage = [[OWSSignalServiceProtosNullMessage alloc] init]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return resultNullMessage; } -- (OWSSignalServiceProtosDataMessageBuilder*) setFlags:(UInt32) value { - resultDataMessage.hasFlags = YES; - resultDataMessage.flags = value; +- (OWSSignalServiceProtosNullMessageBuilder*) clear { + self.resultNullMessage = [[OWSSignalServiceProtosNullMessage alloc] init]; return self; } -- (OWSSignalServiceProtosDataMessageBuilder*) clearFlags { - resultDataMessage.hasFlags = NO; - resultDataMessage.flags = 0; - return self; +- (OWSSignalServiceProtosNullMessageBuilder*) clone { + return [OWSSignalServiceProtosNullMessage builderWithPrototype:resultNullMessage]; } -- (BOOL) hasExpireTimer { - return resultDataMessage.hasExpireTimer; +- (OWSSignalServiceProtosNullMessage*) defaultInstance { + return [OWSSignalServiceProtosNullMessage defaultInstance]; } -- (UInt32) expireTimer { - return resultDataMessage.expireTimer; +- (OWSSignalServiceProtosNullMessage*) build { + [self checkInitialized]; + return [self buildPartial]; } -- (OWSSignalServiceProtosDataMessageBuilder*) setExpireTimer:(UInt32) value { - resultDataMessage.hasExpireTimer = YES; - resultDataMessage.expireTimer = value; - return self; +- (OWSSignalServiceProtosNullMessage*) buildPartial { + OWSSignalServiceProtosNullMessage* returnMe = resultNullMessage; + self.resultNullMessage = nil; + return returnMe; } -- (OWSSignalServiceProtosDataMessageBuilder*) clearExpireTimer { - resultDataMessage.hasExpireTimer = NO; - resultDataMessage.expireTimer = 0; +- (OWSSignalServiceProtosNullMessageBuilder*) mergeFrom:(OWSSignalServiceProtosNullMessage*) other { + if (other == [OWSSignalServiceProtosNullMessage defaultInstance]) { + return self; + } + if (other.hasPadding) { + [self setPadding:other.padding]; + } + [self mergeUnknownFields:other.unknownFields]; return self; } -- (BOOL) hasProfileKey { - return resultDataMessage.hasProfileKey; +- (OWSSignalServiceProtosNullMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; } -- (NSData*) profileKey { - return resultDataMessage.profileKey; +- (OWSSignalServiceProtosNullMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + SInt32 tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setPadding:[input readData]]; + break; + } + } + } } -- (OWSSignalServiceProtosDataMessageBuilder*) setProfileKey:(NSData*) value { - resultDataMessage.hasProfileKey = YES; - resultDataMessage.profileKey = value; +- (BOOL) hasPadding { + return resultNullMessage.hasPadding; +} +- (NSData*) padding { + return resultNullMessage.padding; +} +- (OWSSignalServiceProtosNullMessageBuilder*) setPadding:(NSData*) value { + resultNullMessage.hasPadding = YES; + resultNullMessage.padding = value; return self; } -- (OWSSignalServiceProtosDataMessageBuilder*) clearProfileKey { - resultDataMessage.hasProfileKey = NO; - resultDataMessage.profileKey = [NSData data]; +- (OWSSignalServiceProtosNullMessageBuilder*) clearPadding { + resultNullMessage.hasPadding = NO; + resultNullMessage.padding = [NSData data]; return self; } @end -@interface OWSSignalServiceProtosNullMessage () -@property (strong) NSData* padding; +@interface OWSSignalServiceProtosReceiptMessage () +@property OWSSignalServiceProtosReceiptMessageType type; +@property (strong) PBAppendableArray * timestampArray; @end -@implementation OWSSignalServiceProtosNullMessage +@implementation OWSSignalServiceProtosReceiptMessage -- (BOOL) hasPadding { - return !!hasPadding_; +- (BOOL) hasType { + return !!hasType_; } -- (void) setHasPadding:(BOOL) _value_ { - hasPadding_ = !!_value_; +- (void) setHasType:(BOOL) _value_ { + hasType_ = !!_value_; } -@synthesize padding; +@synthesize type; +@synthesize timestampArray; +@dynamic timestamp; - (instancetype) init { if ((self = [super init])) { - self.padding = [NSData data]; + self.type = OWSSignalServiceProtosReceiptMessageTypeDelivery; } return self; } -static OWSSignalServiceProtosNullMessage* defaultOWSSignalServiceProtosNullMessageInstance = nil; +static OWSSignalServiceProtosReceiptMessage* defaultOWSSignalServiceProtosReceiptMessageInstance = nil; + (void) initialize { - if (self == [OWSSignalServiceProtosNullMessage class]) { - defaultOWSSignalServiceProtosNullMessageInstance = [[OWSSignalServiceProtosNullMessage alloc] init]; + if (self == [OWSSignalServiceProtosReceiptMessage class]) { + defaultOWSSignalServiceProtosReceiptMessageInstance = [[OWSSignalServiceProtosReceiptMessage alloc] init]; } } + (instancetype) defaultInstance { - return defaultOWSSignalServiceProtosNullMessageInstance; + return defaultOWSSignalServiceProtosReceiptMessageInstance; } - (instancetype) defaultInstance { - return defaultOWSSignalServiceProtosNullMessageInstance; + return defaultOWSSignalServiceProtosReceiptMessageInstance; +} +- (PBArray *)timestamp { + return timestampArray; +} +- (UInt64)timestampAtIndex:(NSUInteger)index { + return [timestampArray uint64AtIndex:index]; } - (BOOL) isInitialized { return YES; } - (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { - if (self.hasPadding) { - [output writeData:1 value:self.padding]; + if (self.hasType) { + [output writeEnum:1 value:self.type]; + } + const NSUInteger timestampArrayCount = self.timestampArray.count; + if (timestampArrayCount > 0) { + const UInt64 *values = (const UInt64 *)self.timestampArray.data; + for (NSUInteger i = 0; i < timestampArrayCount; ++i) { + [output writeUInt64:2 value:values[i]]; + } } [self.unknownFields writeToCodedOutputStream:output]; } @@ -3780,126 +3696,176 @@ static OWSSignalServiceProtosNullMessage* defaultOWSSignalServiceProtosNullMessa } size_ = 0; - if (self.hasPadding) { - size_ += computeDataSize(1, self.padding); + if (self.hasType) { + size_ += computeEnumSize(1, self.type); + } + { + __block SInt32 dataSize = 0; + const NSUInteger count = self.timestampArray.count; + const UInt64 *values = (const UInt64 *)self.timestampArray.data; + for (NSUInteger i = 0; i < count; ++i) { + dataSize += computeUInt64SizeNoTag(values[i]); + } + size_ += dataSize; + size_ += (SInt32)(1 * count); } size_ += self.unknownFields.serializedSize; memoizedSerializedSize = size_; return size_; } -+ (OWSSignalServiceProtosNullMessage*) parseFromData:(NSData*) data { - return (OWSSignalServiceProtosNullMessage*)[[[OWSSignalServiceProtosNullMessage builder] mergeFromData:data] build]; ++ (OWSSignalServiceProtosReceiptMessage*) parseFromData:(NSData*) data { + return (OWSSignalServiceProtosReceiptMessage*)[[[OWSSignalServiceProtosReceiptMessage builder] mergeFromData:data] build]; } -+ (OWSSignalServiceProtosNullMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { - return (OWSSignalServiceProtosNullMessage*)[[[OWSSignalServiceProtosNullMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; ++ (OWSSignalServiceProtosReceiptMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (OWSSignalServiceProtosReceiptMessage*)[[[OWSSignalServiceProtosReceiptMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; } -+ (OWSSignalServiceProtosNullMessage*) parseFromInputStream:(NSInputStream*) input { - return (OWSSignalServiceProtosNullMessage*)[[[OWSSignalServiceProtosNullMessage builder] mergeFromInputStream:input] build]; ++ (OWSSignalServiceProtosReceiptMessage*) parseFromInputStream:(NSInputStream*) input { + return (OWSSignalServiceProtosReceiptMessage*)[[[OWSSignalServiceProtosReceiptMessage builder] mergeFromInputStream:input] build]; } -+ (OWSSignalServiceProtosNullMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { - return (OWSSignalServiceProtosNullMessage*)[[[OWSSignalServiceProtosNullMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; ++ (OWSSignalServiceProtosReceiptMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (OWSSignalServiceProtosReceiptMessage*)[[[OWSSignalServiceProtosReceiptMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; } -+ (OWSSignalServiceProtosNullMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input { - return (OWSSignalServiceProtosNullMessage*)[[[OWSSignalServiceProtosNullMessage builder] mergeFromCodedInputStream:input] build]; ++ (OWSSignalServiceProtosReceiptMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (OWSSignalServiceProtosReceiptMessage*)[[[OWSSignalServiceProtosReceiptMessage builder] mergeFromCodedInputStream:input] build]; } -+ (OWSSignalServiceProtosNullMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { - return (OWSSignalServiceProtosNullMessage*)[[[OWSSignalServiceProtosNullMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; ++ (OWSSignalServiceProtosReceiptMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (OWSSignalServiceProtosReceiptMessage*)[[[OWSSignalServiceProtosReceiptMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; } -+ (OWSSignalServiceProtosNullMessageBuilder*) builder { - return [[OWSSignalServiceProtosNullMessageBuilder alloc] init]; ++ (OWSSignalServiceProtosReceiptMessageBuilder*) builder { + return [[OWSSignalServiceProtosReceiptMessageBuilder alloc] init]; } -+ (OWSSignalServiceProtosNullMessageBuilder*) builderWithPrototype:(OWSSignalServiceProtosNullMessage*) prototype { - return [[OWSSignalServiceProtosNullMessage builder] mergeFrom:prototype]; ++ (OWSSignalServiceProtosReceiptMessageBuilder*) builderWithPrototype:(OWSSignalServiceProtosReceiptMessage*) prototype { + return [[OWSSignalServiceProtosReceiptMessage builder] mergeFrom:prototype]; } -- (OWSSignalServiceProtosNullMessageBuilder*) builder { - return [OWSSignalServiceProtosNullMessage builder]; +- (OWSSignalServiceProtosReceiptMessageBuilder*) builder { + return [OWSSignalServiceProtosReceiptMessage builder]; } -- (OWSSignalServiceProtosNullMessageBuilder*) toBuilder { - return [OWSSignalServiceProtosNullMessage builderWithPrototype:self]; +- (OWSSignalServiceProtosReceiptMessageBuilder*) toBuilder { + return [OWSSignalServiceProtosReceiptMessage builderWithPrototype:self]; } - (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent { - if (self.hasPadding) { - [output appendFormat:@"%@%@: %@\n", indent, @"padding", self.padding]; + if (self.hasType) { + [output appendFormat:@"%@%@: %@\n", indent, @"type", NSStringFromOWSSignalServiceProtosReceiptMessageType(self.type)]; } + [self.timestampArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { + [output appendFormat:@"%@%@: %@\n", indent, @"timestamp", obj]; + }]; [self.unknownFields writeDescriptionTo:output withIndent:indent]; } - (void) storeInDictionary:(NSMutableDictionary *)dictionary { - if (self.hasPadding) { - [dictionary setObject: self.padding forKey: @"padding"]; + if (self.hasType) { + [dictionary setObject: @(self.type) forKey: @"type"]; } + NSMutableArray * timestampArrayArray = [NSMutableArray new]; + NSUInteger timestampArrayCount=self.timestampArray.count; + for(int i=0;i 0) { + if (resultReceiptMessage.timestampArray == nil) { + resultReceiptMessage.timestampArray = [other.timestampArray copy]; + } else { + [resultReceiptMessage.timestampArray appendArray:other.timestampArray]; + } } [self mergeUnknownFields:other.unknownFields]; return self; } -- (OWSSignalServiceProtosNullMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { +- (OWSSignalServiceProtosReceiptMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; } -- (OWSSignalServiceProtosNullMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { +- (OWSSignalServiceProtosReceiptMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; while (YES) { SInt32 tag = [input readTag]; @@ -3914,27 +3880,61 @@ static OWSSignalServiceProtosNullMessage* defaultOWSSignalServiceProtosNullMessa } break; } - case 10: { - [self setPadding:[input readData]]; + case 8: { + OWSSignalServiceProtosReceiptMessageType value = (OWSSignalServiceProtosReceiptMessageType)[input readEnum]; + if (OWSSignalServiceProtosReceiptMessageTypeIsValidValue(value)) { + [self setType:value]; + } else { + [unknownFields mergeVarintField:1 value:value]; + } + break; + } + case 16: { + [self addTimestamp:[input readUInt64]]; break; } } } } -- (BOOL) hasPadding { - return resultNullMessage.hasPadding; +- (BOOL) hasType { + return resultReceiptMessage.hasType; } -- (NSData*) padding { - return resultNullMessage.padding; +- (OWSSignalServiceProtosReceiptMessageType) type { + return resultReceiptMessage.type; } -- (OWSSignalServiceProtosNullMessageBuilder*) setPadding:(NSData*) value { - resultNullMessage.hasPadding = YES; - resultNullMessage.padding = value; +- (OWSSignalServiceProtosReceiptMessageBuilder*) setType:(OWSSignalServiceProtosReceiptMessageType) value { + resultReceiptMessage.hasType = YES; + resultReceiptMessage.type = value; return self; } -- (OWSSignalServiceProtosNullMessageBuilder*) clearPadding { - resultNullMessage.hasPadding = NO; - resultNullMessage.padding = [NSData data]; +- (OWSSignalServiceProtosReceiptMessageBuilder*) clearType { + resultReceiptMessage.hasType = NO; + resultReceiptMessage.type = OWSSignalServiceProtosReceiptMessageTypeDelivery; + return self; +} +- (PBAppendableArray *)timestamp { + return resultReceiptMessage.timestampArray; +} +- (UInt64)timestampAtIndex:(NSUInteger)index { + return [resultReceiptMessage timestampAtIndex:index]; +} +- (OWSSignalServiceProtosReceiptMessageBuilder *)addTimestamp:(UInt64)value { + if (resultReceiptMessage.timestampArray == nil) { + resultReceiptMessage.timestampArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt64]; + } + [resultReceiptMessage.timestampArray addUint64:value]; + return self; +} +- (OWSSignalServiceProtosReceiptMessageBuilder *)setTimestampArray:(NSArray *)array { + resultReceiptMessage.timestampArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeUInt64]; + return self; +} +- (OWSSignalServiceProtosReceiptMessageBuilder *)setTimestampValues:(const UInt64 *)values count:(NSUInteger)count { + resultReceiptMessage.timestampArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeUInt64]; + return self; +} +- (OWSSignalServiceProtosReceiptMessageBuilder *)clearTimestamp { + resultReceiptMessage.timestampArray = nil; return self; } @end @@ -4328,6 +4328,7 @@ NSString *NSStringFromOWSSignalServiceProtosVerifiedState(OWSSignalServiceProtos @property (strong) NSMutableArray * readArray; @property (strong) OWSSignalServiceProtosSyncMessageBlocked* blocked; @property (strong) OWSSignalServiceProtosVerified* verified; +@property (strong) OWSSignalServiceProtosSyncMessageConfiguration* configuration; @property (strong) NSData* padding; @end @@ -4377,6 +4378,13 @@ NSString *NSStringFromOWSSignalServiceProtosVerifiedState(OWSSignalServiceProtos hasVerified_ = !!_value_; } @synthesize verified; +- (BOOL) hasConfiguration { + return !!hasConfiguration_; +} +- (void) setHasConfiguration:(BOOL) _value_ { + hasConfiguration_ = !!_value_; +} +@synthesize configuration; - (BOOL) hasPadding { return !!hasPadding_; } @@ -4392,6 +4400,7 @@ NSString *NSStringFromOWSSignalServiceProtosVerifiedState(OWSSignalServiceProtos self.request = [OWSSignalServiceProtosSyncMessageRequest defaultInstance]; self.blocked = [OWSSignalServiceProtosSyncMessageBlocked defaultInstance]; self.verified = [OWSSignalServiceProtosVerified defaultInstance]; + self.configuration = [OWSSignalServiceProtosSyncMessageConfiguration defaultInstance]; self.padding = [NSData data]; } return self; @@ -4442,6 +4451,9 @@ static OWSSignalServiceProtosSyncMessage* defaultOWSSignalServiceProtosSyncMessa if (self.hasPadding) { [output writeData:8 value:self.padding]; } + if (self.hasConfiguration) { + [output writeMessage:9 value:self.configuration]; + } [self.unknownFields writeToCodedOutputStream:output]; } - (SInt32) serializedSize { @@ -4475,6 +4487,9 @@ static OWSSignalServiceProtosSyncMessage* defaultOWSSignalServiceProtosSyncMessa if (self.hasPadding) { size_ += computeDataSize(8, self.padding); } + if (self.hasConfiguration) { + size_ += computeMessageSize(9, self.configuration); + } size_ += self.unknownFields.serializedSize; memoizedSerializedSize = size_; return size_; @@ -4555,6 +4570,12 @@ static OWSSignalServiceProtosSyncMessage* defaultOWSSignalServiceProtosSyncMessa if (self.hasPadding) { [output appendFormat:@"%@%@: %@\n", indent, @"padding", self.padding]; } + if (self.hasConfiguration) { + [output appendFormat:@"%@%@ {\n", indent, @"configuration"]; + [self.configuration writeDescriptionTo:output + withIndent:[NSString stringWithFormat:@"%@ ", indent]]; + [output appendFormat:@"%@}\n", indent]; + } [self.unknownFields writeDescriptionTo:output withIndent:indent]; } - (void) storeInDictionary:(NSMutableDictionary *)dictionary { @@ -4596,6 +4617,11 @@ static OWSSignalServiceProtosSyncMessage* defaultOWSSignalServiceProtosSyncMessa if (self.hasPadding) { [dictionary setObject: self.padding forKey: @"padding"]; } + if (self.hasConfiguration) { + NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary]; + [self.configuration storeInDictionary:messageDictionary]; + [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"configuration"]; + } [self.unknownFields storeInDictionary:dictionary]; } - (BOOL) isEqual:(id)other { @@ -4622,6 +4648,8 @@ static OWSSignalServiceProtosSyncMessage* defaultOWSSignalServiceProtosSyncMessa (!self.hasVerified || [self.verified isEqual:otherMessage.verified]) && self.hasPadding == otherMessage.hasPadding && (!self.hasPadding || [self.padding isEqual:otherMessage.padding]) && + self.hasConfiguration == otherMessage.hasConfiguration && + (!self.hasConfiguration || [self.configuration isEqual:otherMessage.configuration]) && (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields])); } - (NSUInteger) hash { @@ -4650,6 +4678,9 @@ static OWSSignalServiceProtosSyncMessage* defaultOWSSignalServiceProtosSyncMessa if (self.hasPadding) { hashCode = hashCode * 31 + [self.padding hash]; } + if (self.hasConfiguration) { + hashCode = hashCode * 31 + [self.configuration hash]; + } hashCode = hashCode * 31 + [self.unknownFields hash]; return hashCode; } @@ -5889,6 +5920,7 @@ BOOL OWSSignalServiceProtosSyncMessageRequestTypeIsValidValue(OWSSignalServicePr case OWSSignalServiceProtosSyncMessageRequestTypeContacts: case OWSSignalServiceProtosSyncMessageRequestTypeGroups: case OWSSignalServiceProtosSyncMessageRequestTypeBlocked: + case OWSSignalServiceProtosSyncMessageRequestTypeConfiguration: return YES; default: return NO; @@ -5904,6 +5936,8 @@ NSString *NSStringFromOWSSignalServiceProtosSyncMessageRequestType(OWSSignalServ return @"OWSSignalServiceProtosSyncMessageRequestTypeGroups"; case OWSSignalServiceProtosSyncMessageRequestTypeBlocked: return @"OWSSignalServiceProtosSyncMessageRequestTypeBlocked"; + case OWSSignalServiceProtosSyncMessageRequestTypeConfiguration: + return @"OWSSignalServiceProtosSyncMessageRequestTypeConfiguration"; default: return nil; } @@ -6256,6 +6290,217 @@ static OWSSignalServiceProtosSyncMessageRead* defaultOWSSignalServiceProtosSyncM } @end +@interface OWSSignalServiceProtosSyncMessageConfiguration () +@property BOOL readReceipts; +@end + +@implementation OWSSignalServiceProtosSyncMessageConfiguration + +- (BOOL) hasReadReceipts { + return !!hasReadReceipts_; +} +- (void) setHasReadReceipts:(BOOL) _value_ { + hasReadReceipts_ = !!_value_; +} +- (BOOL) readReceipts { + return !!readReceipts_; +} +- (void) setReadReceipts:(BOOL) _value_ { + readReceipts_ = !!_value_; +} +- (instancetype) init { + if ((self = [super init])) { + self.readReceipts = NO; + } + return self; +} +static OWSSignalServiceProtosSyncMessageConfiguration* defaultOWSSignalServiceProtosSyncMessageConfigurationInstance = nil; ++ (void) initialize { + if (self == [OWSSignalServiceProtosSyncMessageConfiguration class]) { + defaultOWSSignalServiceProtosSyncMessageConfigurationInstance = [[OWSSignalServiceProtosSyncMessageConfiguration alloc] init]; + } +} ++ (instancetype) defaultInstance { + return defaultOWSSignalServiceProtosSyncMessageConfigurationInstance; +} +- (instancetype) defaultInstance { + return defaultOWSSignalServiceProtosSyncMessageConfigurationInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasReadReceipts) { + [output writeBool:1 value:self.readReceipts]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (SInt32) serializedSize { + __block SInt32 size_ = memoizedSerializedSize; + if (size_ != -1) { + return size_; + } + + size_ = 0; + if (self.hasReadReceipts) { + size_ += computeBoolSize(1, self.readReceipts); + } + size_ += self.unknownFields.serializedSize; + memoizedSerializedSize = size_; + return size_; +} ++ (OWSSignalServiceProtosSyncMessageConfiguration*) parseFromData:(NSData*) data { + return (OWSSignalServiceProtosSyncMessageConfiguration*)[[[OWSSignalServiceProtosSyncMessageConfiguration builder] mergeFromData:data] build]; +} ++ (OWSSignalServiceProtosSyncMessageConfiguration*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (OWSSignalServiceProtosSyncMessageConfiguration*)[[[OWSSignalServiceProtosSyncMessageConfiguration builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (OWSSignalServiceProtosSyncMessageConfiguration*) parseFromInputStream:(NSInputStream*) input { + return (OWSSignalServiceProtosSyncMessageConfiguration*)[[[OWSSignalServiceProtosSyncMessageConfiguration builder] mergeFromInputStream:input] build]; +} ++ (OWSSignalServiceProtosSyncMessageConfiguration*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (OWSSignalServiceProtosSyncMessageConfiguration*)[[[OWSSignalServiceProtosSyncMessageConfiguration builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (OWSSignalServiceProtosSyncMessageConfiguration*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (OWSSignalServiceProtosSyncMessageConfiguration*)[[[OWSSignalServiceProtosSyncMessageConfiguration builder] mergeFromCodedInputStream:input] build]; +} ++ (OWSSignalServiceProtosSyncMessageConfiguration*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (OWSSignalServiceProtosSyncMessageConfiguration*)[[[OWSSignalServiceProtosSyncMessageConfiguration builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) builder { + return [[OWSSignalServiceProtosSyncMessageConfigurationBuilder alloc] init]; +} ++ (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessageConfiguration*) prototype { + return [[OWSSignalServiceProtosSyncMessageConfiguration builder] mergeFrom:prototype]; +} +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) builder { + return [OWSSignalServiceProtosSyncMessageConfiguration builder]; +} +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) toBuilder { + return [OWSSignalServiceProtosSyncMessageConfiguration builderWithPrototype:self]; +} +- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent { + if (self.hasReadReceipts) { + [output appendFormat:@"%@%@: %@\n", indent, @"readReceipts", [NSNumber numberWithBool:self.readReceipts]]; + } + [self.unknownFields writeDescriptionTo:output withIndent:indent]; +} +- (void) storeInDictionary:(NSMutableDictionary *)dictionary { + if (self.hasReadReceipts) { + [dictionary setObject: [NSNumber numberWithBool:self.readReceipts] forKey: @"readReceipts"]; + } + [self.unknownFields storeInDictionary:dictionary]; +} +- (BOOL) isEqual:(id)other { + if (other == self) { + return YES; + } + if (![other isKindOfClass:[OWSSignalServiceProtosSyncMessageConfiguration class]]) { + return NO; + } + OWSSignalServiceProtosSyncMessageConfiguration *otherMessage = other; + return + self.hasReadReceipts == otherMessage.hasReadReceipts && + (!self.hasReadReceipts || self.readReceipts == otherMessage.readReceipts) && + (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields])); +} +- (NSUInteger) hash { + __block NSUInteger hashCode = 7; + if (self.hasReadReceipts) { + hashCode = hashCode * 31 + [[NSNumber numberWithBool:self.readReceipts] hash]; + } + hashCode = hashCode * 31 + [self.unknownFields hash]; + return hashCode; +} +@end + +@interface OWSSignalServiceProtosSyncMessageConfigurationBuilder() +@property (strong) OWSSignalServiceProtosSyncMessageConfiguration* resultConfiguration; +@end + +@implementation OWSSignalServiceProtosSyncMessageConfigurationBuilder +@synthesize resultConfiguration; +- (instancetype) init { + if ((self = [super init])) { + self.resultConfiguration = [[OWSSignalServiceProtosSyncMessageConfiguration alloc] init]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return resultConfiguration; +} +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) clear { + self.resultConfiguration = [[OWSSignalServiceProtosSyncMessageConfiguration alloc] init]; + return self; +} +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) clone { + return [OWSSignalServiceProtosSyncMessageConfiguration builderWithPrototype:resultConfiguration]; +} +- (OWSSignalServiceProtosSyncMessageConfiguration*) defaultInstance { + return [OWSSignalServiceProtosSyncMessageConfiguration defaultInstance]; +} +- (OWSSignalServiceProtosSyncMessageConfiguration*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (OWSSignalServiceProtosSyncMessageConfiguration*) buildPartial { + OWSSignalServiceProtosSyncMessageConfiguration* returnMe = resultConfiguration; + self.resultConfiguration = nil; + return returnMe; +} +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessageConfiguration*) other { + if (other == [OWSSignalServiceProtosSyncMessageConfiguration defaultInstance]) { + return self; + } + if (other.hasReadReceipts) { + [self setReadReceipts:other.readReceipts]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + SInt32 tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setReadReceipts:[input readBool]]; + break; + } + } + } +} +- (BOOL) hasReadReceipts { + return resultConfiguration.hasReadReceipts; +} +- (BOOL) readReceipts { + return resultConfiguration.readReceipts; +} +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) setReadReceipts:(BOOL) value { + resultConfiguration.hasReadReceipts = YES; + resultConfiguration.readReceipts = value; + return self; +} +- (OWSSignalServiceProtosSyncMessageConfigurationBuilder*) clearReadReceipts { + resultConfiguration.hasReadReceipts = NO; + resultConfiguration.readReceipts = NO; + return self; +} +@end + @interface OWSSignalServiceProtosSyncMessageBuilder() @property (strong) OWSSignalServiceProtosSyncMessage* resultSyncMessage; @end @@ -6319,6 +6564,9 @@ static OWSSignalServiceProtosSyncMessageRead* defaultOWSSignalServiceProtosSyncM if (other.hasVerified) { [self mergeVerified:other.verified]; } + if (other.hasConfiguration) { + [self mergeConfiguration:other.configuration]; + } if (other.hasPadding) { [self setPadding:other.padding]; } @@ -6407,6 +6655,15 @@ static OWSSignalServiceProtosSyncMessageRead* defaultOWSSignalServiceProtosSyncM [self setPadding:[input readData]]; break; } + case 74: { + OWSSignalServiceProtosSyncMessageConfigurationBuilder* subBuilder = [OWSSignalServiceProtosSyncMessageConfiguration builder]; + if (self.hasConfiguration) { + [subBuilder mergeFrom:self.configuration]; + } + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self setConfiguration:[subBuilder buildPartial]]; + break; + } } } } @@ -6611,6 +6868,36 @@ static OWSSignalServiceProtosSyncMessageRead* defaultOWSSignalServiceProtosSyncM resultSyncMessage.verified = [OWSSignalServiceProtosVerified defaultInstance]; return self; } +- (BOOL) hasConfiguration { + return resultSyncMessage.hasConfiguration; +} +- (OWSSignalServiceProtosSyncMessageConfiguration*) configuration { + return resultSyncMessage.configuration; +} +- (OWSSignalServiceProtosSyncMessageBuilder*) setConfiguration:(OWSSignalServiceProtosSyncMessageConfiguration*) value { + resultSyncMessage.hasConfiguration = YES; + resultSyncMessage.configuration = value; + return self; +} +- (OWSSignalServiceProtosSyncMessageBuilder*) setConfigurationBuilder:(OWSSignalServiceProtosSyncMessageConfigurationBuilder*) builderForValue { + return [self setConfiguration:[builderForValue build]]; +} +- (OWSSignalServiceProtosSyncMessageBuilder*) mergeConfiguration:(OWSSignalServiceProtosSyncMessageConfiguration*) value { + if (resultSyncMessage.hasConfiguration && + resultSyncMessage.configuration != [OWSSignalServiceProtosSyncMessageConfiguration defaultInstance]) { + resultSyncMessage.configuration = + [[[OWSSignalServiceProtosSyncMessageConfiguration builderWithPrototype:resultSyncMessage.configuration] mergeFrom:value] buildPartial]; + } else { + resultSyncMessage.configuration = value; + } + resultSyncMessage.hasConfiguration = YES; + return self; +} +- (OWSSignalServiceProtosSyncMessageBuilder*) clearConfiguration { + resultSyncMessage.hasConfiguration = NO; + resultSyncMessage.configuration = [OWSSignalServiceProtosSyncMessageConfiguration defaultInstance]; + return self; +} - (BOOL) hasPadding { return resultSyncMessage.hasPadding; }