You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-ios/SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+ExpirationT...

54 lines
2.4 KiB
Swift

// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
import Foundation
import GRDB
import SessionUtilitiesKit
extension MessageReceiver {
internal static func handleExpirationTimerUpdate(_ db: Database, message: ExpirationTimerUpdate) throws {
// Get the target thread
// guard
// let targetId: String = MessageReceiver.threadInfo(db, message: message, openGroupId: nil)?.id,
// let sender: String = message.sender,
// let thread: SessionThread = try? SessionThread.fetchOne(db, id: targetId)
// else { return }
//
// // Update the configuration
// //
// // Note: Messages which had been sent during the previous configuration will still
// // use it's settings (so if you enable, send a message and then disable disappearing
// // message then the message you had sent will still disappear)
// let config: DisappearingMessagesConfiguration = try thread.disappearingMessagesConfiguration
// .fetchOne(db)
// .defaulting(to: DisappearingMessagesConfiguration.defaultWith(thread.id))
// .with(
// // If there is no duration then we should disable the expiration timer
// isEnabled: ((message.duration ?? 0) > 0),
// durationSeconds: (
// message.duration.map { TimeInterval($0) } ??
// DisappearingMessagesConfiguration.defaultDuration
// )
// )
//
// // Add an info message for the user
// _ = try Interaction(
// serverHash: nil, // Intentionally null so sync messages are seen as duplicates
// threadId: thread.id,
// authorId: sender,
// variant: .infoDisappearingMessagesUpdate,
// body: config.messageInfoString(
// with: (sender != getUserHexEncodedPublicKey(db) ?
// Profile.displayName(db, id: sender) :
// nil
// ),
// isPreviousOff: false
// ),
// timestampMs: Int64(message.sentTimestamp ?? 0) // Default to `0` if not set
// ).inserted(db)
//
// // 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 config.save(db)
}
}