// Used to display state of the connection (i.e. connecting, connected, disconnected) when two PCs are tapped. private async void TriggeredConnectionStateChanged(object sender, TriggeredConnectionStateChangedEventArgs e) { await messageDispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { bool tapIsProcessed = false; switch (e.State) { case TriggeredConnectState.PeerFound: directions.Visibility = Visibility.Collapsed; nfcStatusText.Visibility = Visibility.Visible; foundPeers.IsEnabled = false; progressBar.Visibility = Visibility.Visible; backButton.Visibility = Visibility.Collapsed; break; case TriggeredConnectState.Completed: // Associate socket handed back by TriggeredConnectionStateChanged event with player connectedPeers. socket = new SocketReaderWriter(e.Socket, this); socket.ReadMessage(); socket.WriteMessage(string.Format("{0} {1}", Constants.OpCodeSendDisplayName, PeerFinder.DisplayName)); startGameButton.Visibility = Visibility.Visible; tapIsProcessed = true; break; case TriggeredConnectState.Failed: tapIsProcessed = true; break; } // Reset UI if (tapIsProcessed) { nfcStatusText.Visibility = Visibility.Collapsed; foundPeers.IsEnabled = true; lock (availablePeers) { if (availablePeers.Count > 0) { directions.Visibility = Visibility.Visible; } } // Progress bar should be visible as long as PeerWatcher is running progressBar.Visibility = Visibility.Collapsed; if (peerWatcher != null) { PeerWatcherStatus status = peerWatcher.Status; if (status == PeerWatcherStatus.EnumerationCompleted || status == PeerWatcherStatus.Started) { progressBar.Visibility = Visibility.Visible; } } } }); }
private void StartReading() { socket.ReadMessage(); }