private async void DevicePicker_DisconnectButtonClicked(DevicePicker sender, DeviceDisconnectButtonClickedEventArgs args) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async() => { DeviceInformation selectedDevice = args.Device; if (await DialDevice.DeviceInfoSupportsDialAsync(selectedDevice)) { await StopDialConnection(sender, selectedDevice); return; } await StopProjection(sender, selectedDevice); }); }
private async void DevicePicker_DisconnectButtonClicked(DevicePicker sender, DeviceDisconnectButtonClickedEventArgs args) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // 關閉新建立的 view projectionInstance.Content.StopProjection(); //Update the display status for the selected device. sender.SetDisplayStatus(args.Device, "Disconnecting", DevicePickerDisplayStatusOptions.ShowProgress); //Update the display status for the selected device. sender.SetDisplayStatus(args.Device, "Disconnected", DevicePickerDisplayStatusOptions.None); // Set the active device variables to null activeDevice = null; }); }
private async void Picker_DisconnectButtonClicked(DevicePicker sender, DeviceDisconnectButtonClickedEventArgs args) { //Casting must occur from the UI thread. This dispatches the casting calls to the UI thread. await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async() => { rootPage.NotifyUser("Disconnect Button clicked", NotifyType.StatusMessage); //Update the display status for the selected device. sender.SetDisplayStatus(args.Device, "Disconnecting", DevicePickerDisplayStatusOptions.ShowProgress); bool disconnected = false; if (this.activeCastConnectionHandler is ProjectionViewBroker) { disconnected = TryStopProjectionManagerAsync((ProjectionViewBroker)activeCastConnectionHandler); } if (this.activeCastConnectionHandler is DialApp) { disconnected = await TryStopDialAppAsync((DialApp)activeCastConnectionHandler); } if (this.activeCastConnectionHandler is CastingConnection) { disconnected = await TryDisconnectCastingSessionAsync((CastingConnection)activeCastConnectionHandler); } if (disconnected) { //Update the display status for the selected device. try { sender.SetDisplayStatus(args.Device, "Disconnected", DevicePickerDisplayStatusOptions.None); } catch { } // Set the active device variables to null activeDevice = null; activeCastConnectionHandler = null; //Hide the picker sender.Hide(); } else { //Update the display status for the selected device. sender.SetDisplayStatus(args.Device, "Disconnect failed", DevicePickerDisplayStatusOptions.ShowDisconnectButton); } }); }
private async void Picker_DisconnectButtonClicked(DevicePicker sender, DeviceDisconnectButtonClickedEventArgs args) { //Casting must occur from the UI thread. This dispatches the casting calls to the UI thread. await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { rootPage.NotifyUser("Disconnect Button clicked", NotifyType.StatusMessage); //Update the display status for the selected device. sender.SetDisplayStatus(args.Device, "Disconnecting", DevicePickerDisplayStatusOptions.ShowProgress); if (this.pvb.ProjectedPage != null) { this.pvb.ProjectedPage.StopProjecting(); } //Update the display status for the selected device. sender.SetDisplayStatus(args.Device, "Disconnected", DevicePickerDisplayStatusOptions.None); rootPage.NotifyUser("Disconnected", NotifyType.StatusMessage); // Set the active device variables to null activeDevice = null; }); }
private async void Picker_DisconnectButtonClicked(DevicePicker sender, DeviceDisconnectButtonClickedEventArgs args) { ////Casting must occur from the UI thread. This dispatches the casting calls to the UI thread. //await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => //{ // rootPage.NotifyUser("Disconnect Button clicked", NotifyType.StatusMessage); // //Update the display status for the selected device. // sender.SetDisplayStatus(args.Device, "Disconnecting", DevicePickerDisplayStatusOptions.ShowProgress); // if (this.pvb.ProjectedPage != null) // this.pvb.ProjectedPage.StopProjecting(); // //Update the display status for the selected device. // sender.SetDisplayStatus(args.Device, "Disconnected", DevicePickerDisplayStatusOptions.None); // rootPage.NotifyUser("Disconnected", NotifyType.StatusMessage); // // Set the active device variables to null // activeDevice = null; //}); }
private async void Picker_DisconnectButtonClicked(DevicePicker sender, DeviceDisconnectButtonClickedEventArgs args) { //Casting must occur from the UI thread. This dispatches the casting calls to the UI thread. await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () => { rootPage.NotifyUser("Disconnect Button clicked", NotifyType.StatusMessage); //Update the display status for the selected device. sender.SetDisplayStatus(args.Device, "Disconnecting", DevicePickerDisplayStatusOptions.ShowProgress); bool disconnected = false; if (this.activeCastConnectionHandler is ProjectionViewBroker) disconnected = TryStopProjectionManagerAsync((ProjectionViewBroker)activeCastConnectionHandler); if (this.activeCastConnectionHandler is DialApp) disconnected = await TryStopDialAppAsync((DialApp)activeCastConnectionHandler); if (this.activeCastConnectionHandler is CastingConnection) disconnected = await TryDisconnectCastingSessionAsync((CastingConnection)activeCastConnectionHandler); if (disconnected) { //Update the display status for the selected device. try { sender.SetDisplayStatus(args.Device, "Disconnected", DevicePickerDisplayStatusOptions.None); } catch { } // Set the active device variables to null activeDevice = null; activeCastConnectionHandler = null; //Hide the picker sender.Hide(); } else { //Update the display status for the selected device. sender.SetDisplayStatus(args.Device, "Disconnect failed", DevicePickerDisplayStatusOptions.ShowDisconnectButton); } }); }