diff --git a/Signal/src/Loki/LokiGroupChatPoller.swift b/Signal/src/Loki/LokiGroupChatPoller.swift index 225faffdf..ace8f9122 100644 --- a/Signal/src/Loki/LokiGroupChatPoller.swift +++ b/Signal/src/Loki/LokiGroupChatPoller.swift @@ -6,14 +6,14 @@ public final class LokiGroupChatPoller : NSObject { private var pollForDeletedMessagesTimer: Timer? = nil private var pollForModerationPermissionTimer: Timer? = nil private var hasStarted = false + private let userHexEncodedPublicKey = OWSIdentityManager.shared().identityKeyPair()!.hexEncodedPublicKey + // MARK: Settings private let pollForNewMessagesInterval: TimeInterval = 4 private let pollForDeletedMessagesInterval: TimeInterval = 20 private let pollForModerationPermissionInterval: TimeInterval = 10 * 60 - private let storage = OWSPrimaryStorage.shared() - private let ourHexEncodedPubKey = OWSIdentityManager.shared().identityKeyPair()!.hexEncodedPublicKey - + // MARK: Lifecycle @objc(initForGroup:) public init(for group: LokiGroupChat) { self.group = group @@ -36,82 +36,74 @@ public final class LokiGroupChatPoller : NSObject { hasStarted = false } + // MARK: Polling private func pollForNewMessages() { + // Prepare let group = self.group - let _ = LokiGroupChatAPI.getMessages(for: group.serverID, on: group.server).done { [weak self] messages in - guard let self = self else { return } + let userHexEncodedPublicKey = self.userHexEncodedPublicKey + // Processing logic for incoming messages + func processIncomingMessage(_ message: LokiGroupMessage) { + let senderHexEncodedPublicKey = message.hexEncodedPublicKey + let endIndex = senderHexEncodedPublicKey.endIndex + let cutoffIndex = senderHexEncodedPublicKey.index(endIndex, offsetBy: -8) + let senderDisplayName = "\(message.displayName) (...\(senderHexEncodedPublicKey[cutoffIndex.. 0;