feat(ios): files sending
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
//
|
||||
// NearbyMessage.swift
|
||||
// nearby_service
|
||||
//
|
||||
// Created by Kseniia Nikitina on 4/2/24.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import MultipeerConnectivity
|
||||
|
||||
|
||||
class NearbyMessage {
|
||||
init(content: NearbyMessageContent, senderName: String, senderPeerID: MCPeerID) {
|
||||
self.content = content
|
||||
self.senderName = senderName
|
||||
self.senderPeerID = senderPeerID
|
||||
}
|
||||
|
||||
let content: NearbyMessageContent
|
||||
let senderPeerID: MCPeerID
|
||||
let senderName: String
|
||||
|
||||
static func fromUserInfo(userInfo: NearbyUserInfo)-> NearbyMessage? {
|
||||
if let jsonContent = userInfo.dictionary["content"] as? [String : Any],
|
||||
let content = NearbyMessageContent.typedFromJson(json: jsonContent),
|
||||
let name = userInfo.dictionary["name"] as? String {
|
||||
return NearbyMessage(
|
||||
content: content,
|
||||
senderName: name,
|
||||
senderPeerID: userInfo.peerID
|
||||
)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func toDictionary() -> [String: Any] {
|
||||
return [
|
||||
"name": senderName,
|
||||
"content": content.toJson()
|
||||
]
|
||||
}
|
||||
|
||||
func toDartFormat() -> String? {
|
||||
do {
|
||||
let object = [
|
||||
"sender": ["id": senderPeerID.displayName, "displayName": senderName],
|
||||
"content": content.toJson()
|
||||
]
|
||||
let jsonData = try JSONSerialization.data(withJSONObject: object)
|
||||
if let jsonString = String(data: jsonData, encoding: .utf8) {
|
||||
return jsonString
|
||||
}
|
||||
} catch let error {
|
||||
Logger.error(message: error.localizedDescription)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user