insert info message for updating disappearing message config

pull/941/head
Ryan Zhao 2 years ago
parent 601cc7b92a
commit 6e58a0d967

@ -222,7 +222,13 @@ public enum MessageReceiver {
}
// Update any disappearing messages configuration if needed
try MessageReceiver.updateDisappearingMessagesConfigurationIfNeeded(db, threadId: message.threadId, proto: proto)
try MessageReceiver.updateDisappearingMessagesConfigurationIfNeeded(
db,
threadId: message.threadId,
sender: message.sender,
sentTimestamp: message.sentTimestamp,
proto: proto
)
// Perform any required post-handling logic
try MessageReceiver.postHandleMessage(db, message: message, openGroupId: openGroupId)
@ -310,9 +316,11 @@ public enum MessageReceiver {
internal static func updateDisappearingMessagesConfigurationIfNeeded(
_ db: Database,
threadId: String?,
sender: String?,
sentTimestamp: UInt64?,
proto: SNProtoContent
) throws {
guard let threadId = threadId, proto.hasLastDisappearingMessageChangeTimestamp else { return }
guard let threadId = threadId, let sender = sender, proto.hasLastDisappearingMessageChangeTimestamp else { return }
let protoLastChangeTimestampMs: Int64 = Int64(proto.lastDisappearingMessageChangeTimestamp)
let localConfig: DisappearingMessagesConfiguration = try DisappearingMessagesConfiguration
@ -332,6 +340,20 @@ public enum MessageReceiver {
lastChangeTimestampMs: protoLastChangeTimestampMs
)
_ = try Interaction(
serverHash: nil, // Intentionally null so sync messages are seen as duplicates
threadId: threadId,
authorId: sender,
variant: .infoDisappearingMessagesUpdate,
body: remoteConfig.messageInfoString(
with: (sender != getUserHexEncodedPublicKey(db) ?
Profile.displayName(db, id: sender) :
nil
)
),
timestampMs: Int64(sentTimestamp ?? 0)
).inserted(db)
try remoteConfig.save(db)
}

Loading…
Cancel
Save