Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (_ options: UNNotificationPresentationOptions) -> Void) {
- let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
- let messageVC = mainStoryboard.instantiateViewController(withIdentifier: "messageVC") as! messagesViewController
- if let incomingMessageSenderId = notification.request.content.userInfo["User_ID"] as? NSString {
- incomingMsgSenderId = String(incomingMessageSenderId)
- }
- if let message = notification.request.content.userInfo["Message"] as? String {
- msg = String(message)
- }
- DispatchQueue.main.async {
- messageVC.checkForMessages(id: incomingMsgSenderId)
- }
- }
- func checkForMessages(id: String) {
- messages.removeAll()
- let context : NSManagedObjectContext = appDel.managedObjectContext
- let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Nd_conversation")
- request.returnsObjectsAsFaults = false
- request.predicate = NSPredicate(format: "to_user_id = %@", id)
- do {
- let results = try context.fetch(request)
- if results.count > 0 {
- for result in results as! [NSManagedObject] {
- let conversation_id = result.value(forKey: "id")
- let request2 = NSFetchRequest<NSFetchRequestResult> (entityName: "Nd_chat")
- request2.returnsObjectsAsFaults = false
- request2.predicate = NSPredicate(format: "conversation_id = %@", conversation_id! as! CVarArg)
- do {
- let results2 = try context.fetch(request2)
- if results2.count > 0 {
- for result2 in results2 as! [NSManagedObject] {
- if let body = result2.value(forKey: "message_body") as? String {
- loadedMessages.append(body)
- if let sender_id = result2.value(forKey: "sender_id") as? Int {
- let sent_id = String(sender_id)
- print("Sender id: (sent_id)")
- senderIds.append(sender_id)
- self.addMessage(sent_id, text: body)
- self.finishSendingMessage(animated: true)
- }
- }
- else if let imageData = result2.value(forKey: "media_path") as? NSData{
- //photo
- let image = UIImage(data: imageData as Data)
- let photoItem = JSQPhotoMediaItem(image: image)
- if let sender_id = result2.value(forKey: "sender_id") as? Int {
- let photoMessage = JSQMessage(senderId: String(sender_id), displayName: self.senderDisplayName, media: photoItem)
- messages.append(photoMessage!)
- self.finishSendingMessage(animated: true)
- }
- }
- }
- }
- }
- }
- }
- extension Notification.Name {
- static let reload = Notification.Name("reload")
- }
- NotificationCenter.default.post(name: .reload, object: nil)
- override func viewDidLoad() {
- super.viewDidLoad()
- NotificationCenter.default.addObserver(self, selector:#selector(reloadTableData(_:)), name: .reload, object: nil)
- }
- func reloadTableData(_ notification: Notification) {
- tableView.reloadData()
- }
Add Comment
Please, Sign In to add comment