protected override async void OnNavigatedTo(NavigationEventArgs e) { switch (e.Parameter) { case MainPageArgs args: Arguments = args; break; case ShareOperation operation: _shareOperation = operation; break; default: break; } _visibility = Window.Current.Visible; WindowManager.HandleTitleBarForWindow(titleBar); if (_isReady) { await OnFirstDiscordReady(null); } }
internal async Task GoToChannelAsync(MainPageArgs args) { try { if (args.ChannelId != 0) { if (App.Discord.TryGetCachedChannel(args.ChannelId, out var channel) && channel.IsAccessible()) { await Dispatcher.AwaitableRunAsync(() => rootFrame.Navigate(typeof(ChannelPage), channel)); } } else if (args.UserId != 0) { var dm = App.Discord.PrivateChannels.Values .FirstOrDefault(c => c.Type == ChannelType.Private && c.Recipients.Count == 1 && c.Recipients[0].Id == args.UserId); if (dm == null && args.UserId != 0) { // dm = await App.Discord.CreateDmChannelAsync(args.UserId); } await Dispatcher.AwaitableRunAsync(() => rootFrame.Navigate(typeof(ChannelPage), dm)); } } catch (Exception ex) { Logger.LogError(ex); } finally { await Dispatcher.AwaitableRunAsync(() => HideConnectingOverlay()); } }
protected override async void OnNavigatedTo(NavigationEventArgs e) { UpdateTitleBar(); if (e.Parameter is MainPageArgs args) { _args = args; if (_loaded) { var channel = await App.Discord.GetChannelAsync(_args.ChannelId); Navigate(channel, new DrillInNavigationTransitionInfo()); } } }
protected override async void OnNavigatedTo(NavigationEventArgs e) { UpdateTitleBar(); if (e.Parameter is MainPageArgs args) { _args = args; if (_loaded) { var channel = await App.Discord.GetChannelAsync(_args.ChannelId); var service = DiscordNavigationService.GetForCurrentView(); await service.NavigateAsync(channel); } } }
protected override async void OnNavigatedTo(NavigationEventArgs e) { UpdateTitleBar(); Analytics.TrackEvent("DiscordPage_NavigatedTo"); if (e.Parameter is MainPageArgs args) { _args = args; if (_loaded && _args.ChannelId != 0) { if (App.Discord.TryGetCachedChannel(_args.ChannelId, out var channel)) { var service = DiscordNavigationService.GetForCurrentView(); await service.NavigateAsync(channel); } } } }