From a604ef4f3c85d42e30c9071c06088a8d52aee46f Mon Sep 17 00:00:00 2001 From: Lukas Woyke <l.woyke@outlook.de> Date: Thu, 11 Feb 2021 15:28:16 +0100 Subject: [PATCH] Fix end up in spinning views during set up process. --- .../Mutiplayer/LocalTeamPlayManager.swift | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Better Together/Better Together/Mutiplayer/LocalTeamPlayManager.swift b/Better Together/Better Together/Mutiplayer/LocalTeamPlayManager.swift index b1256a2..62d9ea9 100644 --- a/Better Together/Better Together/Mutiplayer/LocalTeamPlayManager.swift +++ b/Better Together/Better Together/Mutiplayer/LocalTeamPlayManager.swift @@ -59,19 +59,19 @@ class LocalTeamPlayManager: NSObject, MCNearbyServiceAdvertiserDelegate, MCBrows let action = try decoder.decode(SessionAction.self, from: data) switch action { case .setup(.selectedLevel(let level)): - NotificationCenter.default.post(name: .levelSelectedFromHost, object: nil, userInfo: ["level": level]) + DispatchQueue.main.async{ NotificationCenter.default.post(name: .levelSelectedFromHost, object: nil, userInfo: ["level": level]) } case .setup(.responseForLevelSetting( _)): - self.delegate?.receivedLevelConfirmation(for: peerID) + DispatchQueue.main.async{ self.delegate?.receivedLevelConfirmation(for: peerID) } case .setup(.syncCharacterIndexForGameScene(let playersInfo)): - self.delegate?.syncCharacterIndexForGameScene(playersInfo: playersInfo) + DispatchQueue.main.async{ self.delegate?.syncCharacterIndexForGameScene(playersInfo: playersInfo) } case .setup(.responseForCharacterInfoSyncDone(let done)): - self.delegate?.playerSyncDoneReceived(for: peerID, isDone: done) + DispatchQueue.main.async{ self.delegate?.playerSyncDoneReceived(for: peerID, isDone: done) } case .setup(.startGame(let start)): - NotificationCenter.default.post(name: .startGame, object: nil, userInfo: ["playerInfoSync": start]) + DispatchQueue.main.async{ NotificationCenter.default.post(name: .startGame, object: nil, userInfo: ["playerInfoSync": start]) } case .setup(.gameOver(_)): NotificationCenter.default.post(name: .gameResultReceived, object: nil, userInfo: ["result": "fail"]) case .setup(.gameSceneLoaded(let isReady)): - self.delegate?.playersGameSceneLoadStateReceived(for: peerID, isReady: isReady) + DispatchQueue.main.async{ self.delegate?.playersGameSceneLoadStateReceived(for: peerID, isReady: isReady)} case .setup(.gameSuccess(_)): NotificationCenter.default.post(name: .gameResultReceived, object: nil, userInfo: ["result": "success"]) case .gamePhysics(let characterActionData): @@ -79,11 +79,15 @@ class LocalTeamPlayManager: NSObject, MCNearbyServiceAdvertiserDelegate, MCBrows case .syncAllCharacters(let syncData): delegate?.allChracterActionsReceived(charactersActions: syncData.data) case .setup(.clientsConfiguration(let config)): - let index = allPlayersPeerIDs!.firstIndex(of: peerID)! + DispatchQueue.main.async{ + let index = self.allPlayersPeerIDs!.firstIndex(of: peerID)! CharacterManager.sharedInstance.addNewConfigurationServer(config: config, for: peerID, for: index) - delegate?.receivedNewCustomization(config: config, for: peerID) + self.delegate?.receivedNewCustomization(config: config, for: peerID) + } case .setup(.dismissedInvitation(let value)): + DispatchQueue.main.async { NotificationCenter.default.post(name: .dimissedInvitationBrowserClient , object: nil, userInfo: ["value": value]) + } } } catch { debugPrint("receive - decoding error: \(error)") -- GitLab