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

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

@ -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 {

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

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

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

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

@ -127,14 +127,17 @@
#define ProvisionMessage_provisioningCode @"provisioningCode"
#define ProvisionMessage_userAgent @"userAgent"
#define ProvisionMessage_profileKey @"profileKey"
#define ProvisionMessage_readReceipts @"readReceipts"
@interface OWSProvisioningProtosProvisionMessage : PBGeneratedMessage<GeneratedMessageProtocol> {
@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

@ -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

@ -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"];
} 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"];

@ -20,6 +20,7 @@
#import "OWSMessageSender.h"
#import "OWSReadReceiptManager.h"
#import "OWSRecordTranscriptJob.h"
#import "OWSSyncConfigurationMessage.h"
#import "OWSSyncContactsMessage.h"
#import "OWSSyncGroupsMessage.h"
#import "OWSSyncGroupsRequestMessage.h"
@ -348,7 +349,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];
@ -600,6 +601,20 @@ NS_ASSUME_NONNULL_BEGIN
failure:^(NSError *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 {
DDLogWarn(@"%@ ignoring unsupported sync request message", self.tag);
}

@ -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

@ -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<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_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<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_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<GeneratedMessageProtocol> {
@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<OWSSignalServiceProtosSyncMessageRead*> * 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<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 {
@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;

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