コード例 #1
0
        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);
            }
        }
コード例 #2
0
ファイル: MainPage.xaml.cs プロジェクト: WamWooWam/Unicord
        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());
            }
        }
コード例 #3
0
        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());
                }
            }
        }
コード例 #4
0
        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);
                }
            }
        }
コード例 #5
0
        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);
                    }
                }
            }
        }