Merge branch 'mkirk/sync-settings-req'

pull/1/head
Michael Kirk 8 years ago
commit 2ddde6617e

@ -11,6 +11,7 @@
#import <SignalServiceKit/ECKeyPair+OWSPrivateKey.h> #import <SignalServiceKit/ECKeyPair+OWSPrivateKey.h>
#import <SignalServiceKit/OWSDeviceProvisioner.h> #import <SignalServiceKit/OWSDeviceProvisioner.h>
#import <SignalServiceKit/OWSIdentityManager.h> #import <SignalServiceKit/OWSIdentityManager.h>
#import <SignalServiceKit/OWSReadReceiptManager.h>
#import <SignalServiceKit/TSAccountManager.h> #import <SignalServiceKit/TSAccountManager.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@ -20,6 +21,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (strong, nonatomic) IBOutlet UIView *qrScanningView; @property (strong, nonatomic) IBOutlet UIView *qrScanningView;
@property (strong, nonatomic) IBOutlet UILabel *scanningInstructionsLabel; @property (strong, nonatomic) IBOutlet UILabel *scanningInstructionsLabel;
@property (strong, nonatomic) OWSQRCodeScanningViewController *qrScanningController; @property (strong, nonatomic) OWSQRCodeScanningViewController *qrScanningController;
@property (nonatomic, readonly) OWSReadReceiptManager *readReceiptManager;
@end @end
@ -46,6 +48,11 @@ NS_ASSUME_NONNULL_BEGIN
return [OWSProfileManager sharedManager]; return [OWSProfileManager sharedManager];
} }
- (OWSReadReceiptManager *)readReceiptManager
{
return [OWSReadReceiptManager sharedManager];
}
- (void)viewWillAppear:(BOOL)animated - (void)viewWillAppear:(BOOL)animated
{ {
[super viewWillAppear:animated]; [super viewWillAppear:animated];
@ -141,13 +148,15 @@ NS_ASSUME_NONNULL_BEGIN
NSData *myPrivateKey = identityKeyPair.ows_privateKey; NSData *myPrivateKey = identityKeyPair.ows_privateKey;
NSString *accountIdentifier = [TSAccountManager localNumber]; NSString *accountIdentifier = [TSAccountManager localNumber];
NSData *myProfileKeyData = self.profileManager.localProfileKey.keyData; NSData *myProfileKeyData = self.profileManager.localProfileKey.keyData;
BOOL areReadReceiptsEnabled = self.readReceiptManager.areReadReceiptsEnabled;
OWSDeviceProvisioner *provisioner = [[OWSDeviceProvisioner alloc] initWithMyPublicKey:myPublicKey OWSDeviceProvisioner *provisioner = [[OWSDeviceProvisioner alloc] initWithMyPublicKey:myPublicKey
myPrivateKey:myPrivateKey myPrivateKey:myPrivateKey
theirPublicKey:parser.publicKey theirPublicKey:parser.publicKey
theirEphemeralDeviceId:parser.ephemeralDeviceId theirEphemeralDeviceId:parser.ephemeralDeviceId
accountIdentifier:accountIdentifier accountIdentifier:accountIdentifier
profileKey:myProfileKeyData]; profileKey:myProfileKeyData
readReceiptsEnabled:areReadReceiptsEnabled];
[provisioner provisionWithSuccess:^{ [provisioner provisionWithSuccess:^{
DDLogInfo(@"Successfully provisioned device."); DDLogInfo(@"Successfully provisioned device.");

@ -24,4 +24,5 @@ message ProvisionMessage {
optional string provisioningCode = 4; optional string provisioningCode = 4;
optional string userAgent = 5; optional string userAgent = 5;
optional bytes profileKey = 6; optional bytes profileKey = 6;
optional bool readReceipts = 7;
} }

@ -31,23 +31,13 @@ message Envelope {
} }
message Content { message Content {
optional DataMessage dataMessage = 1; optional DataMessage dataMessage = 1;
optional SyncMessage syncMessage = 2; optional SyncMessage syncMessage = 2;
optional CallMessage callMessage = 3; optional CallMessage callMessage = 3;
optional NullMessage nullMessage = 4; optional NullMessage nullMessage = 4;
optional ReceiptMessage receiptMessage = 5; optional ReceiptMessage receiptMessage = 5;
} }
message ReceiptMessage {
enum Type {
DELIVERY = 0;
READ = 1;
}
optional Type type = 1;
repeated uint64 timestamp = 2;
}
message CallMessage { message CallMessage {
message Offer { message Offer {
optional uint64 id = 1; optional uint64 id = 1;
@ -91,9 +81,9 @@ message CallMessage {
message DataMessage { message DataMessage {
enum Flags { enum Flags {
END_SESSION = 1; END_SESSION = 1;
EXPIRATION_TIMER_UPDATE = 2; EXPIRATION_TIMER_UPDATE = 2;
PROFILE_KEY = 4; PROFILE_KEY_UPDATE = 4;
} }
optional string body = 1; optional string body = 1;
@ -108,6 +98,16 @@ message NullMessage {
optional bytes padding = 1; optional bytes padding = 1;
} }
message ReceiptMessage {
enum Type {
DELIVERY = 0;
READ = 1;
}
optional Type type = 1;
repeated uint64 timestamp = 2;
}
message Verified { message Verified {
enum State { enum State {
DEFAULT = 0; DEFAULT = 0;
@ -130,7 +130,7 @@ message SyncMessage {
} }
message Contacts { message Contacts {
optional AttachmentPointer blob = 1; optional AttachmentPointer blob = 1;
optional bool isComplete = 2 [default = false]; optional bool isComplete = 2 [default = false];
} }
@ -144,10 +144,11 @@ message SyncMessage {
message Request { message Request {
enum Type { enum Type {
UNKNOWN = 0; UNKNOWN = 0;
CONTACTS = 1; CONTACTS = 1;
GROUPS = 2; GROUPS = 2;
BLOCKED = 3; BLOCKED = 3;
CONFIGURATION = 4;
} }
optional Type type = 1; optional Type type = 1;
@ -158,14 +159,19 @@ message SyncMessage {
optional uint64 timestamp = 2; optional uint64 timestamp = 2;
} }
optional Sent sent = 1; message Configuration {
optional Contacts contacts = 2; optional bool readReceipts = 1;
optional Groups groups = 3; }
optional Request request = 4;
repeated Read read = 5; optional Sent sent = 1;
optional Blocked blocked = 6; optional Contacts contacts = 2;
optional Verified verified = 7; optional Groups groups = 3;
optional bytes padding = 8; 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 { message AttachmentPointer {

@ -17,6 +17,7 @@ NS_ASSUME_NONNULL_BEGIN
theirEphemeralDeviceId:(NSString *)ephemeralDeviceId theirEphemeralDeviceId:(NSString *)ephemeralDeviceId
accountIdentifier:(NSString *)accountIdentifier accountIdentifier:(NSString *)accountIdentifier
profileKey:(NSData *)profileKey profileKey:(NSData *)profileKey
readReceiptsEnabled:(BOOL)areReadReceiptsEnabled
provisioningCodeService:(OWSDeviceProvisioningCodeService *)provisioningCodeService provisioningCodeService:(OWSDeviceProvisioningCodeService *)provisioningCodeService
provisioningService:(OWSDeviceProvisioningService *)provisioningService NS_DESIGNATED_INITIALIZER; provisioningService:(OWSDeviceProvisioningService *)provisioningService NS_DESIGNATED_INITIALIZER;
@ -25,7 +26,8 @@ NS_ASSUME_NONNULL_BEGIN
theirPublicKey:(NSData *)theirPublicKey theirPublicKey:(NSData *)theirPublicKey
theirEphemeralDeviceId:(NSString *)ephemeralDeviceId theirEphemeralDeviceId:(NSString *)ephemeralDeviceId
accountIdentifier:(NSString *)accountIdentifier accountIdentifier:(NSString *)accountIdentifier
profileKey:(NSData *)profileKey; profileKey:(NSData *)profileKey
readReceiptsEnabled:(BOOL)areReadReceiptsEnabled;
- (void)provisionWithSuccess:(void (^)())successCallback failure:(void (^)(NSError *))failureCallback; - (void)provisionWithSuccess:(void (^)())successCallback failure:(void (^)(NSError *))failureCallback;

@ -18,6 +18,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, readonly) NSString *accountIdentifier; @property (nonatomic, readonly) NSString *accountIdentifier;
@property (nonatomic, readonly) NSData *profileKey; @property (nonatomic, readonly) NSData *profileKey;
@property (nonatomic, nullable) NSString *ephemeralDeviceId; @property (nonatomic, nullable) NSString *ephemeralDeviceId;
@property (nonatomic, readonly) BOOL areReadReceiptsEnabled;
@property (nonatomic, readonly) OWSDeviceProvisioningCodeService *provisioningCodeService; @property (nonatomic, readonly) OWSDeviceProvisioningCodeService *provisioningCodeService;
@property (nonatomic, readonly) OWSDeviceProvisioningService *provisioningService; @property (nonatomic, readonly) OWSDeviceProvisioningService *provisioningService;
@ -31,6 +32,7 @@ NS_ASSUME_NONNULL_BEGIN
theirEphemeralDeviceId:(NSString *)ephemeralDeviceId theirEphemeralDeviceId:(NSString *)ephemeralDeviceId
accountIdentifier:(NSString *)accountIdentifier accountIdentifier:(NSString *)accountIdentifier
profileKey:(NSData *)profileKey profileKey:(NSData *)profileKey
readReceiptsEnabled:(BOOL)areReadReceiptsEnabled
provisioningCodeService:(OWSDeviceProvisioningCodeService *)provisioningCodeService provisioningCodeService:(OWSDeviceProvisioningCodeService *)provisioningCodeService
provisioningService:(OWSDeviceProvisioningService *)provisioningService provisioningService:(OWSDeviceProvisioningService *)provisioningService
{ {
@ -45,6 +47,7 @@ NS_ASSUME_NONNULL_BEGIN
_accountIdentifier = accountIdentifier; _accountIdentifier = accountIdentifier;
_profileKey = profileKey; _profileKey = profileKey;
_ephemeralDeviceId = ephemeralDeviceId; _ephemeralDeviceId = ephemeralDeviceId;
_areReadReceiptsEnabled = areReadReceiptsEnabled;
_provisioningCodeService = provisioningCodeService; _provisioningCodeService = provisioningCodeService;
_provisioningService = provisioningService; _provisioningService = provisioningService;
@ -57,6 +60,7 @@ NS_ASSUME_NONNULL_BEGIN
theirEphemeralDeviceId:(NSString *)ephemeralDeviceId theirEphemeralDeviceId:(NSString *)ephemeralDeviceId
accountIdentifier:(NSString *)accountIdentifier accountIdentifier:(NSString *)accountIdentifier
profileKey:(NSData *)profileKey profileKey:(NSData *)profileKey
readReceiptsEnabled:(BOOL)areReadReceiptsEnabled
{ {
return [self initWithMyPublicKey:myPublicKey return [self initWithMyPublicKey:myPublicKey
myPrivateKey:myPrivateKey myPrivateKey:myPrivateKey
@ -64,6 +68,7 @@ NS_ASSUME_NONNULL_BEGIN
theirEphemeralDeviceId:ephemeralDeviceId theirEphemeralDeviceId:ephemeralDeviceId
accountIdentifier:accountIdentifier accountIdentifier:accountIdentifier
profileKey:profileKey profileKey:profileKey
readReceiptsEnabled:areReadReceiptsEnabled
provisioningCodeService:[OWSDeviceProvisioningCodeService new] provisioningCodeService:[OWSDeviceProvisioningCodeService new]
provisioningService:[OWSDeviceProvisioningService new]]; provisioningService:[OWSDeviceProvisioningService new]];
} }
@ -89,6 +94,7 @@ NS_ASSUME_NONNULL_BEGIN
theirPublicKey:self.theirPublicKey theirPublicKey:self.theirPublicKey
accountIdentifier:self.accountIdentifier accountIdentifier:self.accountIdentifier
profileKey:self.profileKey profileKey:self.profileKey
readReceiptsEnabled:self.areReadReceiptsEnabled
provisioningCode:provisioningCode]; provisioningCode:provisioningCode];
NSData *_Nullable messageBody = [message buildEncryptedMessageBody]; NSData *_Nullable messageBody = [message buildEncryptedMessageBody];

@ -11,6 +11,7 @@ NS_ASSUME_NONNULL_BEGIN
theirPublicKey:(NSData *)theirPublicKey theirPublicKey:(NSData *)theirPublicKey
accountIdentifier:(NSString *)accountIdentifier accountIdentifier:(NSString *)accountIdentifier
profileKey:(NSData *)profileKey profileKey:(NSData *)profileKey
readReceiptsEnabled:(BOOL)areReadReceiptsEnabled
provisioningCode:(NSString *)provisioningCode; provisioningCode:(NSString *)provisioningCode;
- (nullable NSData *)buildEncryptedMessageBody; - (nullable NSData *)buildEncryptedMessageBody;

@ -18,6 +18,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, readonly) NSString *accountIdentifier; @property (nonatomic, readonly) NSString *accountIdentifier;
@property (nonatomic, readonly) NSData *theirPublicKey; @property (nonatomic, readonly) NSData *theirPublicKey;
@property (nonatomic, readonly) NSData *profileKey; @property (nonatomic, readonly) NSData *profileKey;
@property (nonatomic, readonly) BOOL areReadReceiptsEnabled;
@property (nonatomic, readonly) NSString *provisioningCode; @property (nonatomic, readonly) NSString *provisioningCode;
@end @end
@ -29,6 +30,7 @@ NS_ASSUME_NONNULL_BEGIN
theirPublicKey:(NSData *)theirPublicKey theirPublicKey:(NSData *)theirPublicKey
accountIdentifier:(NSString *)accountIdentifier accountIdentifier:(NSString *)accountIdentifier
profileKey:(NSData *)profileKey profileKey:(NSData *)profileKey
readReceiptsEnabled:(BOOL)areReadReceiptsEnabled
provisioningCode:(NSString *)provisioningCode provisioningCode:(NSString *)provisioningCode
{ {
self = [super init]; self = [super init];
@ -41,6 +43,7 @@ NS_ASSUME_NONNULL_BEGIN
_theirPublicKey = theirPublicKey; _theirPublicKey = theirPublicKey;
_accountIdentifier = accountIdentifier; _accountIdentifier = accountIdentifier;
_profileKey = profileKey; _profileKey = profileKey;
_areReadReceiptsEnabled = areReadReceiptsEnabled;
_provisioningCode = provisioningCode; _provisioningCode = provisioningCode;
return self; return self;
@ -49,12 +52,13 @@ NS_ASSUME_NONNULL_BEGIN
- (nullable NSData *)buildEncryptedMessageBody - (nullable NSData *)buildEncryptedMessageBody
{ {
OWSProvisioningProtosProvisionMessageBuilder *messageBuilder = [OWSProvisioningProtosProvisionMessageBuilder new]; OWSProvisioningProtosProvisionMessageBuilder *messageBuilder = [OWSProvisioningProtosProvisionMessageBuilder new];
[messageBuilder setIdentityKeyPublic:self.myPublicKey]; messageBuilder.identityKeyPublic = self.myPublicKey;
[messageBuilder setIdentityKeyPrivate:self.myPrivateKey]; messageBuilder.identityKeyPrivate = self.myPrivateKey;
[messageBuilder setNumber:self.accountIdentifier]; messageBuilder.number = self.accountIdentifier;
[messageBuilder setProvisioningCode:self.provisioningCode]; messageBuilder.provisioningCode = self.provisioningCode;
[messageBuilder setUserAgent:@"OWI"]; messageBuilder.userAgent = @"OWI";
[messageBuilder setProfileKey:self.profileKey]; messageBuilder.readReceipts = self.areReadReceiptsEnabled;
messageBuilder.profileKey = self.profileKey;
NSData *plainTextProvisionMessage = [[messageBuilder build] data]; NSData *plainTextProvisionMessage = [[messageBuilder build] data];
@ -67,8 +71,8 @@ NS_ASSUME_NONNULL_BEGIN
OWSProvisioningProtosProvisionEnvelopeBuilder *envelopeBuilder = [OWSProvisioningProtosProvisionEnvelopeBuilder new]; OWSProvisioningProtosProvisionEnvelopeBuilder *envelopeBuilder = [OWSProvisioningProtosProvisionEnvelopeBuilder new];
// Note that this is a one-time-use *cipher* public key, not our Signal *identity* public key // Note that this is a one-time-use *cipher* public key, not our Signal *identity* public key
[envelopeBuilder setPublicKey:[cipher.ourPublicKey prependKeyType]]; envelopeBuilder.publicKey = [cipher.ourPublicKey prependKeyType];
[envelopeBuilder setBody:encryptedProvisionMessage]; envelopeBuilder.body = encryptedProvisionMessage;
return [[envelopeBuilder build] data]; return [[envelopeBuilder build] data];
} }

@ -127,14 +127,17 @@
#define ProvisionMessage_provisioningCode @"provisioningCode" #define ProvisionMessage_provisioningCode @"provisioningCode"
#define ProvisionMessage_userAgent @"userAgent" #define ProvisionMessage_userAgent @"userAgent"
#define ProvisionMessage_profileKey @"profileKey" #define ProvisionMessage_profileKey @"profileKey"
#define ProvisionMessage_readReceipts @"readReceipts"
@interface OWSProvisioningProtosProvisionMessage : PBGeneratedMessage<GeneratedMessageProtocol> { @interface OWSProvisioningProtosProvisionMessage : PBGeneratedMessage<GeneratedMessageProtocol> {
@private @private
BOOL hasReadReceipts_:1;
BOOL hasNumber_:1; BOOL hasNumber_:1;
BOOL hasProvisioningCode_:1; BOOL hasProvisioningCode_:1;
BOOL hasUserAgent_:1; BOOL hasUserAgent_:1;
BOOL hasIdentityKeyPublic_:1; BOOL hasIdentityKeyPublic_:1;
BOOL hasIdentityKeyPrivate_:1; BOOL hasIdentityKeyPrivate_:1;
BOOL hasProfileKey_:1; BOOL hasProfileKey_:1;
BOOL readReceipts_:1;
NSString* number; NSString* number;
NSString* provisioningCode; NSString* provisioningCode;
NSString* userAgent; NSString* userAgent;
@ -148,12 +151,14 @@
- (BOOL) hasProvisioningCode; - (BOOL) hasProvisioningCode;
- (BOOL) hasUserAgent; - (BOOL) hasUserAgent;
- (BOOL) hasProfileKey; - (BOOL) hasProfileKey;
- (BOOL) hasReadReceipts;
@property (readonly, strong) NSData* identityKeyPublic; @property (readonly, strong) NSData* identityKeyPublic;
@property (readonly, strong) NSData* identityKeyPrivate; @property (readonly, strong) NSData* identityKeyPrivate;
@property (readonly, strong) NSString* number; @property (readonly, strong) NSString* number;
@property (readonly, strong) NSString* provisioningCode; @property (readonly, strong) NSString* provisioningCode;
@property (readonly, strong) NSString* userAgent; @property (readonly, strong) NSString* userAgent;
@property (readonly, strong) NSData* profileKey; @property (readonly, strong) NSData* profileKey;
- (BOOL) readReceipts;
+ (instancetype) defaultInstance; + (instancetype) defaultInstance;
- (instancetype) defaultInstance; - (instancetype) defaultInstance;
@ -219,6 +224,11 @@
- (NSData*) profileKey; - (NSData*) profileKey;
- (OWSProvisioningProtosProvisionMessageBuilder*) setProfileKey:(NSData*) value; - (OWSProvisioningProtosProvisionMessageBuilder*) setProfileKey:(NSData*) value;
- (OWSProvisioningProtosProvisionMessageBuilder*) clearProfileKey; - (OWSProvisioningProtosProvisionMessageBuilder*) clearProfileKey;
- (BOOL) hasReadReceipts;
- (BOOL) readReceipts;
- (OWSProvisioningProtosProvisionMessageBuilder*) setReadReceipts:(BOOL) value;
- (OWSProvisioningProtosProvisionMessageBuilder*) clearReadReceipts;
@end @end

@ -283,6 +283,7 @@ static OWSProvisioningProtosProvisionEnvelope* defaultOWSProvisioningProtosProvi
@property (strong) NSString* provisioningCode; @property (strong) NSString* provisioningCode;
@property (strong) NSString* userAgent; @property (strong) NSString* userAgent;
@property (strong) NSData* profileKey; @property (strong) NSData* profileKey;
@property BOOL readReceipts;
@end @end
@implementation OWSProvisioningProtosProvisionMessage @implementation OWSProvisioningProtosProvisionMessage
@ -329,6 +330,18 @@ static OWSProvisioningProtosProvisionEnvelope* defaultOWSProvisioningProtosProvi
hasProfileKey_ = !!_value_; hasProfileKey_ = !!_value_;
} }
@synthesize profileKey; @synthesize profileKey;
- (BOOL) hasReadReceipts {
return !!hasReadReceipts_;
}
- (void) setHasReadReceipts:(BOOL) _value_ {
hasReadReceipts_ = !!_value_;
}
- (BOOL) readReceipts {
return !!readReceipts_;
}
- (void) setReadReceipts:(BOOL) _value_ {
readReceipts_ = !!_value_;
}
- (instancetype) init { - (instancetype) init {
if ((self = [super init])) { if ((self = [super init])) {
self.identityKeyPublic = [NSData data]; self.identityKeyPublic = [NSData data];
@ -337,6 +350,7 @@ static OWSProvisioningProtosProvisionEnvelope* defaultOWSProvisioningProtosProvi
self.provisioningCode = @""; self.provisioningCode = @"";
self.userAgent = @""; self.userAgent = @"";
self.profileKey = [NSData data]; self.profileKey = [NSData data];
self.readReceipts = NO;
} }
return self; return self;
} }
@ -374,6 +388,9 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis
if (self.hasProfileKey) { if (self.hasProfileKey) {
[output writeData:6 value:self.profileKey]; [output writeData:6 value:self.profileKey];
} }
if (self.hasReadReceipts) {
[output writeBool:7 value:self.readReceipts];
}
[self.unknownFields writeToCodedOutputStream:output]; [self.unknownFields writeToCodedOutputStream:output];
} }
- (SInt32) serializedSize { - (SInt32) serializedSize {
@ -401,6 +418,9 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis
if (self.hasProfileKey) { if (self.hasProfileKey) {
size_ += computeDataSize(6, self.profileKey); size_ += computeDataSize(6, self.profileKey);
} }
if (self.hasReadReceipts) {
size_ += computeBoolSize(7, self.readReceipts);
}
size_ += self.unknownFields.serializedSize; size_ += self.unknownFields.serializedSize;
memoizedSerializedSize = size_; memoizedSerializedSize = size_;
return size_; return size_;
@ -454,6 +474,9 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis
if (self.hasProfileKey) { if (self.hasProfileKey) {
[output appendFormat:@"%@%@: %@\n", indent, @"profileKey", self.profileKey]; [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]; [self.unknownFields writeDescriptionTo:output withIndent:indent];
} }
- (void) storeInDictionary:(NSMutableDictionary *)dictionary { - (void) storeInDictionary:(NSMutableDictionary *)dictionary {
@ -475,6 +498,9 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis
if (self.hasProfileKey) { if (self.hasProfileKey) {
[dictionary setObject: self.profileKey forKey: @"profileKey"]; [dictionary setObject: self.profileKey forKey: @"profileKey"];
} }
if (self.hasReadReceipts) {
[dictionary setObject: [NSNumber numberWithBool:self.readReceipts] forKey: @"readReceipts"];
}
[self.unknownFields storeInDictionary:dictionary]; [self.unknownFields storeInDictionary:dictionary];
} }
- (BOOL) isEqual:(id)other { - (BOOL) isEqual:(id)other {
@ -498,6 +524,8 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis
(!self.hasUserAgent || [self.userAgent isEqual:otherMessage.userAgent]) && (!self.hasUserAgent || [self.userAgent isEqual:otherMessage.userAgent]) &&
self.hasProfileKey == otherMessage.hasProfileKey && self.hasProfileKey == otherMessage.hasProfileKey &&
(!self.hasProfileKey || [self.profileKey isEqual:otherMessage.profileKey]) && (!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])); (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
} }
- (NSUInteger) hash { - (NSUInteger) hash {
@ -520,6 +548,9 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis
if (self.hasProfileKey) { if (self.hasProfileKey) {
hashCode = hashCode * 31 + [self.profileKey hash]; hashCode = hashCode * 31 + [self.profileKey hash];
} }
if (self.hasReadReceipts) {
hashCode = hashCode * 31 + [[NSNumber numberWithBool:self.readReceipts] hash];
}
hashCode = hashCode * 31 + [self.unknownFields hash]; hashCode = hashCode * 31 + [self.unknownFields hash];
return hashCode; return hashCode;
} }
@ -581,6 +612,9 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis
if (other.hasProfileKey) { if (other.hasProfileKey) {
[self setProfileKey:other.profileKey]; [self setProfileKey:other.profileKey];
} }
if (other.hasReadReceipts) {
[self setReadReceipts:other.readReceipts];
}
[self mergeUnknownFields:other.unknownFields]; [self mergeUnknownFields:other.unknownFields];
return self; return self;
} }
@ -626,6 +660,10 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis
[self setProfileKey:[input readData]]; [self setProfileKey:[input readData]];
break; break;
} }
case 56: {
[self setReadReceipts:[input readBool]];
break;
}
} }
} }
} }
@ -725,6 +763,22 @@ static OWSProvisioningProtosProvisionMessage* defaultOWSProvisioningProtosProvis
resultProvisionMessage.profileKey = [NSData data]; resultProvisionMessage.profileKey = [NSData data];
return self; 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 @end

@ -0,0 +1,15 @@
//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
//
#import "OWSOutgoingSyncMessage.h"
NS_ASSUME_NONNULL_BEGIN
@interface OWSSyncConfigurationMessage : OWSOutgoingSyncMessage
- (instancetype)initWithReadReceiptsEnabled:(BOOL)readReceiptsEnabled;
@end
NS_ASSUME_NONNULL_END

@ -0,0 +1,46 @@
//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
//
#import "OWSSyncConfigurationMessage.h"
#import "OWSSignalServiceProtos.pb.h"
NS_ASSUME_NONNULL_BEGIN
@interface OWSSyncConfigurationMessage ()
@property (nonatomic, readonly) BOOL areReadReceiptsEnabled;
@end
@implementation OWSSyncConfigurationMessage
- (instancetype)initWithReadReceiptsEnabled:(BOOL)areReadReceiptsEnabled
{
self = [super init];
if (!self) {
return nil;
}
_areReadReceiptsEnabled = areReadReceiptsEnabled;
return self;
}
- (OWSSignalServiceProtosSyncMessageBuilder *)syncMessageBuilder
{
OWSSignalServiceProtosSyncMessageConfigurationBuilder *configurationBuilder =
[OWSSignalServiceProtosSyncMessageConfigurationBuilder new];
configurationBuilder.readReceipts = self.areReadReceiptsEnabled;
OWSSignalServiceProtosSyncMessageBuilder *builder = [OWSSignalServiceProtosSyncMessageBuilder new];
builder.configurationBuilder = configurationBuilder;
return builder;
}
@end
NS_ASSUME_NONNULL_END

@ -91,7 +91,7 @@ NSString *envelopeAddress(OWSSignalServiceProtosEnvelope *envelope)
[description appendString:@"EndSession"]; [description appendString:@"EndSession"];
} else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsExpirationTimerUpdate) != 0) { } else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsExpirationTimerUpdate) != 0) {
[description appendString:@"ExpirationTimerUpdate"]; [description appendString:@"ExpirationTimerUpdate"];
} else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsProfileKey) != 0) { } else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsProfileKeyUpdate) != 0) {
[description appendString:@"ProfileKey"]; [description appendString:@"ProfileKey"];
} else if (dataMessage.attachments.count > 0) { } else if (dataMessage.attachments.count > 0) {
[description appendString:@"MessageWithAttachment"]; [description appendString:@"MessageWithAttachment"];

@ -20,6 +20,7 @@
#import "OWSMessageSender.h" #import "OWSMessageSender.h"
#import "OWSReadReceiptManager.h" #import "OWSReadReceiptManager.h"
#import "OWSRecordTranscriptJob.h" #import "OWSRecordTranscriptJob.h"
#import "OWSSyncConfigurationMessage.h"
#import "OWSSyncContactsMessage.h" #import "OWSSyncContactsMessage.h"
#import "OWSSyncGroupsMessage.h" #import "OWSSyncGroupsMessage.h"
#import "OWSSyncGroupsRequestMessage.h" #import "OWSSyncGroupsRequestMessage.h"
@ -348,7 +349,7 @@ NS_ASSUME_NONNULL_BEGIN
[self handleEndSessionMessageWithEnvelope:envelope dataMessage:dataMessage transaction:transaction]; [self handleEndSessionMessageWithEnvelope:envelope dataMessage:dataMessage transaction:transaction];
} else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsExpirationTimerUpdate) != 0) { } else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsExpirationTimerUpdate) != 0) {
[self handleExpirationTimerUpdateMessageWithEnvelope:envelope dataMessage:dataMessage transaction:transaction]; [self handleExpirationTimerUpdateMessageWithEnvelope:envelope dataMessage:dataMessage transaction:transaction];
} else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsProfileKey) != 0) { } else if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsProfileKeyUpdate) != 0) {
[self handleProfileKeyMessageWithEnvelope:envelope dataMessage:dataMessage]; [self handleProfileKeyMessageWithEnvelope:envelope dataMessage:dataMessage];
} else if (dataMessage.attachments.count > 0) { } else if (dataMessage.attachments.count > 0) {
[self handleReceivedMediaWithEnvelope:envelope dataMessage:dataMessage transaction:transaction]; [self handleReceivedMediaWithEnvelope:envelope dataMessage:dataMessage transaction:transaction];
@ -600,6 +601,20 @@ NS_ASSUME_NONNULL_BEGIN
failure:^(NSError *error) { failure:^(NSError *error) {
DDLogError(@"%@ Failed to send Groups response syncMessage with error: %@", self.tag, error); DDLogError(@"%@ Failed to send Groups response syncMessage with error: %@", self.tag, error);
}]; }];
} else if (syncMessage.request.type == OWSSignalServiceProtosSyncMessageRequestTypeBlocked) {
// TODO
DDLogWarn(@"%@ Received unsupported request for block list", self.tag);
} else if (syncMessage.request.type == OWSSignalServiceProtosSyncMessageRequestTypeConfiguration) {
BOOL areReadReceiptsEnabled = [[OWSReadReceiptManager sharedManager] areReadReceiptsEnabled];
OWSSyncConfigurationMessage *syncConfigurationMessage =
[[OWSSyncConfigurationMessage alloc] initWithReadReceiptsEnabled:areReadReceiptsEnabled];
[self.messageSender sendMessage:syncConfigurationMessage
success:^{
DDLogInfo(@"%@ Successfully sent Configuration response syncMessage.", self.tag);
}
failure:^(NSError *error) {
DDLogError(@"%@ Failed to send Configuration response syncMessage with error: %@", self.tag, error);
}];
} else { } else {
DDLogWarn(@"%@ ignoring unsupported sync request message", self.tag); DDLogWarn(@"%@ ignoring unsupported sync request message", self.tag);
} }

