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 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;
        }
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.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;
        }
Esempio n. 4
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.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);
        }
Esempio n. 5
0
 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();
     }
 }
Esempio n. 6
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. 7
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.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;
        }
Esempio n. 8
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.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);
        }
Esempio n. 9
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. 10
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(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);
        }
Esempio n. 11
0
        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;
            }
        }