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 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(device))); break; case (int)AppPage.Sessions://sessions pages.Add(menuId, new EvolveNavigationPage(new SessionsPage(device))); 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; }
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.Speakers: //speakers pages.Add(menuId, new EvolveNavigationPage(new SpeakersPage())); break; case (int)AppPage.Events: //events pages.Add(menuId, new EvolveNavigationPage(new EventsPage())); break; case (int)AppPage.Sponsors: //sponsors newPage = new EvolveNavigationPage(new SponsorsPage()); break; case (int)AppPage.Settings: //Settings newPage = new EvolveNavigationPage(new SettingsPage()); 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; }
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.Speakers: //sessions pages.Add(menuId, new EvolveNavigationPage(new SpeakersPage())); break; case AppPage.Events: //events pages.Add(menuId, new EvolveNavigationPage(new EventsPage())); break; case AppPage.Sponsors: //sponsors newPage = new EvolveNavigationPage(new SponsorsPage()); 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 App(IDevice device) { current = this; InitializeComponent(); ViewModelBase.Init(); // The root page of your application switch (Device.OS) { case TargetPlatform.Android: MainPage = new RootPageAndroid(device); break; case TargetPlatform.iOS: MainPage = new EvolveNavigationPage(new RootPageiOS(device)); break; case TargetPlatform.Windows: case TargetPlatform.WinPhone: MainPage = new RootPageWindows(device); break; default: throw new NotImplementedException(); } }
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; } }
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; }
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 FloorMapsPage()); 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); }
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; } }
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(device))); break; case AppPage.Sessions://sessions pages.Add(menuId, new EvolveNavigationPage(new SessionsPage(device))); 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); }
protected override void OnResume() { Debug.WriteLine($"Current user: {Settings.Current.UserIdentifier}"); 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 (FeatureFlags.LoginEnabled) { 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); } else { var ssoClient = DependencyService.Get <ISSOClient>(); if (ssoClient != null) { var account = await ssoClient.LoginAnonymouslyAsync(null); if (account != null) { Settings.Current.UserIdentifier = account.User.Email; MessagingService.Current.SendMessage(MessageKeys.LoggedIn); Logger.Track(EvolveLoggerKeys.LoginSuccess); Settings.Current.FirstRun = false; } try { var storeManager = DependencyService.Get <IStoreManager>(); await storeManager.SyncAllAsync(Settings.Current.IsLoggedIn); Settings.Current.LastSync = DateTime.UtcNow; Settings.Current.HasSyncedData = true; } catch (Exception ex) { //if sync doesn't work don't worry it is alright we can recover later Logger.Report(ex); } await Finish(); } } }); 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; } }