@ -30,7 +30,7 @@ NS_ASSUME_NONNULL_BEGIN
OWSSignalServiceProtosDataMessageBuilder *builder = [self dataMessageBuilder]; OWSSignalServiceProtosDataMessageBuilder *builder = [self dataMessageBuilder];
[builder addLocalProfileKey]; [builder addLocalProfileKey];
[builder setFlags:OWSSignalServiceProtosDataMessageFlagsProfileKey]; [builder setFlags:OWSSignalServiceProtosDataMessageFlagsProfileKeyUpdate];
if (recipientId.length > 0) { if (recipientId.length > 0) {
// Once we've shared our profile key with a user (perhaps due to being // Once we've shared our profile key with a user (perhaps due to being

@ -42,6 +42,8 @@
@class OWSSignalServiceProtosSyncMessageBlocked; @class OWSSignalServiceProtosSyncMessageBlocked;
@class OWSSignalServiceProtosSyncMessageBlockedBuilder; @class OWSSignalServiceProtosSyncMessageBlockedBuilder;
@class OWSSignalServiceProtosSyncMessageBuilder; @class OWSSignalServiceProtosSyncMessageBuilder;
@class OWSSignalServiceProtosSyncMessageConfiguration;
@class OWSSignalServiceProtosSyncMessageConfigurationBuilder;
@class OWSSignalServiceProtosSyncMessageContacts; @class OWSSignalServiceProtosSyncMessageContacts;
@class OWSSignalServiceProtosSyncMessageContactsBuilder; @class OWSSignalServiceProtosSyncMessageContactsBuilder;
@class OWSSignalServiceProtosSyncMessageGroups; @class OWSSignalServiceProtosSyncMessageGroups;
@ -111,23 +113,23 @@ typedef NS_ENUM(SInt32, OWSSignalServiceProtosEnvelopeType) {
BOOL OWSSignalServiceProtosEnvelopeTypeIsValidValue(OWSSignalServiceProtosEnvelopeType value); BOOL OWSSignalServiceProtosEnvelopeTypeIsValidValue(OWSSignalServiceProtosEnvelopeType value);
NSString *NSStringFromOWSSignalServiceProtosEnvelopeType(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) { typedef NS_ENUM(SInt32, OWSSignalServiceProtosDataMessageFlags) {
OWSSignalServiceProtosDataMessageFlagsEndSession = 1, OWSSignalServiceProtosDataMessageFlagsEndSession = 1,
OWSSignalServiceProtosDataMessageFlagsExpirationTimerUpdate = 2, OWSSignalServiceProtosDataMessageFlagsExpirationTimerUpdate = 2,
OWSSignalServiceProtosDataMessageFlagsProfileKey = 4, OWSSignalServiceProtosDataMessageFlagsProfileKeyUpdate = 4,
}; };
BOOL OWSSignalServiceProtosDataMessageFlagsIsValidValue(OWSSignalServiceProtosDataMessageFlags value); BOOL OWSSignalServiceProtosDataMessageFlagsIsValidValue(OWSSignalServiceProtosDataMessageFlags value);
NSString *NSStringFromOWSSignalServiceProtosDataMessageFlags(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) { typedef NS_ENUM(SInt32, OWSSignalServiceProtosVerifiedState) {
OWSSignalServiceProtosVerifiedStateDefault = 0, OWSSignalServiceProtosVerifiedStateDefault = 0,
OWSSignalServiceProtosVerifiedStateVerified = 1, OWSSignalServiceProtosVerifiedStateVerified = 1,
@ -142,6 +144,7 @@ typedef NS_ENUM(SInt32, OWSSignalServiceProtosSyncMessageRequestType) {
OWSSignalServiceProtosSyncMessageRequestTypeContacts = 1, OWSSignalServiceProtosSyncMessageRequestTypeContacts = 1,
OWSSignalServiceProtosSyncMessageRequestTypeGroups = 2, OWSSignalServiceProtosSyncMessageRequestTypeGroups = 2,
OWSSignalServiceProtosSyncMessageRequestTypeBlocked = 3, OWSSignalServiceProtosSyncMessageRequestTypeBlocked = 3,
OWSSignalServiceProtosSyncMessageRequestTypeConfiguration = 4,
}; };
BOOL OWSSignalServiceProtosSyncMessageRequestTypeIsValidValue(OWSSignalServiceProtosSyncMessageRequestType value); BOOL OWSSignalServiceProtosSyncMessageRequestTypeIsValidValue(OWSSignalServiceProtosSyncMessageRequestType value);
@ -382,67 +385,6 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro
- (OWSSignalServiceProtosContentBuilder*) clearReceiptMessage; - (OWSSignalServiceProtosContentBuilder*) clearReceiptMessage;
@end @end
#define ReceiptMessage_type @"type"
#define ReceiptMessage_timestamp @"timestamp"
@interface OWSSignalServiceProtosReceiptMessage : PBGeneratedMessage<GeneratedMessageProtocol> {
@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_offer @"offer"
#define CallMessage_answer @"answer" #define CallMessage_answer @"answer"
#define CallMessage_iceUpdate @"iceUpdate" #define CallMessage_iceUpdate @"iceUpdate"
@ -1003,6 +945,67 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro
- (OWSSignalServiceProtosNullMessageBuilder*) clearPadding; - (OWSSignalServiceProtosNullMessageBuilder*) clearPadding;
@end @end
#define ReceiptMessage_type @"type"
#define ReceiptMessage_timestamp @"timestamp"
@interface OWSSignalServiceProtosReceiptMessage : PBGeneratedMessage<GeneratedMessageProtocol> {
@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_destination @"destination"
#define Verified_identityKey @"identityKey" #define Verified_identityKey @"identityKey"
#define Verified_state @"state" #define Verified_state @"state"
@ -1090,6 +1093,7 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro
#define SyncMessage_read @"read" #define SyncMessage_read @"read"
#define SyncMessage_blocked @"blocked" #define SyncMessage_blocked @"blocked"
#define SyncMessage_verified @"verified" #define SyncMessage_verified @"verified"
#define SyncMessage_configuration @"configuration"
#define SyncMessage_padding @"padding" #define SyncMessage_padding @"padding"
@interface OWSSignalServiceProtosSyncMessage : PBGeneratedMessage<GeneratedMessageProtocol> { @interface OWSSignalServiceProtosSyncMessage : PBGeneratedMessage<GeneratedMessageProtocol> {
@private @private
@ -1099,6 +1103,7 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro
BOOL hasRequest_:1; BOOL hasRequest_:1;
BOOL hasBlocked_:1; BOOL hasBlocked_:1;
BOOL hasVerified_:1; BOOL hasVerified_:1;
BOOL hasConfiguration_:1;
BOOL hasPadding_:1; BOOL hasPadding_:1;
OWSSignalServiceProtosSyncMessageSent* sent; OWSSignalServiceProtosSyncMessageSent* sent;
OWSSignalServiceProtosSyncMessageContacts* contacts; OWSSignalServiceProtosSyncMessageContacts* contacts;
@ -1106,6 +1111,7 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro
OWSSignalServiceProtosSyncMessageRequest* request; OWSSignalServiceProtosSyncMessageRequest* request;
OWSSignalServiceProtosSyncMessageBlocked* blocked; OWSSignalServiceProtosSyncMessageBlocked* blocked;
OWSSignalServiceProtosVerified* verified; OWSSignalServiceProtosVerified* verified;
OWSSignalServiceProtosSyncMessageConfiguration* configuration;
NSData* padding; NSData* padding;
NSMutableArray * readArray; NSMutableArray * readArray;
} }
@ -1115,6 +1121,7 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro
- (BOOL) hasRequest; - (BOOL) hasRequest;
- (BOOL) hasBlocked; - (BOOL) hasBlocked;
- (BOOL) hasVerified; - (BOOL) hasVerified;
- (BOOL) hasConfiguration;
- (BOOL) hasPadding; - (BOOL) hasPadding;
@property (readonly, strong) OWSSignalServiceProtosSyncMessageSent* sent; @property (readonly, strong) OWSSignalServiceProtosSyncMessageSent* sent;
@property (readonly, strong) OWSSignalServiceProtosSyncMessageContacts* contacts; @property (readonly, strong) OWSSignalServiceProtosSyncMessageContacts* contacts;
@ -1123,6 +1130,7 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro
@property (readonly, strong) NSArray<OWSSignalServiceProtosSyncMessageRead*> * read; @property (readonly, strong) NSArray<OWSSignalServiceProtosSyncMessageRead*> * read;
@property (readonly, strong) OWSSignalServiceProtosSyncMessageBlocked* blocked; @property (readonly, strong) OWSSignalServiceProtosSyncMessageBlocked* blocked;
@property (readonly, strong) OWSSignalServiceProtosVerified* verified; @property (readonly, strong) OWSSignalServiceProtosVerified* verified;
@property (readonly, strong) OWSSignalServiceProtosSyncMessageConfiguration* configuration;
@property (readonly, strong) NSData* padding; @property (readonly, strong) NSData* padding;
- (OWSSignalServiceProtosSyncMessageRead*)readAtIndex:(NSUInteger)index; - (OWSSignalServiceProtosSyncMessageRead*)readAtIndex:(NSUInteger)index;
@ -1500,6 +1508,56 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro
- (OWSSignalServiceProtosSyncMessageReadBuilder*) clearTimestamp; - (OWSSignalServiceProtosSyncMessageReadBuilder*) clearTimestamp;
@end @end
#define Configuration_readReceipts @"readReceipts"
@interface OWSSignalServiceProtosSyncMessageConfiguration : PBGeneratedMessage<GeneratedMessageProtocol> {
@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 { @interface OWSSignalServiceProtosSyncMessageBuilder : PBGeneratedMessageBuilder {
@private @private
OWSSignalServiceProtosSyncMessage* resultSyncMessage; OWSSignalServiceProtosSyncMessage* resultSyncMessage;
@ -1565,6 +1623,13 @@ NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServicePro
- (OWSSignalServiceProtosSyncMessageBuilder*) mergeVerified:(OWSSignalServiceProtosVerified*) value; - (OWSSignalServiceProtosSyncMessageBuilder*) mergeVerified:(OWSSignalServiceProtosVerified*) value;
- (OWSSignalServiceProtosSyncMessageBuilder*) clearVerified; - (OWSSignalServiceProtosSyncMessageBuilder*) clearVerified;
- (BOOL) hasConfiguration;
- (OWSSignalServiceProtosSyncMessageConfiguration*) configuration;
- (OWSSignalServiceProtosSyncMessageBuilder*) setConfiguration:(OWSSignalServiceProtosSyncMessageConfiguration*) value;
- (OWSSignalServiceProtosSyncMessageBuilder*) setConfigurationBuilder:(OWSSignalServiceProtosSyncMessageConfigurationBuilder*) builderForValue;
- (OWSSignalServiceProtosSyncMessageBuilder*) mergeConfiguration:(OWSSignalServiceProtosSyncMessageConfiguration*) value;
- (OWSSignalServiceProtosSyncMessageBuilder*) clearConfiguration;
- (BOOL) hasPadding; - (BOOL) hasPadding;
- (NSData*) padding; - (NSData*) padding;
- (OWSSignalServiceProtosSyncMessageBuilder*) setPadding:(NSData*) value; - (OWSSignalServiceProtosSyncMessageBuilder*) setPadding:(NSData*) value;

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save