From 1b9aa9aea255f0df67689dce8a8eaa668ccfaf80 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Tue, 23 Feb 2021 11:08:01 +1100 Subject: [PATCH] Keep things backwards compatible --- .../ConfigurationMessage.swift | 12 ++---- .../Protos/Generated/SNProto.swift | 39 +++++++++---------- .../Protos/Generated/SessionProtos.pb.swift | 2 - .../Protos/SessionProtos.proto | 3 +- 4 files changed, 22 insertions(+), 34 deletions(-) diff --git a/SessionMessagingKit/Messages/Control Messages/ConfigurationMessage.swift b/SessionMessagingKit/Messages/Control Messages/ConfigurationMessage.swift index e9f5c6209..c38c7f444 100644 --- a/SessionMessagingKit/Messages/Control Messages/ConfigurationMessage.swift +++ b/SessionMessagingKit/Messages/Control Messages/ConfigurationMessage.swift @@ -12,16 +12,10 @@ public final class ConfigurationMessage : ControlMessage { public override var isSelfSendValid: Bool { true } - // MARK: Validation - public override var isValid: Bool { - guard displayName != nil else { return false } - return true - } - // MARK: Initialization public override init() { super.init() } - public init(displayName: String, profilePictureURL: String?, profileKey: Data?, closedGroups: Set, openGroups: Set) { + public init(displayName: String?, profilePictureURL: String?, profileKey: Data?, closedGroups: Set, openGroups: Set) { super.init() self.displayName = displayName self.profilePictureURL = profilePictureURL @@ -61,8 +55,8 @@ public final class ConfigurationMessage : ControlMessage { } public override func toProto(using transaction: YapDatabaseReadWriteTransaction) -> SNProtoContent? { - guard let displayName = displayName else { return nil } - let configurationProto = SNProtoConfigurationMessage.builder(displayName: displayName) + let configurationProto = SNProtoConfigurationMessage.builder() + if let displayName = displayName { configurationProto.setDisplayName(displayName) } if let profilePictureURL = profilePictureURL { configurationProto.setProfilePicture(profilePictureURL) } if let profileKey = profileKey { configurationProto.setProfileKey(profileKey) } configurationProto.setClosedGroups(closedGroups.compactMap { $0.toProto() }) diff --git a/SessionMessagingKit/Protos/Generated/SNProto.swift b/SessionMessagingKit/Protos/Generated/SNProto.swift index 9ba40dedc..623bdc812 100644 --- a/SessionMessagingKit/Protos/Generated/SNProto.swift +++ b/SessionMessagingKit/Protos/Generated/SNProto.swift @@ -3126,15 +3126,18 @@ extension SNProtoConfigurationMessageClosedGroup.SNProtoConfigurationMessageClos // MARK: - SNProtoConfigurationMessageBuilder - @objc public class func builder(displayName: String) -> SNProtoConfigurationMessageBuilder { - return SNProtoConfigurationMessageBuilder(displayName: displayName) + @objc public class func builder() -> SNProtoConfigurationMessageBuilder { + return SNProtoConfigurationMessageBuilder() } // asBuilder() constructs a builder that reflects the proto's contents. @objc public func asBuilder() -> SNProtoConfigurationMessageBuilder { - let builder = SNProtoConfigurationMessageBuilder(displayName: displayName) + let builder = SNProtoConfigurationMessageBuilder() builder.setClosedGroups(closedGroups) builder.setOpenGroups(openGroups) + if let _value = displayName { + builder.setDisplayName(_value) + } if let _value = profilePicture { builder.setProfilePicture(_value) } @@ -3150,12 +3153,6 @@ extension SNProtoConfigurationMessageClosedGroup.SNProtoConfigurationMessageClos @objc fileprivate override init() {} - @objc fileprivate init(displayName: String) { - super.init() - - setDisplayName(displayName) - } - @objc public func addClosedGroups(_ valueParam: SNProtoConfigurationMessageClosedGroup) { var items = proto.closedGroups items.append(valueParam.proto) @@ -3201,12 +3198,20 @@ extension SNProtoConfigurationMessageClosedGroup.SNProtoConfigurationMessageClos @objc public let closedGroups: [SNProtoConfigurationMessageClosedGroup] - @objc public let displayName: String - @objc public var openGroups: [String] { return proto.openGroups } + @objc public var displayName: String? { + guard proto.hasDisplayName else { + return nil + } + return proto.displayName + } + @objc public var hasDisplayName: Bool { + return proto.hasDisplayName + } + @objc public var profilePicture: String? { guard proto.hasProfilePicture else { return nil @@ -3228,11 +3233,9 @@ extension SNProtoConfigurationMessageClosedGroup.SNProtoConfigurationMessageClos } private init(proto: SessionProtos_ConfigurationMessage, - closedGroups: [SNProtoConfigurationMessageClosedGroup], - displayName: String) { + closedGroups: [SNProtoConfigurationMessageClosedGroup]) { self.proto = proto self.closedGroups = closedGroups - self.displayName = displayName } @objc @@ -3249,18 +3252,12 @@ extension SNProtoConfigurationMessageClosedGroup.SNProtoConfigurationMessageClos var closedGroups: [SNProtoConfigurationMessageClosedGroup] = [] closedGroups = try proto.closedGroups.map { try SNProtoConfigurationMessageClosedGroup.parseProto($0) } - guard proto.hasDisplayName else { - throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: displayName") - } - let displayName = proto.displayName - // MARK: - Begin Validation Logic for SNProtoConfigurationMessage - // MARK: - End Validation Logic for SNProtoConfigurationMessage - let result = SNProtoConfigurationMessage(proto: proto, - closedGroups: closedGroups, - displayName: displayName) + closedGroups: closedGroups) return result } diff --git a/SessionMessagingKit/Protos/Generated/SessionProtos.pb.swift b/SessionMessagingKit/Protos/Generated/SessionProtos.pb.swift index 9ec42a6dd..c67f798db 100644 --- a/SessionMessagingKit/Protos/Generated/SessionProtos.pb.swift +++ b/SessionMessagingKit/Protos/Generated/SessionProtos.pb.swift @@ -1246,7 +1246,6 @@ struct SessionProtos_ConfigurationMessage { var openGroups: [String] = [] - /// @required var displayName: String { get {return _displayName ?? String()} set {_displayName = newValue} @@ -3222,7 +3221,6 @@ extension SessionProtos_ConfigurationMessage: SwiftProtobuf.Message, SwiftProtob ] public var isInitialized: Bool { - if self._displayName == nil {return false} if !SwiftProtobuf.Internal.areAllInitialized(self.closedGroups) {return false} return true } diff --git a/SessionMessagingKit/Protos/SessionProtos.proto b/SessionMessagingKit/Protos/SessionProtos.proto index 8d44e579e..829b5ab54 100644 --- a/SessionMessagingKit/Protos/SessionProtos.proto +++ b/SessionMessagingKit/Protos/SessionProtos.proto @@ -224,8 +224,7 @@ message ConfigurationMessage { repeated ClosedGroup closedGroups = 1; repeated string openGroups = 2; - // @required - required string displayName = 3; + optional string displayName = 3; optional string profilePicture = 4; optional bytes profileKey = 5; }