diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index f26634bbb..d88440b05 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -712,12 +712,6 @@ typedef enum : NSUInteger { [SSKEnvironment.shared.profileManager ensureProfileCachedForContactWithID:self.thread.contactIdentifier with:transaction]; }]; } - - if ([self.thread isKindOfClass:TSContactThread.class]) { - [LKStorage writeSyncWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { - [LKSessionManagementProtocol sendSessionRequestIfNeededToPublicKey:self.thread.contactIdentifier transaction:transaction]; - } error:nil]; - } } - (void)createContents @@ -3924,12 +3918,6 @@ typedef enum : NSUInteger { BOOL didAddToProfileWhitelist = [ThreadUtil addThreadToProfileWhitelistIfEmptyContactThread:self.thread]; - if ([self.thread isKindOfClass:TSContactThread.class]) { - [LKStorage writeSyncWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { - [LKSessionManagementProtocol sendSessionRequestIfNeededToPublicKey:self.thread.contactIdentifier transaction:transaction]; - } error:nil]; - } - __block TSOutgoingMessage *message; [self.uiDatabaseConnection readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) { message = [ThreadUtil enqueueMessageWithText:messageText @@ -3945,6 +3933,12 @@ typedef enum : NSUInteger { if (didAddToProfileWhitelist) { [self.conversationViewModel ensureDynamicInteractionsAndUpdateIfNecessary:YES]; } + + if ([self.thread isKindOfClass:TSContactThread.class]) { + [LKStorage writeWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { + [LKSessionManagementProtocol sendSessionRequestIfNeededToPublicKey:self.thread.contactIdentifier transaction:transaction]; + }]; + } }); } @@ -4515,12 +4509,6 @@ typedef enum : NSUInteger { return; } - if ([self.thread isKindOfClass:TSContactThread.class]) { - [LKStorage writeSyncWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { - [LKSessionManagementProtocol sendSessionRequestIfNeededToPublicKey:self.thread.contactIdentifier transaction:transaction]; - } error:nil]; - } - // Limit outgoing text messages to 16kb. // // We convert large text messages to attachments @@ -4566,6 +4554,12 @@ typedef enum : NSUInteger { if (didAddToProfileWhitelist) { [self.conversationViewModel ensureDynamicInteractionsAndUpdateIfNecessary:YES]; } + + if ([self.thread isKindOfClass:TSContactThread.class]) { + [LKStorage writeWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { + [LKSessionManagementProtocol sendSessionRequestIfNeededToPublicKey:self.thread.contactIdentifier transaction:transaction]; + }]; + } } - (void)voiceMemoGestureDidStart diff --git a/SignalServiceKit/src/Loki/Protocol/Meta/SessionMetaProtocol.swift b/SignalServiceKit/src/Loki/Protocol/Meta/SessionMetaProtocol.swift index 44b0551a8..133c8382d 100644 --- a/SignalServiceKit/src/Loki/Protocol/Meta/SessionMetaProtocol.swift +++ b/SignalServiceKit/src/Loki/Protocol/Meta/SessionMetaProtocol.swift @@ -78,7 +78,7 @@ public final class SessionMetaProtocol : NSObject { /// to avoid sending them if certain conditions are met. @objc(shouldSendTypingIndicatorInThread:) public static func shouldSendTypingIndicator(in thread: TSThread) -> Bool { - return !thread.isGroupThread() + return !thread.isGroupThread() && thread.numberOfInteractions() > 0 } // MARK: Receipts