From a5660f4db495c041b7cf21e8bd9a321eb13d8127 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Thu, 22 Jun 2017 13:56:38 -0400 Subject: [PATCH] cleanup ahead of PR synchronize/dispatch when dequeuing verification sync messages // FREEBIE --- src/Devices/OWSVerificationStateSyncMessage.h | 3 - src/Devices/OWSVerificationStateSyncMessage.m | 60 ---------------- .../DeviceSyncing/OWSOutgoingSyncMessage.m | 3 +- src/Messages/OWSIdentityManager.h | 3 - src/Messages/OWSIdentityManager.m | 69 +++---------------- src/Messages/OWSMessageSender.m | 14 ++-- src/Messages/TSMessagesManager.m | 3 - 7 files changed, 13 insertions(+), 142 deletions(-) diff --git a/src/Devices/OWSVerificationStateSyncMessage.h b/src/Devices/OWSVerificationStateSyncMessage.h index d92ed6055..52a59e769 100644 --- a/src/Devices/OWSVerificationStateSyncMessage.h +++ b/src/Devices/OWSVerificationStateSyncMessage.h @@ -13,9 +13,6 @@ NS_ASSUME_NONNULL_BEGIN identityKey:(NSData *)identityKey verificationForRecipientId:(NSString *)recipientId; -//// Returns the list of recipient ids referenced in this message. -//- (NSArray *)recipientIds; - // This is a clunky name, but we want to differentiate it from `recipientIdentifier` inherited from `TSOutgoingMessage` @property (nonatomic, readonly) NSString *verificationForRecipientId; diff --git a/src/Devices/OWSVerificationStateSyncMessage.m b/src/Devices/OWSVerificationStateSyncMessage.m index bf1374c16..2b94ba965 100644 --- a/src/Devices/OWSVerificationStateSyncMessage.m +++ b/src/Devices/OWSVerificationStateSyncMessage.m @@ -9,25 +9,10 @@ NS_ASSUME_NONNULL_BEGIN -//@interface OWSVerificationStateTuple : NSObject -// -//@property (nonatomic) OWSVerificationState verificationState; -//@property (nonatomic) NSData *identityKey; -//@property (nonatomic) NSString *recipientId; -// -//@end -// -//#pragma mark - -// -//@implementation OWSVerificationStateTuple -// -//@end - #pragma mark - @interface OWSVerificationStateSyncMessage () -//@property (nonatomic, readonly) NSMutableArray *tuples; @property (nonatomic, readonly) OWSVerificationState verificationState; @property (nonatomic, readonly) NSData *identityKey; @@ -36,18 +21,6 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - @implementation OWSVerificationStateSyncMessage -// -//- (instancetype)init -//{ -// self = [super init]; -// if (!self) { -// return self; -// } -// -// _tuples = [NSMutableArray new]; -// -// return self; -//} - (instancetype)initWithVerificationState:(OWSVerificationState)verificationState identityKey:(NSData *)identityKey @@ -78,31 +51,9 @@ NS_ASSUME_NONNULL_BEGIN - (OWSSignalServiceProtosSyncMessageBuilder *)syncMessageBuilder { - // OWSAssert(self.tuples.count > 0); - OWSSignalServiceProtosSyncMessageBuilder *syncMessageBuilder = [OWSSignalServiceProtosSyncMessageBuilder new]; - // for (OWSVerificationStateTuple *tuple in self.tuples) { - // OWSSignalServiceProtosVerifiedBuilder *verifiedBuilder = [OWSSignalServiceProtosVerifiedBuilder new]; - // verifiedBuilder.destination = tuple.recipientId; - // verifiedBuilder.identityKey = tuple.identityKey; - // switch (tuple.verificationState) { - // case OWSVerificationStateDefault: - // verifiedBuilder.state = OWSSignalServiceProtosVerifiedStateDefault; - // break; - // case OWSVerificationStateVerified: - // verifiedBuilder.state = OWSSignalServiceProtosVerifiedStateVerified; - // break; - // case OWSVerificationStateNoLongerVerified: - // verifiedBuilder.state = OWSSignalServiceProtosVerifiedStateUnverified; - // break; - // } - // [syncMessageBuilder addVerified:[verifiedBuilder build]]; - // } - // - OWSSignalServiceProtosVerifiedBuilder *verifiedBuilder = [OWSSignalServiceProtosVerifiedBuilder new]; - verifiedBuilder.destination = self.verificationForRecipientId; verifiedBuilder.identityKey = self.identityKey; verifiedBuilder.state = OWSVerificationStateToProtoState(self.verificationState); @@ -115,17 +66,6 @@ NS_ASSUME_NONNULL_BEGIN return syncMessageBuilder; } -//- (NSArray *)recipientIds -//{ -// NSMutableArray *result = [NSMutableArray new]; -// for (OWSVerificationStateTuple *tuple in self.tuples) { -// OWSAssert(tuple.recipientId.length > 0); -// [result addObject:tuple.recipientId]; -// } -// -// return [result copy]; -//} - @end NS_ASSUME_NONNULL_END diff --git a/src/Messages/DeviceSyncing/OWSOutgoingSyncMessage.m b/src/Messages/DeviceSyncing/OWSOutgoingSyncMessage.m index 47fe49cf3..7365aae9e 100644 --- a/src/Messages/DeviceSyncing/OWSOutgoingSyncMessage.m +++ b/src/Messages/DeviceSyncing/OWSOutgoingSyncMessage.m @@ -43,8 +43,7 @@ NS_ASSUME_NONNULL_BEGIN - (NSData *)buildPlainTextData { OWSSignalServiceProtosContentBuilder *contentBuilder = [OWSSignalServiceProtosContentBuilder new]; - contentBuilder.syncMessage = [self buildSyncMessage]; - + [contentBuilder setSyncMessage:[self buildSyncMessage]]; return [[contentBuilder build] data]; } diff --git a/src/Messages/OWSIdentityManager.h b/src/Messages/OWSIdentityManager.h index f1e5724d0..531d00d04 100644 --- a/src/Messages/OWSIdentityManager.h +++ b/src/Messages/OWSIdentityManager.h @@ -46,9 +46,6 @@ extern const NSUInteger kIdentityKeyLength; */ - (nullable OWSRecipientIdentity *)untrustedIdentityForSendingToRecipientId:(NSString *)recipientId; -// Will try to send a sync message with all verification states. -//- (void)syncAllVerificationStates; - - (void)processIncomingSyncMessage:(OWSSignalServiceProtosVerified *)verified; @end diff --git a/src/Messages/OWSIdentityManager.m b/src/Messages/OWSIdentityManager.m index e59acf6a2..56b0814be 100644 --- a/src/Messages/OWSIdentityManager.m +++ b/src/Messages/OWSIdentityManager.m @@ -501,50 +501,6 @@ NSString *const kNSNotificationName_IdentityStateDidChange = @"kNSNotificationNa }); } -//- (void)syncAllVerificationStates -//{ -// dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ -// @synchronized(self) -// { -// -// NSMutableArray *messages = [NSMutableArray new]; -// [OWSRecipientIdentity enumerateCollectionObjectsUsingBlock:^(OWSRecipientIdentity *recipientIdentity, BOOL *stop) { -// OWSAssert(recipientIdentity); -// OWSAssert(recipientIdentity.recipientId.length > 0); -// OWSAssert(recipientIdentity.identityKey.length == kStoredIdentityKeyLength); -// -// if (recipientIdentity.recipientId.length < 1) { -// OWSFail(@"Invalid recipient identity for recipientId: %@", recipientIdentity.recipientId); -// return; -// } -// -// // Prepend key type for transit. -// // TODO we should just be storing the key type so we don't have to juggle re-adding it. -// NSData *identityKey = [recipientIdentity.identityKey prependKeyType]; -// if (identityKey.length != kIdentityKeyLength) { -// OWSFail(@"Invalid recipient identitykey for recipientId: %@ key: %@", -// recipientIdentity.recipientId, -// identityKey); -// return; -// } -// -// OWSVerificationStateSyncMessage *message = [[OWSVerificationStateSyncMessage alloc] -// initWithVerificationState:recipientIdentity.verificationState -// identityKey:identityKey -// verificationForRecipientId:recipientIdentity.recipientId]; -// [messages addObject:message]; -// }]; -// if (messages.count > 0) { -// dispatch_async(dispatch_get_main_queue(), ^{ -// for (OWSVerificationStateSyncMessage *message in messages) { -// [self sendSyncVerificationStateMessage:message]; -// } -// }); -// } -// } -// }); -//} - - (void)sendSyncVerificationStateMessage:(OWSVerificationStateSyncMessage *)message { OWSAssert(message); @@ -580,23 +536,14 @@ NSString *const kNSNotificationName_IdentityStateDidChange = @"kNSNotificationNa - (void)clearSyncMessageForRecipientId:(NSString *)recipientId { OWSAssert(recipientId.length > 0); - // - // [self clearSyncMessageForRecipientIds:@[recipientId]]; - //} - // - //- (void)clearSyncMessageForRecipientIds:(NSArray *)recipientIds - //{ - // OWSAssert(recipientIds.count > 0); - // - // dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ - // @synchronized(self) - // { - // for (NSString *recipientId in recipientIds) { - [self.storageManager removeObjectForKey:recipientId - inCollection:OWSIdentityManager_QueuedVerificationStateSyncMessages]; - // } - // } - // }); + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + @synchronized(self) + { + [self.storageManager removeObjectForKey:recipientId + inCollection:OWSIdentityManager_QueuedVerificationStateSyncMessages]; + } + }); } - (void)processIncomingSyncMessage:(OWSSignalServiceProtosVerified *)verified diff --git a/src/Messages/OWSMessageSender.m b/src/Messages/OWSMessageSender.m index 2c29b9d80..f29cc016a 100644 --- a/src/Messages/OWSMessageSender.m +++ b/src/Messages/OWSMessageSender.m @@ -1089,16 +1089,10 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; - (void)handleMessageSentLocally:(TSOutgoingMessage *)message { if (message.shouldSyncTranscript) { - __block BOOL hasSecondaryDevices = NO; - [self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) { - hasSecondaryDevices = [OWSDevice hasSecondaryDevicesWithTransaction:transaction]; - }]; - if (hasSecondaryDevices) { - // TODO: I suspect we shouldn't optimistically set hasSyncedTranscript. - // We could set this in a success handler for [sendSyncTranscriptForMessage:]. - [message updateWithHasSyncedTranscript:YES]; - [self sendSyncTranscriptForMessage:message]; - } + // TODO: I suspect we shouldn't optimistically set hasSyncedTranscript. + // We could set this in a success handler for [sendSyncTranscriptForMessage:]. + [message updateWithHasSyncedTranscript:YES]; + [self sendSyncTranscriptForMessage:message]; } [OWSDisappearingMessagesJob setExpirationForMessage:message]; diff --git a/src/Messages/TSMessagesManager.m b/src/Messages/TSMessagesManager.m index e445ae837..a7a13c32d 100644 --- a/src/Messages/TSMessagesManager.m +++ b/src/Messages/TSMessagesManager.m @@ -671,9 +671,6 @@ NS_ASSUME_NONNULL_BEGIN failure:^(NSError *error) { DDLogError(@"%@ Failed to send Contacts response syncMessage with error: %@", self.tag, error); }]; - -// // Also sync all verification state after syncing contacts. -// [[OWSIdentityManager sharedManager] syncAllVerificationStates]; } else if (syncMessage.request.type == OWSSignalServiceProtosSyncMessageRequestTypeGroups) { OWSSyncGroupsMessage *syncGroupsMessage = [[OWSSyncGroupsMessage alloc] init];