fix disappearing messages update control messages for legacy groups

This commit is contained in:
Ryan ZHAO 2023-12-07 16:47:17 +11:00
parent 4ec1d730cd
commit 490cde57ce
31 changed files with 72 additions and 97 deletions

View File

@ -99,6 +99,9 @@ final class InfoMessageCell: MessageCell {
self.isAccessibilityElement = true
self.viewModel = cellViewModel
self.actionLabel.isHidden = true
self.actionLabel.text = nil
let icon: UIImage? = {
switch cellViewModel.variant {
case .infoDisappearingMessagesUpdate:
@ -141,9 +144,6 @@ final class InfoMessageCell: MessageCell {
if cellViewModel.canDoFollowingSetting() {
self.actionLabel.isHidden = false
self.actionLabel.text = "FOLLOW_SETTING_TITLE".localized()
} else {
self.actionLabel.isHidden = true
self.actionLabel.text = nil
}
} else {
self.label.text = cellViewModel.body

View File

@ -474,19 +474,26 @@ class ThreadDisappearingMessagesSettingsViewModel: SessionTableViewModel, Naviga
dependencies.storage.writeAsync(using: dependencies) { [threadId, threadVariant, dependencies] db in
_ = try updatedConfig.saved(db)
let userPublicKey: String = getUserHexEncodedPublicKey(db, using: dependencies)
if Features.useNewDisappearingMessagesConfig {
_ = try Interaction
.filter(Interaction.Columns.threadId == threadId)
.filter(Interaction.Columns.variant == Interaction.Variant.infoDisappearingMessagesUpdate)
.filter(Interaction.Columns.authorId == userPublicKey)
.deleteAll(db)
}
let interaction: Interaction = try Interaction(
threadId: threadId,
authorId: getUserHexEncodedPublicKey(db, using: dependencies),
authorId: userPublicKey,
variant: .infoDisappearingMessagesUpdate,
body: updatedConfig.messageInfoString(with: nil, isPreviousOff: !self.config.isEnabled),
body: updatedConfig.messageInfoString(
threadVariant: threadVariant,
senderName: nil,
isPreviousOff: !self.config.isEnabled
),
timestampMs: SnodeAPI.currentOffsetTimestampMs()
)
.inserted(db)

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Minuteur";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Appliquer";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "Ce paramètre s'applique à tout le monde dans cette conversation.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "Timer";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "Set";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -572,7 +572,7 @@
"DISAPPERING_MESSAGES_TIMER_TITLE" = "計時器";
"DISAPPERING_MESSAGES_SAVE_TITLE" = "設定";
"DISAPPERING_MESSAGES_GROUP_WARNING" = "This setting applies to messages you send in this conversation. ";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to messages you send in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_GROUP_WARNING_ADMIN_ONLY" = "This setting applies to everyone in this conversation. \nOnly group admins can change this setting.";
"DISAPPERING_MESSAGES_INFO_ENABLE_LEGACY" = "%@ has set messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_UPDATE_LEGACY" = "%@ has changed messages to disappear %@ after they have been %@";
"DISAPPERING_MESSAGES_INFO_DISABLE_LEGACY" = "%@ has turned off disappearing messages";

View File

@ -824,6 +824,7 @@ enum _003_YDBToGRDBMigration: Migration {
let updateMessage: SMKLegacy._DisappearingConfigurationUpdateInfoMessage = infoMessage as? SMKLegacy._DisappearingConfigurationUpdateInfoMessage,
let infoMessageData: Data = try? JSONEncoder().encode(
DisappearingMessagesConfiguration.MessageInfo(
threadVariant: nil,
senderName: updateMessage.createdByRemoteName,
isEnabled: updateMessage.configurationIsEnabled,
durationSeconds: TimeInterval(updateMessage.configurationDurationSeconds),

View File

@ -118,6 +118,7 @@ public extension DisappearingMessagesConfiguration {
public extension DisappearingMessagesConfiguration {
struct MessageInfo: Codable {
public let threadVariant: SessionThread.Variant?
public let senderName: String?
public let isEnabled: Bool
public let durationSeconds: TimeInterval
@ -125,7 +126,9 @@ public extension DisappearingMessagesConfiguration {
public let isPreviousOff: Bool?
var previewText: String {
guard Features.useNewDisappearingMessagesConfig else { return legacyPreviewText }
guard Features.useNewDisappearingMessagesConfig && self.threadVariant != nil else { return legacyPreviewText }
guard self.threadVariant != .legacyGroup else { return previewTextLegacyGroup }
guard let senderName: String = senderName else {
guard isEnabled, durationSeconds > 0 else {
return "YOU_DISAPPEARING_MESSAGES_INFO_DISABLE".localized()
@ -222,8 +225,13 @@ public extension DisappearingMessagesConfiguration {
floor(durationSeconds).formatted(format: .long)
}
func messageInfoString(with senderName: String?, isPreviousOff: Bool) -> String? {
func messageInfoString(
threadVariant: SessionThread.Variant?,
senderName: String?,
isPreviousOff: Bool
) -> String? {
let messageInfo: MessageInfo = DisappearingMessagesConfiguration.MessageInfo(
threadVariant: threadVariant,
senderName: senderName,
isEnabled: isEnabled,
durationSeconds: durationSeconds,

View File

@ -117,10 +117,8 @@ extension MessageReceiver {
authorId: sender,
variant: .infoDisappearingMessagesUpdate,
body: remoteConfig.messageInfoString(
with: (sender != currentUserPublicKey ?
Profile.displayName(db, id: sender) :
nil
),
threadVariant: threadVariant,
senderName: (sender != currentUserPublicKey ? Profile.displayName(db, id: sender) : nil),
isPreviousOff: false
),
timestampMs: timestampMs,
@ -187,45 +185,51 @@ extension MessageReceiver {
)
switch threadVariant {
case .contact:
try updateFollowingSettingsControlMessage(
db,
threadId: threadId,
authorId: sender,
timestampMs: timestampMs,
serverHash: message.serverHash,
localConfig: localConfig,
remoteConfig: remoteConfig
)
case .legacyGroup:
try updateLegacyGroupDisappearingMessagesConfiguration(
if localConfig != remoteConfig {
_ = try remoteConfig.save(db)
try SessionUtil
.update(
db,
groupPublicKey: threadId,
disappearingConfig: remoteConfig
)
}
fallthrough
case .contact:
try insertExpirationUpdateControlMessage(
db,
threadId: threadId,
threadVariant: threadVariant,
authorId: sender,
timestampMs: timestampMs,
serverHash: message.serverHash,
localConfig: localConfig,
remoteConfig: remoteConfig
)
default:
return
}
}
private static func updateFollowingSettingsControlMessage(
private static func insertExpirationUpdateControlMessage(
_ db: Database,
threadId: String,
threadVariant: SessionThread.Variant,
authorId: String,
timestampMs: UInt64,
serverHash: String?,
localConfig: DisappearingMessagesConfiguration,
remoteConfig: DisappearingMessagesConfiguration
) throws {
guard authorId != getUserHexEncodedPublicKey(db) else { return }
guard threadVariant != .contact || authorId != getUserHexEncodedPublicKey(db) else { return }
_ = try Interaction
.filter(Interaction.Columns.threadId == threadId)
.filter(Interaction.Columns.variant == Interaction.Variant.infoDisappearingMessagesUpdate)
.filter(Interaction.Columns.authorId == authorId)
.deleteAll(db)
_ = try Interaction(
@ -234,7 +238,8 @@ extension MessageReceiver {
authorId: authorId,
variant: .infoDisappearingMessagesUpdate,
body: remoteConfig.messageInfoString(
with: Profile.displayName(db, id: authorId),
threadVariant: threadVariant,
senderName: (authorId != getUserHexEncodedPublicKey(db) ? Profile.displayName(db, id: authorId) : nil),
isPreviousOff: !localConfig.isEnabled
),
timestampMs: Int64(timestampMs),
@ -242,50 +247,4 @@ extension MessageReceiver {
expiresStartedAtMs: (remoteConfig.type == .disappearAfterSend ? Double(timestampMs) : nil)
).inserted(db)
}
private static func updateLegacyGroupDisappearingMessagesConfiguration(
_ db: Database,
threadId: String,
authorId: String,
timestampMs: UInt64,
serverHash: String?,
localConfig: DisappearingMessagesConfiguration,
remoteConfig: DisappearingMessagesConfiguration
) throws {
if localConfig != remoteConfig {
_ = try remoteConfig.save(db)
try SessionUtil
.update(
db,
groupPublicKey: threadId,
disappearingConfig: remoteConfig
)
}
_ = try Interaction
.filter(Interaction.Columns.threadId == threadId)
.filter(Interaction.Columns.variant == Interaction.Variant.infoDisappearingMessagesUpdate)
.deleteAll(db)
_ = try Interaction(
serverHash: serverHash,
threadId: threadId,
authorId: authorId,
variant: .infoDisappearingMessagesUpdate,
body: remoteConfig.messageInfoString(
with: (authorId != getUserHexEncodedPublicKey(db) ?
Profile.displayName(db, id: authorId) :
nil
),
isPreviousOff: !localConfig.isEnabled
),
timestampMs: Int64(timestampMs),
expiresInSeconds: (remoteConfig.isEnabled ? remoteConfig.durationSeconds : localConfig.durationSeconds),
expiresStartedAtMs: (!remoteConfig.isEnabled && localConfig.type == .disappearAfterSend ?
Double(timestampMs) :
nil
)
).inserted(db)
}
}