Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
        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.Schedule:    //events
                    pages.Add(menuId, new EvolveNavigationPage(new EventsPage()));
                    break;

                case AppPage.Sponsors:    //sponsors
                    newPage = new EvolveNavigationPage(new SponsorsPage());
                    break;

                case AppPage.Venue:     //venue
                    newPage = new EvolveNavigationPage(new VenuePage());
                    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);
        }
Esempio n. 3
0
        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.Schedule:    //events
                    pages.Add(menuId, new EvolveNavigationPage(new EventsPage()));
                    break;

                case (int)AppPage.Gallery:    //gallery
                    pages.Add(menuId, new EvolveNavigationPage(new GalleryPage()));
                    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.FloorMap:    //Floor Maps
                    newPage = new EvolveNavigationPage(new FloorMapsPage());
                    break;

                case (int)AppPage.LunchLocations:    //Lunch!
                    newPage = new EvolveNavigationPage(new LunchLocationsPage());
                    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;
        }
Esempio n. 4
0
        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;
            }
        }
Esempio n. 5
0
 private void ResetMainPage()
 {
     MainPage = new EvolveNavigationPage(Settings.Current.IsLoggedIn ? (Page) new RootPage() : new LoginPage());
 }