Make some expiration timer fields nonnull
This commit is contained in:
parent
800a5cc0bc
commit
2182e5952a
@ -38,9 +38,9 @@ public enum SentMessageTranscriptType {
|
||||
|
||||
public let isViewOnceMessage: Bool
|
||||
|
||||
public let expirationStartedAt: UInt64?
|
||||
public let expirationDurationSeconds: UInt32?
|
||||
public let expireTimerVersion: UInt32?
|
||||
public let expirationStartedAt: UInt64
|
||||
public let expirationDurationSeconds: UInt32
|
||||
public let expireTimerVersion: UInt32
|
||||
|
||||
public let storyTimestamp: UInt64?
|
||||
public let storyAuthorAci: Aci?
|
||||
|
||||
@ -348,17 +348,15 @@ public class SentMessageTranscriptReceiverImpl: SentMessageTranscriptReceiver {
|
||||
tx: tx,
|
||||
)
|
||||
|
||||
if let expirationStartedAt = messageParams.expirationStartedAt {
|
||||
/// The insert and update methods above may start expiration for
|
||||
/// this message, but transcript.expirationStartedAt may be earlier,
|
||||
/// so we need to pass that to DisappearingMessagesExpirationJob in
|
||||
/// case it needs to back-date the expiration.
|
||||
disappearingMessagesExpirationJob.startExpiration(
|
||||
forMessage: outgoingMessage,
|
||||
expirationStartedAt: expirationStartedAt,
|
||||
tx: tx,
|
||||
)
|
||||
}
|
||||
/// The insert and update methods above may start expiration for
|
||||
/// this message, but transcript.expirationStartedAt may be earlier,
|
||||
/// so we need to pass that to DisappearingMessagesExpirationJob in
|
||||
/// case it needs to back-date the expiration.
|
||||
disappearingMessagesExpirationJob.startExpiration(
|
||||
forMessage: outgoingMessage,
|
||||
expirationStartedAt: messageParams.expirationStartedAt,
|
||||
tx: tx,
|
||||
)
|
||||
|
||||
self.earlyMessageManager.applyPendingMessages(for: outgoingMessage, registeredState: registeredState, tx: tx)
|
||||
|
||||
|
||||
@ -21,16 +21,15 @@ public struct VersionedDisappearingMessageToken: Equatable {
|
||||
public let durationSeconds: UInt32
|
||||
public let version: UInt32
|
||||
|
||||
public init(durationSeconds: UInt32, version: UInt32?) {
|
||||
public init(durationSeconds: UInt32, version: UInt32) {
|
||||
self.durationSeconds = durationSeconds
|
||||
// 0 and nil version are equivalent.
|
||||
self.version = version ?? 0
|
||||
self.version = version
|
||||
}
|
||||
|
||||
public init(
|
||||
isEnabled: Bool,
|
||||
durationSeconds: UInt32,
|
||||
version: UInt32?,
|
||||
version: UInt32,
|
||||
) {
|
||||
// Consider disabled if duration is zero.
|
||||
// Use zero duration if not enabled.
|
||||
@ -45,7 +44,7 @@ public struct VersionedDisappearingMessageToken: Equatable {
|
||||
durationSeconds: UInt32,
|
||||
) -> Self {
|
||||
// Version is unused for group threads
|
||||
return .init(isEnabled: isEnabled, durationSeconds: durationSeconds, version: nil)
|
||||
return .init(isEnabled: isEnabled, durationSeconds: durationSeconds, version: 0)
|
||||
}
|
||||
|
||||
public static func forUniversalTimer(
|
||||
@ -53,12 +52,12 @@ public struct VersionedDisappearingMessageToken: Equatable {
|
||||
durationSeconds: UInt32,
|
||||
) -> Self {
|
||||
// Version is unused for the universal timer
|
||||
return .init(isEnabled: isEnabled, durationSeconds: durationSeconds, version: nil)
|
||||
return .init(isEnabled: isEnabled, durationSeconds: durationSeconds, version: 0)
|
||||
}
|
||||
|
||||
public static func token(
|
||||
forProtoExpireTimerSeconds expireTimerSeconds: UInt32?,
|
||||
version: UInt32?,
|
||||
version: UInt32,
|
||||
) -> Self {
|
||||
return .init(durationSeconds: expireTimerSeconds ?? 0, version: version)
|
||||
}
|
||||
|
||||
@ -81,8 +81,8 @@ public class PinnedMessageManager {
|
||||
pinAuthor: Aci,
|
||||
thread: TSThread,
|
||||
pinSentAtTimestamp: UInt64,
|
||||
expireTimer: UInt32?,
|
||||
expireTimerVersion: UInt32?,
|
||||
expireTimer: UInt32,
|
||||
expireTimerVersion: UInt32,
|
||||
transaction: DBWriteTransaction,
|
||||
) throws {
|
||||
try validateInputsForPinMessage(pinMessageProto: pinMessageProto)
|
||||
@ -459,8 +459,8 @@ public class PinnedMessageManager {
|
||||
targetMessageTimestamp: UInt64,
|
||||
targetMessageAuthor: Aci,
|
||||
pinAuthor: Aci,
|
||||
expireTimer: UInt32?,
|
||||
expireTimerVersion: UInt32?,
|
||||
expireTimer: UInt32,
|
||||
expireTimerVersion: UInt32,
|
||||
tx: DBWriteTransaction,
|
||||
) {
|
||||
var userInfoForNewMessage: [InfoMessageUserInfoKey: Any] = [:]
|
||||
@ -470,18 +470,13 @@ public class PinnedMessageManager {
|
||||
timestamp: Int64(targetMessageTimestamp),
|
||||
)
|
||||
|
||||
var timerVersion: NSNumber?
|
||||
if let expireTimerVersion {
|
||||
timerVersion = NSNumber(value: expireTimerVersion)
|
||||
}
|
||||
|
||||
let infoMessage = TSInfoMessage(
|
||||
thread: thread,
|
||||
timestamp: timestamp,
|
||||
serverGuid: nil,
|
||||
messageType: .typePinnedMessage,
|
||||
expireTimerVersion: timerVersion,
|
||||
expiresInSeconds: expireTimer ?? 0,
|
||||
expireTimerVersion: NSNumber(value: expireTimerVersion),
|
||||
expiresInSeconds: expireTimer,
|
||||
infoMessageUserInfo: userInfoForNewMessage,
|
||||
)
|
||||
|
||||
|
||||
@ -285,8 +285,8 @@ public class PollMessageManager {
|
||||
targetPollTimestamp: UInt64,
|
||||
pollQuestion: String,
|
||||
terminateAuthor: Aci,
|
||||
expireTimer: UInt32?,
|
||||
expireTimerVersion: UInt32?,
|
||||
expireTimer: UInt32,
|
||||
expireTimerVersion: UInt32,
|
||||
tx: DBWriteTransaction,
|
||||
) {
|
||||
var userInfoForNewMessage: [InfoMessageUserInfoKey: Any] = [:]
|
||||
@ -296,18 +296,13 @@ public class PollMessageManager {
|
||||
timestamp: Int64(targetPollTimestamp),
|
||||
)
|
||||
|
||||
var timerVersion: NSNumber?
|
||||
if let expireTimerVersion {
|
||||
timerVersion = NSNumber(value: expireTimerVersion)
|
||||
}
|
||||
|
||||
let infoMessage = TSInfoMessage(
|
||||
thread: thread,
|
||||
timestamp: timestamp,
|
||||
serverGuid: nil,
|
||||
messageType: .typeEndPoll,
|
||||
expireTimerVersion: timerVersion,
|
||||
expiresInSeconds: expireTimer ?? 0,
|
||||
expireTimerVersion: NSNumber(value: expireTimerVersion),
|
||||
expiresInSeconds: expireTimer,
|
||||
infoMessageUserInfo: userInfoForNewMessage,
|
||||
)
|
||||
|
||||
|
||||
@ -10,14 +10,14 @@ extension OWSOutgoingPaymentMessage {
|
||||
messageBody: ValidatedInlineMessageBody?,
|
||||
paymentNotification: TSPaymentNotification,
|
||||
expiresInSeconds: UInt32,
|
||||
expireTimerVersion: UInt32?,
|
||||
expireTimerVersion: UInt32,
|
||||
tx: DBReadTransaction,
|
||||
) {
|
||||
let messageBuilder = TSOutgoingMessageBuilder.outgoingMessageBuilder(thread: thread)
|
||||
messageBuilder.setMessageBody(messageBody)
|
||||
messageBuilder.isViewOnceMessage = false
|
||||
messageBuilder.expiresInSeconds = expiresInSeconds
|
||||
messageBuilder.expireTimerVersion = expireTimerVersion.map(NSNumber.init(value:))
|
||||
messageBuilder.expireTimerVersion = NSNumber(value: expireTimerVersion)
|
||||
|
||||
self.init(
|
||||
builder: messageBuilder,
|
||||
|
||||
@ -128,7 +128,7 @@ public class ReactionManager: NSObject {
|
||||
timestamp: UInt64,
|
||||
serverTimestamp: UInt64,
|
||||
expiresInSeconds: UInt32,
|
||||
expireTimerVersion: UInt32?,
|
||||
expireTimerVersion: UInt32,
|
||||
sentTranscript: OWSIncomingSentMessageTranscript?,
|
||||
transaction: DBWriteTransaction,
|
||||
) -> ReactionProcessingResult {
|
||||
@ -238,7 +238,7 @@ public class ReactionManager: NSObject {
|
||||
builder.expiresInSeconds = 0
|
||||
} else {
|
||||
builder.expiresInSeconds = expiresInSeconds
|
||||
builder.expireTimerVersion = expireTimerVersion.map(NSNumber.init(value:))
|
||||
builder.expireTimerVersion = NSNumber(value: expireTimerVersion)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user