Esempio n. 1
0
 private void RestoreSessionType()
 {
     if (!this.Settings.Contains("SessionType"))
     {
         return;
     }
     this.sessionType = (App.SessionType) this.Settings["SessionType"];
 }
Esempio n. 2
0
        private void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
        {
            Logger.Instance.Info("App.RootFrame_Navigating Mode={1}, Uri={0}", e.Uri.ToString(), e.NavigationMode);
            string str = e.Uri.ToString();

            if (str == "app://external/")
            {
                return;
            }
            if (!str.Contains("/LoginPage.xaml") && !str.Contains("/ValidatePage.xaml") && (!str.Contains("/WelcomePage.xaml") && !str.Contains("/RegistrationPage.xaml")) && (!str.Contains("/Auth2FAPage.xaml") && !str.Contains("/PhotoPickerPhotos.xaml")))
            {
                if (AppGlobalStateManager.Current.IsUserLoginRequired() && !this._handlingPreLoginNavigation)
                {
                    ((CancelEventArgs)e).Cancel = true;
                    this.RootFrame.Dispatcher.BeginInvoke(delegate
                    {
                        this.RootFrame.Navigate(new Uri("/WelcomePage.xaml", UriKind.Relative));
                    });
                }
                else if (str.Contains("TileLoggedInUserId") && str.Contains("IsChat=True"))
                {
                    int  startIndex1 = str.IndexOf("TileLoggedInUserId");
                    int  startIndex2 = str.IndexOf("=", startIndex1) + 1;
                    long result      = 0;
                    if (long.TryParse(str.Substring(startIndex2), out result) && result != AppGlobalStateManager.Current.LoggedInUserId)
                    {
                        e.Cancel = true;
                        // ISSUE: method pointer
                        this.RootFrame.Dispatcher.BeginInvoke(delegate
                        {
                            this.RootFrame.Navigate(new Uri("/VKClient.Common;component/NewsPage.xaml", UriKind.Relative));
                        });
                    }
                }
            }
            this._handlingPreLoginNavigation = false;
            if (this.sessionType == App.SessionType.None && e.NavigationMode == NavigationMode.New)
            {
                if (this.IsDeepLink(e.Uri.ToString()))
                {
                    this.sessionType = App.SessionType.DeepLink;
                }
                else if (e.Uri.ToString().Contains("/NewsPage.xaml"))
                {
                    this.sessionType = App.SessionType.Home;
                }
            }
            if (e.NavigationMode == NavigationMode.Reset)
            {
                if ((e.Uri.OriginalString.Contains("RegistrationPage.xaml") || e.Uri.OriginalString.Contains("LoginPage.xaml") || e.Uri.OriginalString.Contains("Auth2FAPage.xaml")) && AppGlobalStateManager.Current.IsUserLoginRequired())
                {
                    this._handlingPreLoginNavigation = true;
                }
                this.wasRelaunched = true;
            }
            else
            {
                if (e.NavigationMode != NavigationMode.New || !this.wasRelaunched)
                {
                    return;
                }
                this.wasRelaunched = false;
                if (this.IsDeepLink(e.Uri.ToString()))
                {
                    this.sessionType = App.SessionType.DeepLink;
                }
                else
                {
                    if (!e.Uri.ToString().Contains("/NewsPage.xaml"))
                    {
                        return;
                    }
                    if (this.sessionType == App.SessionType.DeepLink)
                    {
                        this.sessionType          = App.SessionType.Home;
                        e.Cancel                  = true;
                        this.RootFrame.Navigated -= (new NavigatedEventHandler(this.ClearBackStackAfterReset));
                    }
                    else
                    {
                        e.Cancel = true;
                        this.RootFrame.Navigated -= (new NavigatedEventHandler(this.ClearBackStackAfterReset));
                    }
                }
            }
        }