mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Swift
		
	
| 
 | |
| @objc(SNOpenGroup)
 | |
| public final class OpenGroup : NSObject, NSCoding {
 | |
|     @objc public let id: String
 | |
|     @objc public let idAsData: Data
 | |
|     @objc public let channel: UInt64
 | |
|     @objc public let server: String
 | |
|     @objc public let displayName: String
 | |
|     @objc public let isDeletable: Bool
 | |
|     
 | |
|     @objc public init?(channel: UInt64, server: String, displayName: String, isDeletable: Bool) {
 | |
|         let id = "\(server).\(channel)"
 | |
|         self.id = id
 | |
|         guard let idAsData = id.data(using: .utf8) else { return nil }
 | |
|         self.idAsData = idAsData
 | |
|         self.channel = channel
 | |
|         self.server = server.lowercased()
 | |
|         self.displayName = displayName
 | |
|         self.isDeletable = isDeletable
 | |
|     }
 | |
|     
 | |
|     // MARK: Coding
 | |
|     @objc public init?(coder: NSCoder) {
 | |
|         channel = UInt64(coder.decodeInt64(forKey: "channel"))
 | |
|         server = coder.decodeObject(forKey: "server") as! String
 | |
|         let id = "\(server).\(channel)"
 | |
|         self.id = id
 | |
|         guard let idAsData = id.data(using: .utf8) else { return nil }
 | |
|         self.idAsData = idAsData
 | |
|         displayName = coder.decodeObject(forKey: "displayName") as! String
 | |
|         isDeletable = coder.decodeBool(forKey: "isDeletable")
 | |
|         super.init()
 | |
|     }
 | |
| 
 | |
|    @objc public func encode(with coder: NSCoder) {
 | |
|         coder.encode(Int64(channel), forKey: "channel")
 | |
|         coder.encode(server, forKey: "server")
 | |
|         coder.encode(displayName, forKey: "displayName")
 | |
|         coder.encode(isDeletable, forKey: "isDeletable")
 | |
|     }
 | |
|     
 | |
|     override public var description: String { "\(displayName) (\(server))" }
 | |
| }
 |