fix disappearing messages configuration sending & receiving

pull/941/head
Ryan Zhao 3 years ago
parent 0567a4eb6a
commit e4bf474fea

@ -80,6 +80,7 @@ public class Message: Codable {
let type = disappearingMessagesConfiguration.type let type = disappearingMessagesConfiguration.type
{ {
proto.setExpirationType(type.toProto()) proto.setExpirationType(type.toProto())
proto.setLastDisappearingMessageChangeTimestamp(UInt64(disappearingMessagesConfiguration.lastChangeTimestampMs))
} }
} }

@ -189,9 +189,8 @@ public enum MessageReceiver {
// follow the new config. // follow the new config.
try MessageReceiver.updateDisappearingMessagesConfigurationIfNeeded( try MessageReceiver.updateDisappearingMessagesConfigurationIfNeeded(
db, db,
threadId: message.threadId, message: message,
sender: message.sender, openGroupId: openGroupId,
sentTimestamp: message.sentTimestamp,
proto: proto proto: proto
) )
@ -319,12 +318,15 @@ public enum MessageReceiver {
internal static func updateDisappearingMessagesConfigurationIfNeeded( internal static func updateDisappearingMessagesConfigurationIfNeeded(
_ db: Database, _ db: Database,
threadId: String?, message: Message,
sender: String?, openGroupId: String?,
sentTimestamp: UInt64?,
proto: SNProtoContent proto: SNProtoContent
) throws { ) throws {
guard let threadId = threadId, let sender = sender, proto.hasLastDisappearingMessageChangeTimestamp else { return } guard
let (threadId, _) = MessageReceiver.threadInfo(db, message: message, openGroupId: openGroupId),
let sender = message.sender,
proto.hasLastDisappearingMessageChangeTimestamp
else { return }
let protoLastChangeTimestampMs: Int64 = Int64(proto.lastDisappearingMessageChangeTimestamp) let protoLastChangeTimestampMs: Int64 = Int64(proto.lastDisappearingMessageChangeTimestamp)
let localConfig: DisappearingMessagesConfiguration = try DisappearingMessagesConfiguration let localConfig: DisappearingMessagesConfiguration = try DisappearingMessagesConfiguration
@ -355,7 +357,7 @@ public enum MessageReceiver {
nil nil
) )
), ),
timestampMs: Int64(sentTimestamp ?? 0) timestampMs: protoLastChangeTimestampMs
).inserted(db) ).inserted(db)
try remoteConfig.save(db) try remoteConfig.save(db)

Loading…
Cancel
Save