|
|
@ -18,9 +18,9 @@ public final class ClosedGroupControlMessage : ControlMessage {
|
|
|
|
case update(name: String, members: [Data])
|
|
|
|
case update(name: String, members: [Data])
|
|
|
|
case encryptionKeyPair([KeyPairWrapper]) // The new encryption key pair encrypted for each member individually
|
|
|
|
case encryptionKeyPair([KeyPairWrapper]) // The new encryption key pair encrypted for each member individually
|
|
|
|
case nameChange(name: String)
|
|
|
|
case nameChange(name: String)
|
|
|
|
case usersAdded(members: [Data])
|
|
|
|
case membersAdded(members: [Data])
|
|
|
|
case usersRemoved(members: [Data])
|
|
|
|
case membersRemoved(members: [Data])
|
|
|
|
case userLeft
|
|
|
|
case memberLeft
|
|
|
|
|
|
|
|
|
|
|
|
public var description: String {
|
|
|
|
public var description: String {
|
|
|
|
switch self {
|
|
|
|
switch self {
|
|
|
@ -28,9 +28,9 @@ public final class ClosedGroupControlMessage : ControlMessage {
|
|
|
|
case .update: return "update"
|
|
|
|
case .update: return "update"
|
|
|
|
case .encryptionKeyPair: return "encryptionKeyPair"
|
|
|
|
case .encryptionKeyPair: return "encryptionKeyPair"
|
|
|
|
case .nameChange: return "nameChange"
|
|
|
|
case .nameChange: return "nameChange"
|
|
|
|
case .usersAdded: return "usersAdded"
|
|
|
|
case .membersAdded: return "membersAdded"
|
|
|
|
case .usersRemoved: return "usersRemoved"
|
|
|
|
case .membersRemoved: return "membersRemoved"
|
|
|
|
case .userLeft: return "userLeft"
|
|
|
|
case .memberLeft: return "memberLeft"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -93,9 +93,9 @@ public final class ClosedGroupControlMessage : ControlMessage {
|
|
|
|
return !name.isEmpty
|
|
|
|
return !name.isEmpty
|
|
|
|
case .encryptionKeyPair: return true
|
|
|
|
case .encryptionKeyPair: return true
|
|
|
|
case .nameChange(let name): return !name.isEmpty
|
|
|
|
case .nameChange(let name): return !name.isEmpty
|
|
|
|
case .usersAdded(let members): return !members.isEmpty
|
|
|
|
case .membersAdded(let members): return !members.isEmpty
|
|
|
|
case .usersRemoved(let members): return !members.isEmpty
|
|
|
|
case .membersRemoved(let members): return !members.isEmpty
|
|
|
|
case .userLeft: return true
|
|
|
|
case .memberLeft: return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -121,14 +121,14 @@ public final class ClosedGroupControlMessage : ControlMessage {
|
|
|
|
case "nameChange":
|
|
|
|
case "nameChange":
|
|
|
|
guard let name = coder.decodeObject(forKey: "name") as? String else { return nil }
|
|
|
|
guard let name = coder.decodeObject(forKey: "name") as? String else { return nil }
|
|
|
|
self.kind = .nameChange(name: name)
|
|
|
|
self.kind = .nameChange(name: name)
|
|
|
|
case "usersAdded":
|
|
|
|
case "membersAdded":
|
|
|
|
guard let members = coder.decodeObject(forKey: "members") as? [Data] else { return nil }
|
|
|
|
guard let members = coder.decodeObject(forKey: "members") as? [Data] else { return nil }
|
|
|
|
self.kind = .usersAdded(members: members)
|
|
|
|
self.kind = .membersAdded(members: members)
|
|
|
|
case "usersRemoved":
|
|
|
|
case "membersRemoved":
|
|
|
|
guard let members = coder.decodeObject(forKey: "members") as? [Data] else { return nil }
|
|
|
|
guard let members = coder.decodeObject(forKey: "members") as? [Data] else { return nil }
|
|
|
|
self.kind = .usersRemoved(members: members)
|
|
|
|
self.kind = .membersRemoved(members: members)
|
|
|
|
case "userLeft":
|
|
|
|
case "memberLeft":
|
|
|
|
self.kind = .userLeft
|
|
|
|
self.kind = .memberLeft
|
|
|
|
default: return nil
|
|
|
|
default: return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -154,14 +154,14 @@ public final class ClosedGroupControlMessage : ControlMessage {
|
|
|
|
case .nameChange(let name):
|
|
|
|
case .nameChange(let name):
|
|
|
|
coder.encode("nameChange", forKey: "kind")
|
|
|
|
coder.encode("nameChange", forKey: "kind")
|
|
|
|
coder.encode(name, forKey: "name")
|
|
|
|
coder.encode(name, forKey: "name")
|
|
|
|
case .usersAdded(let members):
|
|
|
|
case .membersAdded(let members):
|
|
|
|
coder.encode("usersAdded", forKey: "kind")
|
|
|
|
coder.encode("membersAdded", forKey: "kind")
|
|
|
|
coder.encode(members, forKey: "members")
|
|
|
|
coder.encode(members, forKey: "members")
|
|
|
|
case .usersRemoved(let members):
|
|
|
|
case .membersRemoved(let members):
|
|
|
|
coder.encode("usersRemoved", forKey: "kind")
|
|
|
|
coder.encode("membersRemoved", forKey: "kind")
|
|
|
|
coder.encode(members, forKey: "members")
|
|
|
|
coder.encode(members, forKey: "members")
|
|
|
|
case .userLeft:
|
|
|
|
case .memberLeft:
|
|
|
|
coder.encode("userLeft", forKey: "kind")
|
|
|
|
coder.encode("memberLeft", forKey: "kind")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -190,12 +190,12 @@ public final class ClosedGroupControlMessage : ControlMessage {
|
|
|
|
case .nameChange:
|
|
|
|
case .nameChange:
|
|
|
|
guard let name = closedGroupControlMessageProto.name else { return nil }
|
|
|
|
guard let name = closedGroupControlMessageProto.name else { return nil }
|
|
|
|
kind = .nameChange(name: name)
|
|
|
|
kind = .nameChange(name: name)
|
|
|
|
case .usersAdded:
|
|
|
|
case .membersAdded:
|
|
|
|
kind = .usersAdded(members: closedGroupControlMessageProto.members)
|
|
|
|
kind = .membersAdded(members: closedGroupControlMessageProto.members)
|
|
|
|
case .usersRemoved:
|
|
|
|
case .membersRemoved:
|
|
|
|
kind = .usersRemoved(members: closedGroupControlMessageProto.members)
|
|
|
|
kind = .membersRemoved(members: closedGroupControlMessageProto.members)
|
|
|
|
case .userLeft:
|
|
|
|
case .memberLeft:
|
|
|
|
kind = .userLeft
|
|
|
|
kind = .memberLeft
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return ClosedGroupControlMessage(kind: kind)
|
|
|
|
return ClosedGroupControlMessage(kind: kind)
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -231,14 +231,14 @@ public final class ClosedGroupControlMessage : ControlMessage {
|
|
|
|
case .nameChange(let name):
|
|
|
|
case .nameChange(let name):
|
|
|
|
closedGroupControlMessage = SNProtoDataMessageClosedGroupControlMessage.builder(type: .nameChange)
|
|
|
|
closedGroupControlMessage = SNProtoDataMessageClosedGroupControlMessage.builder(type: .nameChange)
|
|
|
|
closedGroupControlMessage.setName(name)
|
|
|
|
closedGroupControlMessage.setName(name)
|
|
|
|
case .usersAdded(let members):
|
|
|
|
case .membersAdded(let members):
|
|
|
|
closedGroupControlMessage = SNProtoDataMessageClosedGroupControlMessage.builder(type: .usersAdded)
|
|
|
|
closedGroupControlMessage = SNProtoDataMessageClosedGroupControlMessage.builder(type: .membersAdded)
|
|
|
|
closedGroupControlMessage.setMembers(members)
|
|
|
|
closedGroupControlMessage.setMembers(members)
|
|
|
|
case .usersRemoved(let members):
|
|
|
|
case .membersRemoved(let members):
|
|
|
|
closedGroupControlMessage = SNProtoDataMessageClosedGroupControlMessage.builder(type: .usersRemoved)
|
|
|
|
closedGroupControlMessage = SNProtoDataMessageClosedGroupControlMessage.builder(type: .membersRemoved)
|
|
|
|
closedGroupControlMessage.setMembers(members)
|
|
|
|
closedGroupControlMessage.setMembers(members)
|
|
|
|
case .userLeft:
|
|
|
|
case .memberLeft:
|
|
|
|
closedGroupControlMessage = SNProtoDataMessageClosedGroupControlMessage.builder(type: .userLeft)
|
|
|
|
closedGroupControlMessage = SNProtoDataMessageClosedGroupControlMessage.builder(type: .memberLeft)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
let contentProto = SNProtoContent.builder()
|
|
|
|
let contentProto = SNProtoContent.builder()
|
|
|
|
let dataMessageProto = SNProtoDataMessage.builder()
|
|
|
|
let dataMessageProto = SNProtoDataMessage.builder()
|
|
|
|