Fix unclear API

pull/56/head
Niels Andriesse 6 years ago
parent 4af898b96b
commit cbc12977d3

@ -24,8 +24,8 @@
return self; return self;
} }
- (SSKProtoContentBuilder *)contentBuilder:(SignalRecipient *)recipient { - (SSKProtoContentBuilder *)prepareCustomContentBuilder:(SignalRecipient *)recipient {
SSKProtoContentBuilder *contentBuilder = [super contentBuilder:recipient]; SSKProtoContentBuilder *contentBuilder = SSKProtoContent.builder;
SSKProtoLokiAddressMessageBuilder *addressBuilder = [SSKProtoLokiAddressMessage builder]; SSKProtoLokiAddressMessageBuilder *addressBuilder = [SSKProtoLokiAddressMessage builder];
[addressBuilder setPtpAddress:self.address]; [addressBuilder setPtpAddress:self.address];
@ -35,7 +35,7 @@
NSError *error; NSError *error;
SSKProtoLokiAddressMessage *addressMessage = [addressBuilder buildAndReturnError:&error]; SSKProtoLokiAddressMessage *addressMessage = [addressBuilder buildAndReturnError:&error];
if (error || !addressMessage) { if (error || !addressMessage) {
OWSFailDebug(@"Failed to build LokiAddressMessage for %@: %@.", recipient.recipientId, error); OWSFailDebug(@"Failed to build Loki address message for: %@ due to error: %@.", recipient.recipientId, error);
} else { } else {
[contentBuilder setLokiAddressMessage:addressMessage]; [contentBuilder setLokiAddressMessage:addressMessage];
} }

@ -31,27 +31,23 @@
} }
#pragma mark Building #pragma mark Building
- (SSKProtoContentBuilder *)contentBuilder:(SignalRecipient *)recipient - (SSKProtoContentBuilder *)prepareCustomContentBuilder:(SignalRecipient *)recipient {
{ SSKProtoContentBuilder *contentBuilder = SSKProtoContent.builder;
SSKProtoContentBuilder *contentBuilder = [super contentBuilder:recipient]; // If this is a request then we should attach a pre key bundle
if (self.kind == LKDeviceLinkMessageKindRequest) {
// If it's a linking request then we should send a prekey bundle
if (self.masterSignature == nil) {
PreKeyBundle *bundle = [OWSPrimaryStorage.sharedManager generatePreKeyBundleForContact:recipient.recipientId]; PreKeyBundle *bundle = [OWSPrimaryStorage.sharedManager generatePreKeyBundleForContact:recipient.recipientId];
SSKProtoPrekeyBundleMessageBuilder *preKeyBuilder = [SSKProtoPrekeyBundleMessage builderFromPreKeyBundle:bundle]; SSKProtoPrekeyBundleMessageBuilder *preKeyBuilder = [SSKProtoPrekeyBundleMessage builderFromPreKeyBundle:bundle];
// Build the pre key bundle message
// Build the prekey bundle message
NSError *error; NSError *error;
SSKProtoPrekeyBundleMessage *_Nullable message = [preKeyBuilder buildAndReturnError:&error]; SSKProtoPrekeyBundleMessage *message = [preKeyBuilder buildAndReturnError:&error];
if (error || !message) { if (error || !message) {
OWSFailDebug(@"Failed to build pre key bundle for %@: %@", recipient.recipientId, error); OWSFailDebug(@"Failed to build pre key bundle for: %@ due to error: %@.", recipient.recipientId, error);
return nil; return nil;
} else { } else {
[contentBuilder setPrekeyBundleMessage:message]; [contentBuilder setPrekeyBundleMessage:message];
} }
} }
// Build the device link message
// Device link message
NSError *error; NSError *error;
SSKProtoLokiDeviceLinkMessageBuilder *deviceLinkMessageBuilder = [SSKProtoLokiDeviceLinkMessage builder]; SSKProtoLokiDeviceLinkMessageBuilder *deviceLinkMessageBuilder = [SSKProtoLokiDeviceLinkMessage builder];
[deviceLinkMessageBuilder setMasterHexEncodedPublicKey:self.masterHexEncodedPublicKey]; [deviceLinkMessageBuilder setMasterHexEncodedPublicKey:self.masterHexEncodedPublicKey];
@ -60,12 +56,12 @@
[deviceLinkMessageBuilder setSlaveSignature:self.slaveSignature]; [deviceLinkMessageBuilder setSlaveSignature:self.slaveSignature];
SSKProtoLokiDeviceLinkMessage *deviceLinkMessage = [deviceLinkMessageBuilder buildAndReturnError:&error]; SSKProtoLokiDeviceLinkMessage *deviceLinkMessage = [deviceLinkMessageBuilder buildAndReturnError:&error];
if (error || deviceLinkMessage == nil) { if (error || deviceLinkMessage == nil) {
OWSFailDebug(@"Failed to build device link message due to error: %@.", error); OWSFailDebug(@"Failed to build device link message for: %@ due to error: %@.", recipient.recipientId, error);
return nil; return nil;
} else { } else {
[contentBuilder setLokiDeviceLinkMessage:deviceLinkMessage]; [contentBuilder setLokiDeviceLinkMessage:deviceLinkMessage];
} }
// Return
return contentBuilder; return contentBuilder;
} }

