Advertisement
Guest User

Untitled

a guest
Jul 15th, 2019
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.67 KB | None | 0 0
  1. private func getSquads() {
  2. SquadStore.shared.getSquads(type: .active) { (squads) in
  3. if let squads = squads {
  4. print("Get squads completed")
  5. if !SquadStore.shared.groupSquadsByActivity(squads: squads).active.isEmpty {
  6. self.initActiveSquadsView()
  7. self.squads = squads
  8. self.listenForSquadUpdates()
  9. } else {
  10. self.activeSquadsView.removeFromSuperview()
  11. self.squads = squads
  12. }
  13.  
  14. LocationStore.shared.updateUserLocation(for: self.squads, completion: { (success) in
  15. print(success!) // Doesnt really matter if this is true or false
  16. })
  17. } else {
  18. print("Error: loading squads [HomeVC viewDidLoad]")
  19. }
  20. }
  21. }
  22.  
  23. NotificationCenter.default.addObserver(self, selector: #selector(self.squadUpdated(notification:)), name: .squadUpdated, object: nil)
  24. NotificationCenter.default.addObserver(self, selector: #selector(self.unreadMessagesUpdated(notification:)), name: .unreadMessagesUpdated, object: nil)
  25.  
  26. private func listenForSquadUpdates() {
  27. MessageStore.shared.listenForUnreadMessagesUpdates()
  28. SquadStore.shared.listenForSquadNotifications()
  29. }
  30.  
  31. @objc func unreadMessagesUpdated(notification: Notification) {
  32. print("Unread messages updating")
  33. let squadUids = notification.userInfo as? [String: Int]
  34. var squads = Array(self.squads)
  35. var totalUnreadMsgs = 0
  36. if let squadUids = squadUids {
  37. for (squadUid, unreadMsgsCount) in squadUids {
  38. totalUnreadMsgs += unreadMsgsCount
  39. MessageStore.shared.getLastMessage(squadUid: squadUid, completion: { (lastMessage) in
  40.  
  41. if let lastMessage = lastMessage {
  42. if NSDate().timeIntervalSince1970 - lastMessage.timestamp!.timeIntervalSince1970 < 86400 {
  43. SquadStore.shared.getSquad(squadUid: squadUid) { (squad) in
  44. if let squad = squad {
  45. squad.lastMessage = lastMessage.msg
  46. squad.lastMsgTimestamp = lastMessage.timestamp
  47. SquadStore.shared.storeSquad(squad)
  48.  
  49. // Get index of squad from squadsView
  50. let indexOfSquad = self.squads?.firstIndex(where: { (squadInView) -> Bool in
  51. return squad.squadUid! == squadInView.squadUid!
  52. })
  53.  
  54. if let indexOfSquad = indexOfSquad {
  55. let squadInView = squads[indexOfSquad]
  56. squadInView.lastMessage = lastMessage.msg
  57. squadInView.lastMsgTimestamp = lastMessage.timestamp
  58. } else {
  59. self.squads.append(squad)
  60. }
  61. self.squads = SquadStore.shared.groupSquadsByActivity(squads: self.squads).active
  62. self.activeSquadsView.activeSquadsColView.reloadData()
  63. }
  64. }
  65. }
  66. }
  67. })
  68. }
  69. self.unreadLabel.text = String(totalUnreadMsgs)
  70. }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement