private async void Show(Call call, VoIPControllerWrapper controller, DateTime started) { if (_callPage == null) { if (ApplicationView.GetForCurrentView().IsViewModeSupported(ApplicationViewMode.CompactOverlay)) { _callLifetime = await _viewService.OpenAsync(() => _callPage = _callPage ?? new VoIPPage(ProtoService, CacheService, Aggregator, _call, _controller, _callStarted), call.Id); _callLifetime.WindowWrapper.ApplicationView().Consolidated -= ApplicationView_Consolidated; _callLifetime.WindowWrapper.ApplicationView().Consolidated += ApplicationView_Consolidated; } else { _callPage = new VoIPPage(ProtoService, CacheService, Aggregator, _call, _controller, _callStarted); _callDialog = new OverlayPage(); _callDialog.HorizontalAlignment = HorizontalAlignment.Stretch; _callDialog.VerticalAlignment = VerticalAlignment.Stretch; _callDialog.Content = _callPage; _callDialog.IsOpen = true; } Aggregator.Publish(new UpdateCallDialog(call, true)); } await _callPage.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { if (controller != null) { _callPage.Connect(controller); } _callPage.Update(call, started); }); }
private async void Hide() { if (_callPage != null) { await _callPage.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { if (_callDialog != null) { _callDialog.IsOpen = false; _callDialog = null; } else if (_callLifetime != null) { _callLifetime.StopViewInUse(); _callLifetime.WindowWrapper.Window.Close(); _callLifetime = null; } _callPage.Dispose(); _callPage = null; }); Aggregator.Publish(new UpdateCallDialog(_call, true)); } }
private void ApplicationView_Consolidated(ApplicationView sender, ApplicationViewConsolidatedEventArgs args) { if (_callLifetime != null) { _callLifetime.StopViewInUse(); _callLifetime.WindowWrapper.Window.Close(); _callLifetime = null; } if (_callPage != null) { _callPage.Dispose(); _callPage = null; } Aggregator.Publish(new UpdateCallDialog(_call, false)); }
public async void Show() { if (_call == null) { return; } Show(_call, _controller, _callStarted); if (_callDialog != null) { _callDialog.IsOpen = true; } else if (_callLifetime != null) { _callLifetime = await _viewService.OpenAsync(() => _callPage = _callPage ?? new VoIPPage(ProtoService, CacheService, Aggregator, _call, _controller, _callStarted), _call.Id); _callLifetime.WindowWrapper.ApplicationView().Consolidated -= ApplicationView_Consolidated; _callLifetime.WindowWrapper.ApplicationView().Consolidated += ApplicationView_Consolidated; } Aggregator.Publish(new UpdateCallDialog(_call, true)); }