private void RestoreSessionType() { if (!this.Settings.Contains("SessionType")) { return; } this.sessionType = (App.SessionType) this.Settings["SessionType"]; }
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)); } } } }