WIP: add legacy disappearing messages

pull/941/head
Ryan Zhao 2 years ago
parent 9e88405c44
commit 984aee4aa9

@ -17,6 +17,7 @@ class ThreadDisappearingMessagesViewModel: SessionTableViewModel<ThreadDisappear
public enum Section: SessionTableSection {
case type
case timerLegacy
case timerDisappearAfterSend
case timerDisappearAfterRead
case noteToSelf
@ -25,6 +26,7 @@ class ThreadDisappearingMessagesViewModel: SessionTableViewModel<ThreadDisappear
var title: String? {
switch self {
case .type: return "DISAPPERING_MESSAGES_TYPE_TITLE".localized()
case .timerLegacy: return "DISAPPERING_MESSAGES_TIMER_TITLE".localized()
case .timerDisappearAfterSend: return "DISAPPERING_MESSAGES_TIMER_TITLE".localized()
case .timerDisappearAfterRead: return "DISAPPERING_MESSAGES_TIMER_TITLE".localized()
case .noteToSelf: return nil

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -601,3 +601,6 @@
"YOU_DISAPPERING_MESSAGES_INFO_UPDATE" = "You have changed messages to disappear %@ after they have been %@";
"YOU_DISAPPERING_MESSAGES_INFO_DISABLE" = "You have turned off disappearing messages";
"MESSAGE_REQUEST_PENDING_APPROVAL_INFO" = "You will be able to send voice messages and attachments once the recipient has approved this message request";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_TITLE" = "Legacy";
"DISAPPEARING_MESSAGES_TYPE_LEGACY_DESCRIPTION" = "USe the original version of disappearing messages.";
"DISAPPEARING_MESSAGES_OUTDATED_CLIENT_BANNER" = "This user's client is outdated.";

@ -5,6 +5,8 @@ import GRDB
import SessionUtilitiesKit
public struct DisappearingMessagesConfiguration: Codable, Identifiable, Equatable, Hashable, FetchableRecord, PersistableRecord, TableRecord, ColumnExpressible {
public static let isNewConfigurationEnabled: Bool = Date().timeIntervalSince1970 > 1671062400 // 15/12/2022
public static var databaseTableName: String { "disappearingMessagesConfiguration" }
internal static let threadForeignKey = ForeignKey([Columns.threadId], to: [SessionThread.Columns.id])
private static let thread = belongsTo(SessionThread.self, using: threadForeignKey)
@ -21,22 +23,27 @@ public struct DisappearingMessagesConfiguration: Codable, Identifiable, Equatabl
public enum DisappearingMessageType: Int, Codable, Hashable, DatabaseValueConvertible {
case disappearAfterRead
case disappearAfterSend
case legacy
init(protoType: SNProtoContent.SNProtoContentExpirationType) {
init(protoType: SNProtoContent.SNProtoContentExpirationType?) {
switch protoType {
case .deleteAfterSend:
self = .disappearAfterSend
case .deleteAfterRead:
self = .disappearAfterRead
case .none:
self = .legacy
}
}
func toProto() -> SNProtoContent.SNProtoContentExpirationType {
func toProto() -> SNProtoContent.SNProtoContentExpirationType? {
switch self {
case .disappearAfterRead:
return .deleteAfterRead
case .disappearAfterSend:
return .deleteAfterSend
case .legacy:
return nil
}
}
}
@ -185,7 +192,7 @@ extension DisappearingMessagesConfiguration {
public static func validDurationsSeconds(_ type: DisappearingMessageType) -> [TimeInterval] {
switch type {
case .disappearAfterRead:
case .disappearAfterRead, .legacy:
return [
60, // TODO: remove this, for test purpose only
(5 * 60),

Loading…
Cancel
Save