private async Task InitializeApp() { if (NavigationStackState == null) { var SplashScreen = new GradientContentPage() { StartColor = Color.FromHex("E6EBEF"), EndColor = Color.FromHex("A6CFED") }; var SplashImage = new Image() { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, WidthRequest = 400, HeightRequest = 400 }; var LoadingIndicator = new ActivityIndicator() { IsRunning = true, Color = Color.FromHex("8CB9DB"), VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center }; var LoadingError = new Label() { TextColor = Color.FromHex("ff3333"), VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center }; var SplashGrid = new Grid() { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, ColumnDefinitions = new ColumnDefinitionCollection() { new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }, new ColumnDefinition() { Width = new GridLength(7, GridUnitType.Star) }, new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) } }, RowDefinitions = new RowDefinitionCollection() { new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) }, new RowDefinition() { Height = new GridLength(7, GridUnitType.Star) }, new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) }, new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) } }, }; SplashGrid.Children.Add(SplashImage, 1, 1); SplashGrid.Children.Add(LoadingIndicator, 1, 2); SplashGrid.Children.Add(LoadingError, 1, 3); SplashScreen.Content = SplashGrid; SplashImage.Source = ImageSource.FromFile("splash_logo.png"); SplashImage.Aspect = Aspect.AspectFit; MainPage = new NavigationPage(SplashScreen); NavigationPage.SetHasNavigationBar(SplashScreen, false); var CreateTablesTask = DB.CreateTablesAsync(); var CreateTablesResult = await CreateTablesTask; if (!CreateTablesResult.Success) { LoadingIndicator.IsVisible = false; LoadingError.IsVisible = true; LoadingError.Text = CreateTablesResult.Message; return; } ContentPage NextForm = UserId.Value != Guid.Empty ? (ContentPage) new MainMenu() { StartColor = Color.FromHex("E6EBEF"), EndColor = Color.FromHex("A6CFED") } : (ContentPage) new LoginForm() { StartColor = Color.FromHex("E6EBEF"), EndColor = Color.FromHex("A6CFED") }; await Task.Delay(2000); await MainPage.Navigation.PushAsync(NextForm); MainPage.Navigation.RemovePage(SplashScreen); } else { MainPage = new NavigationPage(); for (int i = 0; i < NavigationStackState.Length; i++) { if (NavigationStackState[i] != null) { var page = NavigationStackState[i]; try { page.Parent = null; await MainPage.Navigation.PushAsync(page, false); } catch (Exception err) { } } } } var AccessesResult = await App.DB.FetchUserAccessesAsync(); CheckForPersonnelWorkingTime(); StaticMainPage = MainPage; await Task.Delay(500); OrderPreviewFontSize = new SettingField <int>("OrderPreviewFontSize", (int)Math.Round(Math.Min(StaticMainPage.Width, StaticMainPage.Height) * App.DeviceSizeDensity / 70)); if (QRScanner != null) { QRScanner.OnScanResult = new Action <QRScanResult>((result) => { //TODO }); } }