|
@@ -146,6 +146,8 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ tableChatView.register(UITableViewCell.self, forCellReuseIdentifier: "cellEditorPersonal")
|
|
|
+
|
|
|
loadData()
|
|
|
setRightButtonItem()
|
|
|
|
|
@@ -746,7 +748,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- row["chat_date"] = chatDate(stringDate: row["server_date"] as! String, messageId: row["message_id"] as! String)
|
|
|
+ row["chat_date"] = chatDate(stringDate: row["server_date"] as! String)
|
|
|
row["isSelected"] = false
|
|
|
dataMessages.append(row)
|
|
|
}
|
|
@@ -755,7 +757,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
|
|
|
})
|
|
|
}
|
|
|
|
|
|
- func chatDate(stringDate: String, messageId: String) -> String {
|
|
|
+ func chatDate(stringDate: String) -> String {
|
|
|
let date = Date(milliseconds: Int64(stringDate)!)
|
|
|
let calendar = Calendar.current
|
|
|
if (calendar.isDateInToday(date)) {
|
|
@@ -1747,7 +1749,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
|
|
|
row["f_pin"] = idMe
|
|
|
row["l_pin"] = dataPerson["f_pin"]!!
|
|
|
row["message_scope_id"] = message_scope_id
|
|
|
- row["server_date"] = "\(Date().millisecondsSince1970)"
|
|
|
+ row["server_date"] = "\(Date().currentTimeMillis())"
|
|
|
row["status"] = status
|
|
|
row["message_text"] = message_text
|
|
|
row["audio_id"] = audio_id
|
|
@@ -2280,7 +2282,7 @@ extension EditorPersonal: UIDocumentPickerDelegate, DocumentPickerDelegate, QLPr
|
|
|
let urlFile = self.previewItem?.absoluteString
|
|
|
var originaFileName = (urlFile! as NSString).lastPathComponent
|
|
|
originaFileName = NSString(string: originaFileName).removingPercentEncoding!
|
|
|
- let renamedNameFile = "Qmera_doc_" + "\(Date().millisecondsSince1970)_" + originaFileName
|
|
|
+ let renamedNameFile = "Qmera_doc_" + "\(Date().currentTimeMillis())_" + originaFileName
|
|
|
let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
|
|
|
let fileURL = documentsDirectory.appendingPathComponent(renamedNameFile)
|
|
|
if !FileManager.default.fileExists(atPath: fileURL.path) {
|
|
@@ -2687,6 +2689,11 @@ extension EditorPersonal: UIContextMenuInteractionDelegate {
|
|
|
self.tableChatView.reloadData()
|
|
|
}
|
|
|
})
|
|
|
+ let info = UIAction(title: "Info".localized(), image: UIImage(systemName: "info.circle.fill"), handler: {(_) in
|
|
|
+ let messageInfoVC = MessageInfo()
|
|
|
+ messageInfoVC.data = dataMessages[indexPath!.row]
|
|
|
+ self.navigationController?.pushViewController(messageInfoVC, animated: true)
|
|
|
+ })
|
|
|
let delete = UIAction(title: "Delete".localized(), image: UIImage(systemName: "trash.fill"), attributes: .destructive, handler: {(_) in
|
|
|
self.deleteSession = true
|
|
|
if self.reffId != nil {
|
|
@@ -2713,7 +2720,7 @@ extension EditorPersonal: UIContextMenuInteractionDelegate {
|
|
|
|
|
|
var children: [UIMenuElement] = [star, reply, forward, copy, delete]
|
|
|
// let copyOption = self.copyOption(indexPath: indexPath!)
|
|
|
-
|
|
|
+ let idMe = UserDefaults.standard.string(forKey: "me") as String?
|
|
|
if isContactCenter {
|
|
|
children = [reply, copy]
|
|
|
} else if (dataMessages[indexPath!.row]["lock"] != nil && dataMessages[indexPath!.row]["lock"] as! String == "1") || dataMessages[indexPath!.row]["message_scope_id"] as! String == "18" || dataPerson["f_pin"] == "-999" {
|
|
@@ -2723,9 +2730,19 @@ extension EditorPersonal: UIContextMenuInteractionDelegate {
|
|
|
if !(dataMessages[indexPath!.row]["image_id"] as! String).isEmpty || !(dataMessages[indexPath!.row]["video_id"] as! String).isEmpty {
|
|
|
children = [star, forward ,delete]
|
|
|
}
|
|
|
+ if (dataMessages[indexPath!.row]["f_pin"] as! String) == idMe {
|
|
|
+ children.insert(info, at: children.count - 1)
|
|
|
+ }
|
|
|
}
|
|
|
else if !(dataMessages[indexPath!.row]["image_id"] as! String).isEmpty || !(dataMessages[indexPath!.row]["video_id"] as! String).isEmpty || !(dataMessages[indexPath!.row]["file_id"] as! String).isEmpty || dataMessages[indexPath!.row]["attachment_flag"] as! String == "11" {
|
|
|
children = [star, reply, forward ,delete]
|
|
|
+ if (dataMessages[indexPath!.row]["f_pin"] as! String) == idMe {
|
|
|
+ children.insert(info, at: children.count - 1)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (dataMessages[indexPath!.row]["f_pin"] as! String) == idMe {
|
|
|
+ children.insert(info, at: children.count - 1)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return UIContextMenuConfiguration(identifier: nil,
|
|
@@ -3276,10 +3293,10 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
|
|
|
let idMe = UserDefaults.standard.string(forKey: "me") as String?
|
|
|
let dataMessages = dataMessages.filter({$0["chat_date"] as! String == dataDates[indexPath.section]})
|
|
|
let profileMessage = UIImageView()
|
|
|
+ let cell = tableView.dequeueReusableCell(withIdentifier: "cellEditorPersonal", for: indexPath as IndexPath)
|
|
|
|
|
|
if isContactCenter && isRequestContactCenter && dataMessages[indexPath.row]["category_cc"] != nil {
|
|
|
|
|
|
- let cell = UITableViewCell()
|
|
|
cell.backgroundColor = .clear
|
|
|
cell.selectionStyle = .none
|
|
|
|
|
@@ -3445,23 +3462,22 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
|
|
|
let fileChat = (dataMessages[indexPath.row]["file_id"] as? String) ?? ""
|
|
|
let reffChat = (dataMessages[indexPath.row]["reff_id"] as? String) ?? ""
|
|
|
|
|
|
- let cellMessage = UITableViewCell()
|
|
|
- cellMessage.backgroundColor = .clear
|
|
|
- cellMessage.selectionStyle = .none
|
|
|
+ cell.backgroundColor = .clear
|
|
|
+ cell.selectionStyle = .none
|
|
|
let nameSender = UILabel()
|
|
|
|
|
|
if isContactCenter {
|
|
|
profileMessage.frame.size = CGSize(width: 35, height: 35)
|
|
|
- cellMessage.contentView.addSubview(profileMessage)
|
|
|
+ cell.contentView.addSubview(profileMessage)
|
|
|
profileMessage.translatesAutoresizingMaskIntoConstraints = false
|
|
|
- profileMessage.topAnchor.constraint(equalTo: cellMessage.contentView.topAnchor, constant: 5).isActive = true
|
|
|
+ profileMessage.topAnchor.constraint(equalTo: cell.contentView.topAnchor, constant: 5).isActive = true
|
|
|
if (dataMessages[indexPath.row]["f_pin"] as? String == idMe) {
|
|
|
- profileMessage.trailingAnchor.constraint(equalTo: cellMessage.contentView.trailingAnchor, constant: -15).isActive = true
|
|
|
+ profileMessage.trailingAnchor.constraint(equalTo: cell.contentView.trailingAnchor, constant: -15).isActive = true
|
|
|
} else {
|
|
|
if copySession || forwardSession || deleteSession {
|
|
|
- profileMessage.leadingAnchor.constraint(equalTo: cellMessage.contentView.leadingAnchor, constant: 50).isActive = true
|
|
|
+ profileMessage.leadingAnchor.constraint(equalTo: cell.contentView.leadingAnchor, constant: 50).isActive = true
|
|
|
} else {
|
|
|
- profileMessage.leadingAnchor.constraint(equalTo: cellMessage.contentView.leadingAnchor, constant: 15).isActive = true
|
|
|
+ profileMessage.leadingAnchor.constraint(equalTo: cell.contentView.leadingAnchor, constant: 15).isActive = true
|
|
|
}
|
|
|
}
|
|
|
profileMessage.heightAnchor.constraint(equalToConstant: 37).isActive = true
|
|
@@ -3478,12 +3494,12 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
|
|
|
}
|
|
|
profileMessage.contentMode = .scaleAspectFill
|
|
|
|
|
|
- cellMessage.contentView.addSubview(nameSender)
|
|
|
+ cell.contentView.addSubview(nameSender)
|
|
|
nameSender.translatesAutoresizingMaskIntoConstraints = false
|
|
|
if markerCounter != nil && dataMessages[indexPath.row]["message_id"] as? String == markerCounter {
|
|
|
- nameSender.topAnchor.constraint(equalTo: cellMessage.contentView.topAnchor, constant: 35).isActive = true
|
|
|
+ nameSender.topAnchor.constraint(equalTo: cell.contentView.topAnchor, constant: 35).isActive = true
|
|
|
} else {
|
|
|
- nameSender.topAnchor.constraint(equalTo: cellMessage.contentView.topAnchor, constant: 5).isActive = true
|
|
|
+ nameSender.topAnchor.constraint(equalTo: cell.contentView.topAnchor, constant: 5).isActive = true
|
|
|
}
|
|
|
nameSender.font = UIFont.systemFont(ofSize: 12, weight: UIFont.Weight(800))
|
|
|
nameSender.text = user?.fullName ?? ""
|
|
@@ -3503,16 +3519,16 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
|
|
|
containerMessage.addInteraction(interaction)
|
|
|
containerMessage.isUserInteractionEnabled = true
|
|
|
}
|
|
|
- cellMessage.contentView.addSubview(containerMessage)
|
|
|
+ cell.contentView.addSubview(containerMessage)
|
|
|
containerMessage.translatesAutoresizingMaskIntoConstraints = false
|
|
|
|
|
|
let timeMessage = UILabel()
|
|
|
- cellMessage.contentView.addSubview(timeMessage)
|
|
|
+ cell.contentView.addSubview(timeMessage)
|
|
|
timeMessage.translatesAutoresizingMaskIntoConstraints = false
|
|
|
if (dataMessages[indexPath.row]["read_receipts"] as? String) == "8" {
|
|
|
- timeMessage.bottomAnchor.constraint(equalTo: cellMessage.contentView.bottomAnchor, constant: -40).isActive = true
|
|
|
+ timeMessage.bottomAnchor.constraint(equalTo: cell.contentView.bottomAnchor, constant: -40).isActive = true
|
|
|
} else {
|
|
|
- timeMessage.bottomAnchor.constraint(equalTo: cellMessage.contentView.bottomAnchor, constant: -5).isActive = true
|
|
|
+ timeMessage.bottomAnchor.constraint(equalTo: cell.contentView.bottomAnchor, constant: -5).isActive = true
|
|
|
}
|
|
|
|
|
|
let statusMessage = UIImageView()
|
|
@@ -3539,18 +3555,18 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
|
|
|
}
|
|
|
if showSelectedImage {
|
|
|
let selectedImage = UIImageView()
|
|
|
- cellMessage.contentView.addSubview(selectedImage)
|
|
|
+ cell.contentView.addSubview(selectedImage)
|
|
|
selectedImage.translatesAutoresizingMaskIntoConstraints = false
|
|
|
selectedImage.frame.size = CGSize(width: 20, height: 20)
|
|
|
- var leading = selectedImage.leadingAnchor.constraint(equalTo: cellMessage.contentView.leadingAnchor, constant: -20)
|
|
|
+ var leading = selectedImage.leadingAnchor.constraint(equalTo: cell.contentView.leadingAnchor, constant: -20)
|
|
|
selectedImage.isHidden = true
|
|
|
if copySession || forwardSession || deleteSession {
|
|
|
- leading = selectedImage.leadingAnchor.constraint(equalTo: cellMessage.contentView.leadingAnchor, constant: 15)
|
|
|
+ leading = selectedImage.leadingAnchor.constraint(equalTo: cell.contentView.leadingAnchor, constant: 15)
|
|
|
selectedImage.isHidden = false
|
|
|
}
|
|
|
NSLayoutConstraint.activate([
|
|
|
leading,
|
|
|
- selectedImage.centerYAnchor.constraint(equalTo: cellMessage.contentView.centerYAnchor),
|
|
|
+ selectedImage.centerYAnchor.constraint(equalTo: cell.contentView.centerYAnchor),
|
|
|
selectedImage.widthAnchor.constraint(equalToConstant: 20),
|
|
|
selectedImage.heightAnchor.constraint(equalToConstant: 20)
|
|
|
])
|
|
@@ -3565,18 +3581,18 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
|
|
|
}
|
|
|
|
|
|
if (dataMessages[indexPath.row]["f_pin"] as? String == idMe) {
|
|
|
- containerMessage.leadingAnchor.constraint(greaterThanOrEqualTo: cellMessage.contentView.leadingAnchor, constant: 60).isActive = true
|
|
|
+ containerMessage.leadingAnchor.constraint(greaterThanOrEqualTo: cell.contentView.leadingAnchor, constant: 60).isActive = true
|
|
|
if (dataMessages[indexPath.row]["read_receipts"] as? String) == "8" {
|
|
|
- containerMessage.bottomAnchor.constraint(equalTo: cellMessage.contentView.bottomAnchor, constant: -40).isActive = true
|
|
|
+ containerMessage.bottomAnchor.constraint(equalTo: cell.contentView.bottomAnchor, constant: -40).isActive = true
|
|
|
} else {
|
|
|
- containerMessage.bottomAnchor.constraint(equalTo: cellMessage.contentView.bottomAnchor, constant: -5).isActive = true
|
|
|
+ containerMessage.bottomAnchor.constraint(equalTo: cell.contentView.bottomAnchor, constant: -5).isActive = true
|
|
|
}
|
|
|
if isContactCenter {
|
|
|
containerMessage.topAnchor.constraint(equalTo: nameSender.bottomAnchor).isActive = true
|
|
|
containerMessage.trailingAnchor.constraint(equalTo: profileMessage.leadingAnchor, constant: -5).isActive = true
|
|
|
} else {
|
|
|
- containerMessage.topAnchor.constraint(equalTo: cellMessage.contentView.topAnchor, constant: 5).isActive = true
|
|
|
- containerMessage.trailingAnchor.constraint(equalTo: cellMessage.contentView.trailingAnchor, constant: -15).isActive = true
|
|
|
+ containerMessage.topAnchor.constraint(equalTo: cell.contentView.topAnchor, constant: 5).isActive = true
|
|
|
+ containerMessage.trailingAnchor.constraint(equalTo: cell.contentView.trailingAnchor, constant: -15).isActive = true
|
|
|
}
|
|
|
containerMessage.widthAnchor.constraint(greaterThanOrEqualToConstant: 46).isActive = true
|
|
|
if (dataMessages[indexPath.row]["attachment_flag"] as? String == "11" && dataMessages[indexPath.row]["reff_id"]as? String == "") {
|
|
@@ -3591,7 +3607,7 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
|
|
|
timeMessage.trailingAnchor.constraint(equalTo: containerMessage.leadingAnchor, constant: -8).isActive = true
|
|
|
|
|
|
if dataMessages[indexPath.row]["lock"] == nil || dataMessages[indexPath.row]["lock"] as! String == "0" {
|
|
|
- cellMessage.contentView.addSubview(statusMessage)
|
|
|
+ cell.contentView.addSubview(statusMessage)
|
|
|
statusMessage.translatesAutoresizingMaskIntoConstraints = false
|
|
|
statusMessage.bottomAnchor.constraint(equalTo: timeMessage.topAnchor).isActive = true
|
|
|
statusMessage.trailingAnchor.constraint(equalTo: containerMessage.leadingAnchor, constant: -8).isActive = true
|
|
@@ -3613,16 +3629,16 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
|
|
|
if isContactCenter {
|
|
|
containerMessage.topAnchor.constraint(equalTo: nameSender.bottomAnchor).isActive = true
|
|
|
} else {
|
|
|
- containerMessage.topAnchor.constraint(equalTo: cellMessage.contentView.topAnchor, constant: 35).isActive = true
|
|
|
+ containerMessage.topAnchor.constraint(equalTo: cell.contentView.topAnchor, constant: 35).isActive = true
|
|
|
}
|
|
|
|
|
|
let newMessagesView = UIView()
|
|
|
- cellMessage.contentView.addSubview(newMessagesView)
|
|
|
+ cell.contentView.addSubview(newMessagesView)
|
|
|
newMessagesView.translatesAutoresizingMaskIntoConstraints = false
|
|
|
NSLayoutConstraint.activate([
|
|
|
newMessagesView.topAnchor.constraint(equalTo: newMessagesView.topAnchor),
|
|
|
newMessagesView.bottomAnchor.constraint(equalTo: containerMessage.topAnchor),
|
|
|
- newMessagesView.centerXAnchor.constraint(equalTo: cellMessage.contentView.centerXAnchor),
|
|
|
+ newMessagesView.centerXAnchor.constraint(equalTo: cell.contentView.centerXAnchor),
|
|
|
newMessagesView.heightAnchor.constraint(equalToConstant: 30),
|
|
|
newMessagesView.widthAnchor.constraint(greaterThanOrEqualToConstant: 60)
|
|
|
])
|
|
@@ -3648,24 +3664,24 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
|
|
|
if isContactCenter {
|
|
|
containerMessage.topAnchor.constraint(equalTo: nameSender.bottomAnchor).isActive = true
|
|
|
} else {
|
|
|
- containerMessage.topAnchor.constraint(equalTo: cellMessage.contentView.topAnchor, constant: 5).isActive = true
|
|
|
+ containerMessage.topAnchor.constraint(equalTo: cell.contentView.topAnchor, constant: 5).isActive = true
|
|
|
}
|
|
|
}
|
|
|
if isContactCenter {
|
|
|
containerMessage.leadingAnchor.constraint(equalTo: profileMessage.trailingAnchor, constant: 5).isActive = true
|
|
|
} else {
|
|
|
if copySession || forwardSession || deleteSession {
|
|
|
- containerMessage.leadingAnchor.constraint(equalTo: cellMessage.contentView.leadingAnchor, constant: 50).isActive = true
|
|
|
+ containerMessage.leadingAnchor.constraint(equalTo: cell.contentView.leadingAnchor, constant: 50).isActive = true
|
|
|
} else {
|
|
|
- containerMessage.leadingAnchor.constraint(equalTo: cellMessage.contentView.leadingAnchor, constant: 15).isActive = true
|
|
|
+ containerMessage.leadingAnchor.constraint(equalTo: cell.contentView.leadingAnchor, constant: 15).isActive = true
|
|
|
}
|
|
|
}
|
|
|
if (dataMessages[indexPath.row]["read_receipts"] as? String) == "8" {
|
|
|
- containerMessage.bottomAnchor.constraint(equalTo: cellMessage.contentView.bottomAnchor, constant: -40).isActive = true
|
|
|
+ containerMessage.bottomAnchor.constraint(equalTo: cell.contentView.bottomAnchor, constant: -40).isActive = true
|
|
|
} else {
|
|
|
- containerMessage.bottomAnchor.constraint(equalTo: cellMessage.contentView.bottomAnchor, constant: -5).isActive = true
|
|
|
+ containerMessage.bottomAnchor.constraint(equalTo: cell.contentView.bottomAnchor, constant: -5).isActive = true
|
|
|
}
|
|
|
- containerMessage.trailingAnchor.constraint(lessThanOrEqualTo: cellMessage.contentView.trailingAnchor, constant: -60).isActive = true
|
|
|
+ containerMessage.trailingAnchor.constraint(lessThanOrEqualTo: cell.contentView.trailingAnchor, constant: -60).isActive = true
|
|
|
containerMessage.widthAnchor.constraint(greaterThanOrEqualToConstant: 46).isActive = true
|
|
|
if dataMessages[indexPath.row]["attachment_flag"] as? String == "11" && dataMessages[indexPath.row]["reff_id"]as? String == "" && (dataMessages[indexPath.row]["lock"] == nil || dataMessages[indexPath.row]["lock"] as! String != "1") {
|
|
|
containerMessage.backgroundColor = .clear
|
|
@@ -3681,7 +3697,7 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
|
|
|
|
|
|
if dataMessages[indexPath.row]["is_stared"] as? String == "1" && (dataMessages[indexPath.row]["lock"] == nil || dataMessages[indexPath.row]["lock"] as! String == "0") {
|
|
|
let imageStared = UIImageView()
|
|
|
- cellMessage.contentView.addSubview(imageStared)
|
|
|
+ cell.contentView.addSubview(imageStared)
|
|
|
imageStared.translatesAutoresizingMaskIntoConstraints = false
|
|
|
if (dataMessages[indexPath.row]["f_pin"] as? String == idMe) {
|
|
|
imageStared.bottomAnchor.constraint(equalTo: statusMessage.topAnchor).isActive = true
|
|
@@ -3704,7 +3720,7 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
|
|
|
imageAck = UIImage(named: "ack_icon", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!.withRenderingMode(.alwaysOriginal)
|
|
|
}
|
|
|
imageAckView.image = imageAck
|
|
|
- cellMessage.contentView.addSubview(imageAckView)
|
|
|
+ cell.contentView.addSubview(imageAckView)
|
|
|
imageAckView.translatesAutoresizingMaskIntoConstraints = false
|
|
|
imageAckView.widthAnchor.constraint(equalToConstant: 30).isActive = true
|
|
|
imageAckView.heightAnchor.constraint(equalToConstant: 30).isActive = true
|
|
@@ -4231,7 +4247,7 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
|
|
|
// let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(panGestureCellAction))
|
|
|
// panGestureRecognizer.delegate = self
|
|
|
// cellMessage.addGestureRecognizer(panGestureRecognizer)
|
|
|
- return cellMessage
|
|
|
+ return cell
|
|
|
}
|
|
|
|
|
|
@objc func tapAck(_ sender: ObjectGesture) {
|
|
@@ -4248,7 +4264,7 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
|
|
|
return
|
|
|
}
|
|
|
DispatchQueue.global().async {
|
|
|
- let result = Nexilis.write(message: CoreMessage_TMessageBank.getAckLocationMessage(f_pin: dataMessages[indexPath.row]["f_pin"] as! String, message_id: dataMessages[indexPath.row]["message_id"] as! String, l_pin: dataMessages[indexPath.row]["l_pin"] as! String, server_date: "\(Date().millisecondsSince1970)", message_scope_id: dataMessages[indexPath.row]["message_scope_id"] as! String, longitude: "", latitude: "", description: ""))
|
|
|
+ let result = Nexilis.write(message: CoreMessage_TMessageBank.getAckLocationMessage(f_pin: dataMessages[indexPath.row]["f_pin"] as! String, message_id: dataMessages[indexPath.row]["message_id"] as! String, l_pin: dataMessages[indexPath.row]["l_pin"] as! String, server_date: "\(Date().currentTimeMillis())", message_scope_id: dataMessages[indexPath.row]["message_scope_id"] as! String, longitude: "", latitude: "", description: ""))
|
|
|
if result != nil {
|
|
|
Database.shared.database?.inTransaction({ (fmdb, rollback) in
|
|
|
_ = Database.shared.updateRecord(fmdb: fmdb, table: "MESSAGE", cvalues: [
|