#pragma warning disable SS001 // Async methods should return a Task to make them awaitable protected override async void OnStartup(StartupEventArgs e) { await Memenim.MainWindow.Instance.ShowLoadingGrid(true) .ConfigureAwait(true); MainWindow = Memenim.MainWindow.Instance; await Task.Delay(TimeSpan.FromMilliseconds(200)) .ConfigureAwait(true); Memenim.MainWindow.Instance.Show(); base.OnStartup(e); await Task.Delay(TimeSpan.FromMilliseconds(500)) .ConfigureAwait(true); LocalizationUtils.ReloadLocalizations <XamlLocalizationProvider>(); LocalizationUtils.SwitchLocalization( SettingsManager.AppSettings.Language); LocalizationUtils.SetDefaultCulture("en-US"); if (LocalizationUtils.Localizations.Count == 0) { return; } await StorageManager.Initialize() .ConfigureAwait(true); ProtocolManager.RegisterAll(); await Task.Run(async() => { LogManager.DeleteLogs(SettingsManager.AppSettings .LogRetentionDaysPeriod); try { if (string.IsNullOrEmpty( SettingsManager.PersistentSettings.GetCurrentUserLogin())) { Dispatcher.Invoke(() => { NavigationController.Instance.RequestPage <LoginPage>(); }); return; } if (!SettingsManager.PersistentSettings.SetCurrentUser( SettingsManager.PersistentSettings.GetCurrentUserLogin())) { SettingsManager.PersistentSettings.RemoveUser( SettingsManager.PersistentSettings.GetCurrentUserLogin()); Dispatcher.Invoke(() => { NavigationController.Instance.RequestPage <LoginPage>(); }); return; } var result = await PostApi.Get( SettingsManager.PersistentSettings.CurrentUser.Token, PostType.Popular, 1) .ConfigureAwait(false); if (result.IsError && (result.Code == 400 || result.Code == 401)) { SettingsManager.PersistentSettings.RemoveUser( SettingsManager.PersistentSettings.CurrentUser.Login); Dispatcher.Invoke(() => { NavigationController.Instance.RequestPage <LoginPage>(); }); return; } Dispatcher.Invoke(() => { NavigationController.Instance.RequestPage <FeedPage>(); }); if (!string.IsNullOrEmpty(AppStartupUri)) { ProtocolManager.ParseUri(AppStartupUri); } } catch (Exception) { Dispatcher.Invoke(() => { NavigationController.Instance.RequestPage <LoginPage>(); }); } }).ConfigureAwait(true); await Task.Delay(TimeSpan.FromSeconds(1.5)) .ConfigureAwait(true); await Memenim.MainWindow.Instance.ShowLoadingGrid(false) .ConfigureAwait(true); }