@ -6,17 +6,17 @@
@implementation LKFriendRequestMessage @implementation LKFriendRequestMessage
- (SSKProtoContentBuilder *)contentBuilder:(SignalRecipient *)recipient { - (SSKProtoContentBuilder *)prepareCustomContentBuilder:(SignalRecipient *)recipient {
SSKProtoContentBuilder *contentBuilder = [super contentBuilder:recipient]; SSKProtoContentBuilder *contentBuilder = SSKProtoContent.builder;
PreKeyBundle *bundle = [OWSPrimaryStorage.sharedManager generatePreKeyBundleForContact:recipient.recipientId]; PreKeyBundle *bundle = [OWSPrimaryStorage.sharedManager generatePreKeyBundleForContact:recipient.recipientId];
SSKProtoPrekeyBundleMessageBuilder *preKeyBuilder = [SSKProtoPrekeyBundleMessage builderFromPreKeyBundle:bundle]; SSKProtoPrekeyBundleMessageBuilder *preKeyBuilder = [SSKProtoPrekeyBundleMessage builderFromPreKeyBundle:bundle];
// Build the prekey bundle message // Build the pre key bundle message
NSError *error; NSError *error;
SSKProtoPrekeyBundleMessage *_Nullable message = [preKeyBuilder buildAndReturnError:&error]; SSKProtoPrekeyBundleMessage *_Nullable message = [preKeyBuilder buildAndReturnError:&error];
if (error || !message) { if (error || !message) {
OWSFailDebug(@"Failed to build pre key bundle for %@: %@", recipient.recipientId, error); OWSFailDebug(@"Failed to build pre key bundle for: %@ due to error: %@.", recipient.recipientId, error);
} else { } else {
[contentBuilder setPrekeyBundleMessage:message]; [contentBuilder setPrekeyBundleMessage:message];
} }

@ -48,17 +48,17 @@ NS_ASSUME_NONNULL_BEGIN
return builder; return builder;
} }
- (SSKProtoContentBuilder *)contentBuilder:(SignalRecipient *)recipient { - (SSKProtoContentBuilder *)prepareCustomContentBuilder:(SignalRecipient *)recipient {
SSKProtoContentBuilder *builder = [super contentBuilder:recipient]; SSKProtoContentBuilder *builder = SSKProtoContent.builder;
PreKeyBundle *bundle = [OWSPrimaryStorage.sharedManager generatePreKeyBundleForContact:recipient.recipientId]; PreKeyBundle *bundle = [OWSPrimaryStorage.sharedManager generatePreKeyBundleForContact:recipient.recipientId];
SSKProtoPrekeyBundleMessageBuilder *preKeyBuilder = [SSKProtoPrekeyBundleMessage builderFromPreKeyBundle:bundle]; SSKProtoPrekeyBundleMessageBuilder *preKeyBuilder = [SSKProtoPrekeyBundleMessage builderFromPreKeyBundle:bundle];
// Build the prekey bundle message // Build the pre key bundle message
NSError *error; NSError *error;
SSKProtoPrekeyBundleMessage *_Nullable message = [preKeyBuilder buildAndReturnError:&error]; SSKProtoPrekeyBundleMessage *_Nullable message = [preKeyBuilder buildAndReturnError:&error];
if (error || !message) { if (error || !message) {
OWSFailDebug(@"Failed to build preKeyBundle for %@: %@", recipient.recipientId, error); OWSFailDebug(@"Failed to build pre key bundle for: %@ due to error: %@.", recipient.recipientId, error);
} else { } else {
[builder setPrekeyBundleMessage:message]; [builder setPrekeyBundleMessage:message];
} }

@ -162,10 +162,9 @@ typedef NS_ENUM(NSInteger, TSGroupMetaMessage) {
- (nullable SSKProtoDataMessage *)buildDataMessage:(NSString *_Nullable)recipientId; - (nullable SSKProtoDataMessage *)buildDataMessage:(NSString *_Nullable)recipientId;
/** /**
* Intermediate protobuf representation * Allows subclasses to supply a custom content builder that has already prepared part of the message.
* Subclasses can augment if they want to manipulate the content message before building.
*/ */
- (SSKProtoContentBuilder *)contentBuilder:(SignalRecipient *)recipient; - (SSKProtoContentBuilder *)prepareCustomContentBuilder:(SignalRecipient *)recipient;
/** /**
* Should this message be synced to the users other registered devices? This is * Should this message be synced to the users other registered devices? This is

@ -1122,11 +1122,6 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
return dataProto; return dataProto;
} }
- (SSKProtoContentBuilder *)contentBuilder:(SignalRecipient *)recipient
{
return SSKProtoContent.builder;
}
- (nullable NSData *)buildPlainTextData:(SignalRecipient *)recipient - (nullable NSData *)buildPlainTextData:(SignalRecipient *)recipient
{ {
NSError *error; NSError *error;
@ -1136,8 +1131,7 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
return nil; return nil;
} }
SSKProtoContentBuilder *contentBuilder = [self contentBuilder:recipient]; SSKProtoContentBuilder *contentBuilder = [self prepareCustomContentBuilder:recipient] ?: SSKProtoContent.builder;
if (contentBuilder == nil) { return nil; }
[contentBuilder setDataMessage:dataMessage]; [contentBuilder setDataMessage:dataMessage];
NSData *_Nullable contentData = [contentBuilder buildSerializedDataAndReturnError:&error]; NSData *_Nullable contentData = [contentBuilder buildSerializedDataAndReturnError:&error];
@ -1145,6 +1139,7 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
OWSFailDebug(@"could not serialize protobuf: %@", error); OWSFailDebug(@"could not serialize protobuf: %@", error);
return nil; return nil;
} }
return contentData; return contentData;
} }

Loading…
Cancel
Save