Respond to CR.
// FREEBIE
This commit is contained in:
parent
74096fc2c2
commit
1fa75ead5d
@ -964,23 +964,38 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
|
||||
|
||||
NSString *localNumber = [TSAccountManager localNumber];
|
||||
if ([localNumber isEqualToString:recipient.uniqueId]) {
|
||||
if (deviceMessages.count < 1) {
|
||||
DDLogInfo(@"Ignoring sync message without linked devices: %@", [message class]);
|
||||
__block BOOL hasSecondaryDevices;
|
||||
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
|
||||
hasSecondaryDevices = [OWSDevice hasSecondaryDevicesWithTransaction:transaction];
|
||||
}];
|
||||
|
||||
BOOL hasDeviceMessages = deviceMessages.count > 0;
|
||||
|
||||
if (!hasSecondaryDevices && !hasDeviceMessages) {
|
||||
DDLogInfo(@"%@ Ignoring sync message without secondary devices: %@", self.tag, [message class]);
|
||||
OWSAssert([message isKindOfClass:[OWSOutgoingSyncMessage class]]);
|
||||
|
||||
dispatch_async([OWSDispatch sendingQueue], ^{
|
||||
// This emulates the completion logic of an actual successful save (see below).
|
||||
[recipient save];
|
||||
[self handleMessageSentLocally:message];
|
||||
successHandler();
|
||||
});
|
||||
|
||||
return;
|
||||
} else if (hasSecondaryDevices) {
|
||||
// We may have just linked a new secondary device which is not yet reflected in
|
||||
// the SignalRecipient that corresponds to ourself. Proceed. Client should learn
|
||||
// of new secondary devices when this message send fails.
|
||||
DDLogWarn(@"%@ sync message has no device messages but account has secondary devices.", self.tag);
|
||||
} else if (hasDeviceMessages) {
|
||||
OWSFail(@"%@ sync message has device messages for unknown secondary devices.", self.tag);
|
||||
} else {
|
||||
// Account has secondary devices; proceed as usual.
|
||||
}
|
||||
} else {
|
||||
OWSAssert(deviceMessages.count > 0);
|
||||
}
|
||||
|
||||
|
||||
TSSubmitMessageRequest *request = [[TSSubmitMessageRequest alloc] initWithRecipient:recipient.uniqueId
|
||||
messages:deviceMessages
|
||||
relay:recipient.relay
|
||||
|
||||
Loading…
Reference in New Issue
Block a user