Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private func getSquads() {
- SquadStore.shared.getSquads(type: .active) { (squads) in
- if let squads = squads {
- print("Get squads completed")
- if !SquadStore.shared.groupSquadsByActivity(squads: squads).active.isEmpty {
- self.initActiveSquadsView()
- self.squads = squads
- self.listenForSquadUpdates()
- } else {
- self.activeSquadsView.removeFromSuperview()
- self.squads = squads
- }
- LocationStore.shared.updateUserLocation(for: self.squads, completion: { (success) in
- print(success!) // Doesnt really matter if this is true or false
- })
- } else {
- print("Error: loading squads [HomeVC viewDidLoad]")
- }
- }
- }
- NotificationCenter.default.addObserver(self, selector: #selector(self.squadUpdated(notification:)), name: .squadUpdated, object: nil)
- NotificationCenter.default.addObserver(self, selector: #selector(self.unreadMessagesUpdated(notification:)), name: .unreadMessagesUpdated, object: nil)
- private func listenForSquadUpdates() {
- MessageStore.shared.listenForUnreadMessagesUpdates()
- SquadStore.shared.listenForSquadNotifications()
- }
- @objc func unreadMessagesUpdated(notification: Notification) {
- print("Unread messages updating")
- let squadUids = notification.userInfo as? [String: Int]
- var squads = Array(self.squads)
- var totalUnreadMsgs = 0
- if let squadUids = squadUids {
- for (squadUid, unreadMsgsCount) in squadUids {
- totalUnreadMsgs += unreadMsgsCount
- MessageStore.shared.getLastMessage(squadUid: squadUid, completion: { (lastMessage) in
- if let lastMessage = lastMessage {
- if NSDate().timeIntervalSince1970 - lastMessage.timestamp!.timeIntervalSince1970 < 86400 {
- SquadStore.shared.getSquad(squadUid: squadUid) { (squad) in
- if let squad = squad {
- squad.lastMessage = lastMessage.msg
- squad.lastMsgTimestamp = lastMessage.timestamp
- SquadStore.shared.storeSquad(squad)
- // Get index of squad from squadsView
- let indexOfSquad = self.squads?.firstIndex(where: { (squadInView) -> Bool in
- return squad.squadUid! == squadInView.squadUid!
- })
- if let indexOfSquad = indexOfSquad {
- let squadInView = squads[indexOfSquad]
- squadInView.lastMessage = lastMessage.msg
- squadInView.lastMsgTimestamp = lastMessage.timestamp
- } else {
- self.squads.append(squad)
- }
- self.squads = SquadStore.shared.groupSquadsByActivity(squads: self.squads).active
- self.activeSquadsView.activeSquadsColView.reloadData()
- }
- }
- }
- }
- })
- }
- self.unreadLabel.text = String(totalUnreadMsgs)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement