internal async Task HandleMenu(bool isOnline) { try { App.UpdateLoading(true); await Task.Delay(500); Page newRootPage; if (isOnline) { MenuItemsStack = ((ContentPage)App.MenuPage.Master).FindByName <StackLayout>("ItemsLayout"); FirstChild = MenuItemsStack.Children.FirstOrDefault(); MenuItemsStack.Children.RemoveAt(0); MenuItemsStack.Children.Insert(1, FirstChild); newRootPage = new MapPage(); } else { MenuItemsStack = ((ContentPage)App.MenuPage.Master).FindByName <StackLayout>("ItemsLayout"); FirstChild = MenuItemsStack.Children.FirstOrDefault(); MenuItemsStack.Children.RemoveAt(0); MenuItemsStack.Children.Insert(1, FirstChild); newRootPage = new AvailabiltyPage(); } App.NavPage = new NavigationPage(newRootPage); App.MenuPage.Detail = App.NavPage; } catch (Exception e) { // ignored } finally { App.UpdateLoading(false); } #endregion }
public App() { InitializeComponent(); ValidationFieldList = new ValidationFieldList(); Device.BeginInvokeOnMainThread(async() => await Location.GetUserLocation()); Connectivity.CheckConnectionAndDisplayToast(); if (App.Locator.Prelogin.Settings.IsUserLoggedIn) { if (App.Locator.Prelogin.Settings.UserType.Equals(UserTypeViewModel.UserTypeOf.Owner.ToString())) { var rootPage = new MapPage(); App.NavPage = new NavigationPage(rootPage); App.MenuPage = (MasterDetailPage) new OwnerMenu() { Detail = App.NavPage }; App.Current.MainPage = App.MenuPage; } else { var rootPage = new AvailabiltyPage(); App.NavPage = new NavigationPage(rootPage); App.MenuPage = (MasterDetailPage) new WasherMenu() { Detail = App.NavPage }; App.Current.MainPage = App.MenuPage; } } else { InstantiatingPageType = typeof(UserTypePage); NavPage = new NavigationPage(new UserTypePage()); MainPage = NavPage; } }