private async void PromptConnect(string url, bool isConnect) { var newSource = new CancellationTokenSource(15000); var oldSource = Interlocked.Exchange(ref this.clipboardCampaignCancel, newSource); oldSource?.Cancel(); var client = await App.Services.GetServiceAsync <ILiveCampaignClient> (); try { Task <RemoteCampaign> campaignTask = client.GetCampaignDetailsAsync(new Uri(url), newSource.Token); var campaigns = await App.Services.GetServiceAsync <CampaignManager> (); var campaign = await campaignTask; if (campaign == null || campaigns.Elements.Any(c => c.Id == campaign.id.ToString())) { return; } if (!isConnect) { FlyoutService.PushFlyout("CampaignConnectFlyout", new JoinCampaignRequestViewModel(campaign)); } } catch (OperationCanceledException) { } }
private void OnPairServiceResult(PairServiceResultMessage msg) { // TODO: Localize if (msg.Exception == null) { FlyoutService.ShowMessage($"{msg.Service.DisplayName} paired successfully.", "\xE73E"); } else { FlyoutService.ShowMessage($"{msg.Service.DisplayName} failed to pair: {msg.Exception.Message}", "\xE783"); } }
private async void OnServiceDiscovered(ServiceDiscoveredMesage msg) { var playspaceManager = await this.serviceProvider.GetServiceAsync <PlaySpaceManager> (); bool isEnabled = await playspaceManager.TryRestoreServiceAsync(msg.Service); if (isEnabled) { return; } await this.rootFrame.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Low, () => { FlyoutService.PushFlyout("ServiceAvailableFlyout", new EnableServiceRequestViewModel(msg.Service)); }); }
public MainPage() { InitializeComponent(); SetupDataContext(App.Services); SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested; Window.Current.CoreWindow.PointerPressed += OnPointerPressed; Window.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated += OnAcceleratorKeyActivated; Messenger.Default.Register <RequestJoinCampaignPromptMessage> (this, async rj => { var join = new JoinCampaignDialog(); await join.ShowAsync(); }); Messenger.Default.Register <RequestCreateCampaignPromptMessage> (this, async rc => { var create = new CreateCampaignDialog(); await create.ShowAsync(); }); Messenger.Default.Register <CampaignDisconnectedMessage> (this, cd => { FlyoutService.PushFlyout("LostConnectionFlyout", null); }); Messenger.Default.Register <CampaignReconnectedMessage> (this, cr => { FlyoutService.SwapFlyout("LostConnectionFlyout", "ReconnectedFlyout", null); }); Messenger.Default.Register <ConnectCampaignMessage> (this, cc => { // If the play page has already been created, this will swap to it, but it will have heard // this message and start connecting to it. if (!TryNavigateToPage(PlayPageName)) { return; } Messenger.Default.Send(cc); }); Messenger.Default.Register <PromptMessage> (this, p => p.Result = OnPromptAsync(p)); Messenger.Default.Register <NavigateToElementMessage> (this, OnNavigateToElement); FlyoutService.RegisterFlyoutTarget(this.contentFrame); Clipboard.ContentChanged += OnClipboardContentChanged; Loaded += MainPage_Loaded; }
private async void ShowConnect(string url, bool isConnect) { var client = await App.Services.GetServiceAsync <ILiveCampaignClient> (); try { var cancel = new CancellationTokenSource(5000); var details = await client.GetCampaignDetailsAsync(url, cancel.Token); string message = (isConnect) ? $"Drop to connect to {details.Name}" : $"Drop to join {details.Name}"; string glyph = (isConnect) ? "\xE768" : "\xE71B"; FlyoutService.ShowMessage(message, glyph); } catch (OperationCanceledException) { } }
private async void OnDragEnter(object sender, DragEventArgs e) { if (AttemptShowConnect(e)) { return; } if (e.DataView.AvailableFormats.Contains(StandardDataFormats.StorageItems)) { e.AcceptedOperation = DataPackageOperation.Copy; e.DragUIOverride.IsCaptionVisible = false; var items = await e.DataView.GetStorageItemsAsync(); bool many = (items.Count > 1 || items.OfType <IStorageFolder> ().Any()); // TODO: localize string message = $"Drop to import {((!many) ? items[0].Name : "files")}"; string glyph = (many) ? "\xE8B6" : "\xE8B5"; IDisposable old = Interlocked.Exchange(ref this.dragFlyout, FlyoutService.ShowMessage(message, glyph)); old?.Dispose(); } }