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.
		
		
		
		
		
			
		
			
				
	
	
		
			27 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			27 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Swift
		
	
 | 
						|
@objc public extension TSInfoMessage {
 | 
						|
    @objc(fromCallOffer:associatedWith:)
 | 
						|
    static func from(_ callMessage: CallMessage, associatedWith thread: TSThread) -> TSInfoMessage {
 | 
						|
        return callInfoMessage(from: callMessage.sender!, timestamp: callMessage.sentTimestamp!, in: thread)
 | 
						|
    }
 | 
						|
    
 | 
						|
    static func callInfoMessage(from caller: String, timestamp: UInt64, in thread: TSThread) -> TSInfoMessage {
 | 
						|
        let callState: TSInfoMessageCallState
 | 
						|
        if caller == getUserHexEncodedPublicKey() {
 | 
						|
            callState = .outgoing
 | 
						|
        } else {
 | 
						|
            callState = .incoming
 | 
						|
        }
 | 
						|
        let infoMessage = TSInfoMessage(timestamp: timestamp, in: thread, messageType: .call)
 | 
						|
        infoMessage.callState = callState
 | 
						|
        return infoMessage
 | 
						|
    }
 | 
						|
    
 | 
						|
    @objc(updateCallInfoMessageWithNewState:usingTransaction:)
 | 
						|
    func updateCallInfoMessage(_ newCallState: TSInfoMessageCallState, using transaction: YapDatabaseReadWriteTransaction) {
 | 
						|
        guard self.messageType == .call else { return }
 | 
						|
        self.callState = newCallState
 | 
						|
        self.save(with: transaction)
 | 
						|
    }
 | 
						|
}
 |