fix disappearing message control message already read on linked devices

pull/731/head
Ryan ZHAO 5 months ago
parent 93e139cfa6
commit 9a528f8c71

@ -220,7 +220,8 @@ public extension DisappearingMessagesConfiguration {
authorId: String, authorId: String,
timestampMs: Int64, timestampMs: Int64,
serverHash: String?, serverHash: String?,
updatedConfiguration: DisappearingMessagesConfiguration updatedConfiguration: DisappearingMessagesConfiguration,
using dependencies: Dependencies = Dependencies()
) throws -> Int64? { ) throws -> Int64? {
if Features.useNewDisappearingMessagesConfig { if Features.useNewDisappearingMessagesConfig {
switch threadVariant { switch threadVariant {
@ -240,22 +241,18 @@ public extension DisappearingMessagesConfiguration {
} }
} }
let expiresStartedAtMs: Double? = { let currentUserPublicKey: String = getUserHexEncodedPublicKey(db, using: dependencies)
if updatedConfiguration.type == .disappearAfterSend || let wasRead: Bool = (
SessionUtil.timestampAlreadyRead( authorId == currentUserPublicKey ||
threadId: threadId, SessionUtil.timestampAlreadyRead(
threadVariant: threadVariant, threadId: threadId,
timestampMs: timestampMs, threadVariant: threadVariant,
userPublicKey: getUserHexEncodedPublicKey(db), timestampMs: timestampMs,
openGroup: nil userPublicKey: getUserHexEncodedPublicKey(db),
) openGroup: nil
{ )
return Double(timestampMs) )
} let expiresStartedAtMs: Double? = (updatedConfiguration.type == .disappearAfterSend || wasRead) ? Double(timestampMs) : nil
return nil
}()
let interaction = try Interaction( let interaction = try Interaction(
serverHash: serverHash, serverHash: serverHash,
threadId: threadId, threadId: threadId,
@ -266,6 +263,7 @@ public extension DisappearingMessagesConfiguration {
senderName: (authorId != getUserHexEncodedPublicKey(db) ? Profile.displayName(db, id: authorId) : nil) senderName: (authorId != getUserHexEncodedPublicKey(db) ? Profile.displayName(db, id: authorId) : nil)
), ),
timestampMs: timestampMs, timestampMs: timestampMs,
wasRead: wasRead,
expiresInSeconds: (threadVariant == .legacyGroup ? nil : updatedConfiguration.durationSeconds), // Do not expire this control message in legacy groups expiresInSeconds: (threadVariant == .legacyGroup ? nil : updatedConfiguration.durationSeconds), // Do not expire this control message in legacy groups
expiresStartedAtMs: (threadVariant == .legacyGroup ? nil : expiresStartedAtMs) expiresStartedAtMs: (threadVariant == .legacyGroup ? nil : expiresStartedAtMs)
).inserted(db) ).inserted(db)

Loading…
Cancel
Save