|
@@ -686,64 +686,50 @@ public class EditorGroup: UIViewController {
|
|
|
|
|
|
@objc func onStatusChat(notification: NSNotification) {
|
|
|
DispatchQueue.main.async {
|
|
|
- if (self.viewIfLoaded?.window != nil) {
|
|
|
- let data:[AnyHashable : Any] = notification.userInfo!
|
|
|
- if let dataMessage = data["message"] as? TMessage {
|
|
|
- let idMe = UserDefaults.standard.string(forKey: "me") as String?
|
|
|
- let chatData = dataMessage.mBodies
|
|
|
- if (chatData[CoreMessage_TMessageKey.F_PIN] == idMe || chatData[CoreMessage_TMessageKey.L_PIN] == self.dataGroup["group_id"] as? String || chatData[CoreMessage_TMessageKey.F_PIN] == self.dataGroup["group_id"] as? String) && chatData[CoreMessage_TMessageKey.MESSAGE_SCOPE_ID] == "4" {
|
|
|
- if (chatData.keys.contains(CoreMessage_TMessageKey.MESSAGE_ID) && !(chatData[CoreMessage_TMessageKey.MESSAGE_ID]!).contains("-2,")) {
|
|
|
- let idx = self.dataMessages.firstIndex(where: { $0["message_id"] as! String == chatData[CoreMessage_TMessageKey.MESSAGE_ID]! })
|
|
|
- if (idx != nil) {
|
|
|
- if (chatData[CoreMessage_TMessageKey.DELETE_MESSAGE_FLAG] == "1") {
|
|
|
- self.dataMessages[idx!]["lock"] = "1"
|
|
|
- self.dataMessages[idx!]["reff_id"] = ""
|
|
|
- let section = self.dataDates.firstIndex(of: self.dataMessages[idx!]["chat_date"] as! String)
|
|
|
- let row = self.dataMessages.filter({ $0["chat_date"] as! String == self.dataMessages[idx!]["chat_date"] as! String}).firstIndex(where: { $0["message_id"] as! String == self.dataMessages[idx!]["message_id"] as! String })
|
|
|
- if row != nil && section != nil {
|
|
|
- self.tableChatView.reloadRows(at: [IndexPath(row: row!, section: section!)], with: .none)
|
|
|
- }
|
|
|
- if self.reffId != nil && self.reffId == chatData[CoreMessage_TMessageKey.MESSAGE_ID]! {
|
|
|
- self.deleteReplyView()
|
|
|
- }
|
|
|
- } else {
|
|
|
- self.dataMessages[idx!]["status"] = chatData[CoreMessage_TMessageKey.STATUS]!
|
|
|
- let section = self.dataDates.firstIndex(of: self.dataMessages[idx!]["chat_date"] as! String)
|
|
|
- let row = self.dataMessages.filter({ $0["chat_date"] as! String == self.dataMessages[idx!]["chat_date"] as! String}).firstIndex(where: { $0["message_id"] as! String == self.dataMessages[idx!]["message_id"] as! String })
|
|
|
- if row != nil && section != nil {
|
|
|
- self.tableChatView.reloadRows(at: [IndexPath(row: row!, section: section!)], with: .none)
|
|
|
- }
|
|
|
+ let data:[AnyHashable : Any] = notification.userInfo!
|
|
|
+ if let dataMessage = data["message"] as? TMessage {
|
|
|
+ let idMe = UserDefaults.standard.string(forKey: "me") as String?
|
|
|
+ let chatData = dataMessage.mBodies
|
|
|
+ if (chatData[CoreMessage_TMessageKey.F_PIN] == idMe || chatData[CoreMessage_TMessageKey.L_PIN] == self.dataGroup["group_id"] as? String || chatData[CoreMessage_TMessageKey.F_PIN] == self.dataGroup["group_id"] as? String) && chatData[CoreMessage_TMessageKey.MESSAGE_SCOPE_ID] == "4" {
|
|
|
+ if (chatData.keys.contains(CoreMessage_TMessageKey.MESSAGE_ID) && !(chatData[CoreMessage_TMessageKey.MESSAGE_ID]!).contains("-2,")) {
|
|
|
+ let idx = self.dataMessages.firstIndex(where: { $0["message_id"] as! String == chatData[CoreMessage_TMessageKey.MESSAGE_ID]! })
|
|
|
+ if (idx != nil) {
|
|
|
+ if (chatData[CoreMessage_TMessageKey.DELETE_MESSAGE_FLAG] == "1") {
|
|
|
+ self.dataMessages[idx!]["lock"] = "1"
|
|
|
+ self.dataMessages[idx!]["reff_id"] = ""
|
|
|
+ let section = self.dataDates.firstIndex(of: self.dataMessages[idx!]["chat_date"] as! String)
|
|
|
+ let row = self.dataMessages.filter({ $0["chat_date"] as! String == self.dataMessages[idx!]["chat_date"] as! String}).firstIndex(where: { $0["message_id"] as! String == self.dataMessages[idx!]["message_id"] as! String })
|
|
|
+ if row != nil && section != nil {
|
|
|
+ self.tableChatView.reloadRows(at: [IndexPath(row: row!, section: section!)], with: .none)
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
- else if (chatData.keys.contains("message_id")) {
|
|
|
- let idx = self.dataMessages.firstIndex(where: { "'\($0["message_id"] as! String)'" == chatData["message_id"]! })
|
|
|
- if (idx != nil) {
|
|
|
- if (chatData[CoreMessage_TMessageKey.DELETE_MESSAGE_FLAG] == "1") {
|
|
|
- self.dataMessages[idx!]["lock"] = "1"
|
|
|
- self.dataMessages[idx!]["reff_id"] = ""
|
|
|
- let section = self.dataDates.firstIndex(of: self.dataMessages[idx!]["chat_date"] as! String)
|
|
|
- let row = self.dataMessages.filter({ $0["chat_date"] as! String == self.dataMessages[idx!]["chat_date"] as! String}).firstIndex(where: { $0["message_id"] as! String == self.dataMessages[idx!]["message_id"] as! String })
|
|
|
- if row != nil && section != nil {
|
|
|
- self.tableChatView.reloadRows(at: [IndexPath(row: row!, section: section!)], with: .none)
|
|
|
- }
|
|
|
- if self.reffId != nil && self.reffId == chatData["message_id"]! {
|
|
|
- self.deleteReplyView()
|
|
|
- }
|
|
|
- } else {
|
|
|
- self.dataMessages[idx!]["status"] = chatData[CoreMessage_TMessageKey.STATUS]!
|
|
|
- let section = self.dataDates.firstIndex(of: self.dataMessages[idx!]["chat_date"] as! String)
|
|
|
- let row = self.dataMessages.filter({ $0["chat_date"] as! String == self.dataMessages[idx!]["chat_date"] as! String}).firstIndex(where: { $0["message_id"] as! String == self.dataMessages[idx!]["message_id"] as! String })
|
|
|
- if row != nil && section != nil {
|
|
|
- self.tableChatView.reloadRows(at: [IndexPath(row: row!, section: section!)], with: .none)
|
|
|
- }
|
|
|
+ if self.reffId != nil && self.reffId == chatData[CoreMessage_TMessageKey.MESSAGE_ID]! {
|
|
|
+ self.deleteReplyView()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ self.dataMessages[idx!]["status"] = chatData[CoreMessage_TMessageKey.STATUS]!
|
|
|
+ let section = self.dataDates.firstIndex(of: self.dataMessages[idx!]["chat_date"] as! String)
|
|
|
+ let row = self.dataMessages.filter({ $0["chat_date"] as! String == self.dataMessages[idx!]["chat_date"] as! String}).firstIndex(where: { $0["message_id"] as! String == self.dataMessages[idx!]["message_id"] as! String })
|
|
|
+ if row != nil && section != nil {
|
|
|
+ self.tableChatView.reloadRows(at: [IndexPath(row: row!, section: section!)], with: .none)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- else {
|
|
|
- let messageId = chatData[CoreMessage_TMessageKey.MESSAGE_ID]!.split(separator: ",")[1]
|
|
|
- let idx = self.dataMessages.firstIndex(where: { $0["message_id"] as! String == messageId })
|
|
|
- if (idx != nil) {
|
|
|
+ }
|
|
|
+ else if (chatData.keys.contains("message_id")) {
|
|
|
+ let idx = self.dataMessages.firstIndex(where: { "'\($0["message_id"] as! String)'" == chatData["message_id"]! })
|
|
|
+ if (idx != nil) {
|
|
|
+ if (chatData[CoreMessage_TMessageKey.DELETE_MESSAGE_FLAG] == "1") {
|
|
|
+ self.dataMessages[idx!]["lock"] = "1"
|
|
|
+ self.dataMessages[idx!]["reff_id"] = ""
|
|
|
+ let section = self.dataDates.firstIndex(of: self.dataMessages[idx!]["chat_date"] as! String)
|
|
|
+ let row = self.dataMessages.filter({ $0["chat_date"] as! String == self.dataMessages[idx!]["chat_date"] as! String}).firstIndex(where: { $0["message_id"] as! String == self.dataMessages[idx!]["message_id"] as! String })
|
|
|
+ if row != nil && section != nil {
|
|
|
+ self.tableChatView.reloadRows(at: [IndexPath(row: row!, section: section!)], with: .none)
|
|
|
+ }
|
|
|
+ if self.reffId != nil && self.reffId == chatData["message_id"]! {
|
|
|
+ self.deleteReplyView()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
self.dataMessages[idx!]["status"] = chatData[CoreMessage_TMessageKey.STATUS]!
|
|
|
let section = self.dataDates.firstIndex(of: self.dataMessages[idx!]["chat_date"] as! String)
|
|
|
let row = self.dataMessages.filter({ $0["chat_date"] as! String == self.dataMessages[idx!]["chat_date"] as! String}).firstIndex(where: { $0["message_id"] as! String == self.dataMessages[idx!]["message_id"] as! String })
|
|
@@ -753,6 +739,18 @@ public class EditorGroup: UIViewController {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ else {
|
|
|
+ let messageId = chatData[CoreMessage_TMessageKey.MESSAGE_ID]!.split(separator: ",")[1]
|
|
|
+ let idx = self.dataMessages.firstIndex(where: { $0["message_id"] as! String == messageId })
|
|
|
+ if (idx != nil) {
|
|
|
+ self.dataMessages[idx!]["status"] = chatData[CoreMessage_TMessageKey.STATUS]!
|
|
|
+ let section = self.dataDates.firstIndex(of: self.dataMessages[idx!]["chat_date"] as! String)
|
|
|
+ let row = self.dataMessages.filter({ $0["chat_date"] as! String == self.dataMessages[idx!]["chat_date"] as! String}).firstIndex(where: { $0["message_id"] as! String == self.dataMessages[idx!]["message_id"] as! String })
|
|
|
+ if row != nil && section != nil {
|
|
|
+ self.tableChatView.reloadRows(at: [IndexPath(row: row!, section: section!)], with: .none)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|