public App() { current = this; InitializeComponent(); ViewModelBase.Init(); // The root page of your application switch (Device.OS) { case TargetPlatform.Android: MainPage = new RootPageAndroid(); break; case TargetPlatform.iOS: MainPage = new EvolveNavigationPage(new RootPageiOS()); break; case TargetPlatform.Windows: case TargetPlatform.WinPhone: MainPage = new RootPageWindows(); break; default: throw new NotImplementedException(); } }
public void NavigateAsync(AppPage menuId) { Page newPage = null; if (!pages.ContainsKey(menuId)) { //only cache specific pages switch (menuId) { case AppPage.Feed: //Feed pages.Add(menuId, new EvolveNavigationPage(new FeedPage())); break; case AppPage.Sessions: //sessions pages.Add(menuId, new EvolveNavigationPage(new SessionsPage())); break; case AppPage.Events: //events pages.Add(menuId, new EvolveNavigationPage(new EventsPage())); break; case AppPage.MiniHacks: //Mini-Hacks newPage = new EvolveNavigationPage(new MiniHacksPage()); break; case AppPage.Sponsors: //sponsors newPage = new EvolveNavigationPage(new SponsorsPage()); break; case AppPage.Evals: //venue newPage = new EvolveNavigationPage(new EvaluationsPage()); break; case AppPage.Venue: //venue newPage = new EvolveNavigationPage(new VenuePage()); break; case AppPage.ConferenceInfo: //Conference info newPage = new EvolveNavigationPage(new ConferenceInformationPage()); break; case AppPage.FloorMap: //Floor Maps newPage = new EvolveNavigationPage(new FloorMapsCarouselPage()); break; case AppPage.Settings: //Settings newPage = new EvolveNavigationPage(new SettingsPage()); break; } } if (newPage == null) { newPage = pages[menuId]; } if (newPage == null) { return; } Detail = newPage; //await Navigation.PushAsync(newPage); }
public async Task NavigateAsync(int menuId) { EvolveNavigationPage newPage = null; if (!pages.ContainsKey(menuId)) { //only cache specific pages switch (menuId) { case (int)AppPage.Feed: //Feed pages.Add(menuId, new EvolveNavigationPage(new FeedPage())); break; case (int)AppPage.Sessions: //sessions pages.Add(menuId, new EvolveNavigationPage(new SessionsPage())); break; case (int)AppPage.Events: //events pages.Add(menuId, new EvolveNavigationPage(new EventsPage())); break; case (int)AppPage.MiniHacks: //Mini-Hacks newPage = new EvolveNavigationPage(new MiniHacksPage()); break; case (int)AppPage.Sponsors: //sponsors newPage = new EvolveNavigationPage(new SponsorsPage()); break; case (int)AppPage.Venue: //venue newPage = new EvolveNavigationPage(new VenuePage()); break; case (int)AppPage.ConferenceInfo: //Conference info newPage = new EvolveNavigationPage(new ConferenceInformationPage()); break; case (int)AppPage.FloorMap: //Floor Maps newPage = new EvolveNavigationPage(new FloorMapsCarouselPage()); break; case (int)AppPage.Settings: //Settings newPage = new EvolveNavigationPage(new SettingsPage()); break; case (int)AppPage.Evals: newPage = new EvolveNavigationPage(new EvaluationsPage()); break; } } if (newPage == null) { newPage = pages[menuId]; } if (newPage == null) { return; } //if we are on the same tab and pressed it again. if (Detail == newPage) { await newPage.Navigation.PopToRootAsync(); } Detail = newPage; }
protected override void OnResume() { if (registered) { return; } registered = true; // Handle when your app resumes Settings.Current.IsConnected = CrossConnectivity.Current.IsConnected; CrossConnectivity.Current.ConnectivityChanged += ConnectivityChanged; // Handle when your app starts MessagingService.Current.Subscribe <MessagingServiceAlert>(MessageKeys.Message, async(m, info) => { var task = Application.Current?.MainPage?.DisplayAlert(info.Title, info.Message, info.Cancel); if (task == null) { return; } await task; info?.OnCompleted?.Invoke(); }); MessagingService.Current.Subscribe <MessagingServiceQuestion>(MessageKeys.Question, async(m, q) => { var task = Application.Current?.MainPage?.DisplayAlert(q.Title, q.Question, q.Positive, q.Negative); if (task == null) { return; } var result = await task; q?.OnCompleted?.Invoke(result); }); MessagingService.Current.Subscribe <MessagingServiceChoice>(MessageKeys.Choice, async(m, q) => { var task = Application.Current?.MainPage?.DisplayActionSheet(q.Title, q.Cancel, q.Destruction, q.Items); if (task == null) { return; } var result = await task; q?.OnCompleted?.Invoke(result); }); MessagingService.Current.Subscribe(MessageKeys.NavigateLogin, async m => { if (Device.OS == TargetPlatform.Android) { ((RootPageAndroid)MainPage).IsPresented = false; } Page page = null; if (Settings.Current.FirstRun && Device.OS == TargetPlatform.Android) { page = new LoginPage(); } else { page = new EvolveNavigationPage(new LoginPage()); } var nav = Application.Current?.MainPage?.Navigation; if (nav == null) { return; } await NavigationService.PushModalAsync(nav, page); }); try { if (firstRun || Device.OS != TargetPlatform.iOS) { return; } var mainNav = MainPage as NavigationPage; if (mainNav == null) { return; } var rootPage = mainNav.CurrentPage as RootPageiOS; if (rootPage == null) { return; } var rootNav = rootPage.CurrentPage as NavigationPage; if (rootNav == null) { return; } var about = rootNav.CurrentPage as AboutPage; if (about != null) { about.OnResume(); return; } var sessions = rootNav.CurrentPage as SessionsPage; if (sessions != null) { sessions.OnResume(); return; } var feed = rootNav.CurrentPage as FeedPage; if (feed != null) { feed.OnResume(); return; } } catch { } finally { firstRun = false; } }