minor refactor

pull/731/head
Ryan ZHAO 6 months ago
parent 4c0c1cda1a
commit 1c6232e4d7

@ -243,6 +243,14 @@ public extension DisappearingMessagesConfiguration {
return String(data: messageInfoData, encoding: .utf8)
}
func isValidV2Config() -> Bool {
if let type = self.type {
return !(self.durationSeconds > 0 && self.type == .unknown)
} else {
return self.durationSeconds == 0
}
}
}
// MARK: - Control Message

@ -48,7 +48,7 @@ extension MessageReceiver {
.fetchOne(db)
.defaulting(to: DisappearingMessagesConfiguration.defaultWith(threadId))
let remoteConfig: DisappearingMessagesConfiguration = localConfig.with(
let updatedConfig: DisappearingMessagesConfiguration = localConfig.with(
// If there is no duration then we should disable the expiration timer
isEnabled: ((message.duration ?? 0) > 0),
durationSeconds: (
@ -87,7 +87,7 @@ extension MessageReceiver {
.update(
db,
sessionId: threadId,
disappearingMessagesConfig: remoteConfig
disappearingMessagesConfig: updatedConfig
)
case .legacyGroup:
@ -95,7 +95,7 @@ extension MessageReceiver {
.update(
db,
groupPublicKey: threadId,
disappearingConfig: remoteConfig
disappearingConfig: updatedConfig
)
default: break
@ -106,7 +106,7 @@ extension MessageReceiver {
if canPerformChange {
// Finally save the changes to the DisappearingMessagesConfiguration (If it's a duplicate
// then the interaction unique constraint will prevent the code from getting here)
try remoteConfig.save(db)
try updatedConfig.save(db)
}
// Add an info message for the user
@ -116,7 +116,7 @@ extension MessageReceiver {
threadId: threadId,
authorId: sender,
variant: .infoDisappearingMessagesUpdate,
body: remoteConfig.messageInfoString(
body: updatedConfig.messageInfoString(
threadVariant: threadVariant,
senderName: (sender != currentUserPublicKey ? Profile.displayName(db, id: sender) : nil),
isPreviousOff: false

@ -179,7 +179,9 @@ internal extension SessionUtil {
.fetchOne(db, id: sessionId)
.defaulting(to: DisappearingMessagesConfiguration.defaultWith(sessionId))
if data.config != localConfig {
let isValid: Bool = Features.useNewDisappearingMessagesConfig ? data.config.isValidV2Config() : true
if isValid && data.config != localConfig {
_ = try data.config.save(db)
_ = try Interaction
.filter(Interaction.Columns.threadId == sessionId)

@ -277,8 +277,8 @@ internal extension SessionUtil {
.fetchOne(db, id: group.id)
.defaulting(to: DisappearingMessagesConfiguration.defaultWith(group.id))
if let remoteConfig = group.disappearingConfig, localConfig != remoteConfig {
_ = try remoteConfig.save(db)
if let updatedConfig = group.disappearingConfig, localConfig != updatedConfig {
_ = try updatedConfig.save(db)
_ = try Interaction
.filter(Interaction.Columns.threadId == group.id)

Loading…
Cancel
Save