fix when rejoining open groups messages sent were not loaded (case 4)

This commit is contained in:
ryanzhao 2020-06-05 11:53:44 +10:00
parent 56dface3ba
commit 837aa54e07
2 changed files with 10 additions and 0 deletions

View file

@ -150,6 +150,7 @@ public final class LokiPublicChatPoller : NSObject {
if !wasSentByCurrentUser {
content.setDataMessage(try! dataMessage.build())
} else {
SyncMessagesProtocol.addForceSyncMessageTimestamp(message.timestamp, from: senderHexEncodedPublicKey)
let syncMessageSentBuilder = SSKProtoSyncMessageSent.builder()
syncMessageSentBuilder.setMessage(try! dataMessage.build())
syncMessageSentBuilder.setDestination(userHexEncodedPublicKey)

View file

@ -96,6 +96,15 @@ public final class SyncMessagesProtocol : NSObject {
let hexEncodedPublicKey = envelope.source!
return LokiDatabaseUtilities.isUserLinkedDevice(hexEncodedPublicKey, transaction: transaction)
}
@objc(addForceSyncMessageTimestamp:from:)
public static func addForceSyncMessageTimestamp(_ timestamp: UInt64, from hexEncodedPublicKey: String) {
var timestamps: Set<UInt64> = syncMessageTimestamps[hexEncodedPublicKey] ?? []
if timestamps.contains(timestamp) {
timestamps.remove(timestamp)
}
syncMessageTimestamps[hexEncodedPublicKey] = timestamps
}
// TODO: We should probably look at why sync messages are being duplicated rather than doing this
@objc(isDuplicateSyncMessage:fromHexEncodedPublicKey:)