Exemplo n.º 1
0
        /// <summary>
        /// Navigates to a root page of the app.
        /// </summary>
        /// <returns></returns>
        public async Task GoToRootPage()
        {
            try
            {
                if (!Connectivity.CheckConnectionAndDisplayToast())
                {
                    return;
                }

                if (App.NavPage.CurrentPage.GetType() ==
                    App.NavPage.Navigation.NavigationStack.FirstOrDefault()?.GetType())
                {
                    App.MenuPage.IsPresented = false;
                    return;
                }

                App.UpdateLoading(true);
                await Task.Delay(500);

                await App.NavPage.Navigation.PopToRootAsync();

                App.MenuPage.IsPresented = false;
            }
            catch (Exception e)
            {
                // ignored
            }
            finally
            {
                App.UpdateLoading(false);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Navigates to a page with side menu. OwnerMenu page content is defined in OwnerMenu.xaml.
        /// </summary>
        /// <param name="page">
        /// Page should be initialized e.g. new CustomPage() and this page represents Detail.
        /// </param>
        /// <param name="userType">
        /// Type of user (Owner or Washer)
        /// </param>
        /// <returns></returns>
        public async Task GoToMasterRootPage(Page page, UserTypeViewModel.UserTypeOf userType)
        {
            try
            {
                if (!Connectivity.CheckConnectionAndDisplayToast())
                {
                    return;
                }

                App.InstantiatingPageType = page.GetType();
                App.UpdateLoading(true);
                await Task.Delay(500);

                App.NavPage  = new NavigationPage(page);
                App.MenuPage = userType == UserTypeViewModel.UserTypeOf.Owner
                    ? (MasterDetailPage) new OwnerMenu()
                {
                    Detail = App.NavPage
                }
                    : (MasterDetailPage) new WasherMenu()
                {
                    Detail = App.NavPage
                };                                                                 // TODO: add WasherMenu
                Application.Current.MainPage = App.MenuPage;
            }
            catch (Exception e)
            {
                // ignored
            }
            finally
            {
                App.UpdateLoading(false);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Navigates to a new page.
        /// </summary>
        /// <param name="page">
        /// Page should be initialized e.g. new CustomPage()
        /// </param>
        /// <returns></returns>
        public async Task GoToPage(Page page)
        {
            try
            {
                if (!Connectivity.CheckConnectionAndDisplayToast())
                {
                    return;
                }

                if (App.NavPage.CurrentPage.GetType() == page.GetType())
                {
                    App.MenuPage.IsPresented = false;
                    return;
                }

                App.InstantiatingPageType = page.GetType();
                App.UpdateLoading(true);
                await Task.Delay(500);

                await App.NavPage.Navigation.PushAsync(page);

                App.MenuPage.IsPresented = false;
            }
            catch (Exception e)
            {
                // ignored
            }
            finally
            {
                App.UpdateLoading(false);
            }
        }
Exemplo n.º 4
0
        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;
            }
        }
Exemplo n.º 5
0
        protected override void OnElementChanged(ElementChangedEventArgs <ImageButton> e)
        {
            base.OnElementChanged(e);

            var citoButton = e.NewElement.CitoButton;

            if (citoButton == null)
            {
                return;
            }

            var externalLogin = e.NewElement.ExternalLogin;

            if (externalLogin == ImageButton.Social.Facebook)
            {
                var facebookLoginButton = new LoginButton(Forms.Context);
                facebookLoginButton.SetReadPermissions(new string[] { "public_profile", "email" });

                citoButton.Clicked += (sender, args) =>
                {
                    if (!Connectivity.CheckConnectionAndDisplayToast())
                    {
                        return;
                    }

                    if (FacebookLogin.FacebookLoggedIn)
                    {
                        App.Locator.Prelogin.ExternalLoginCommand.Execute(null);
                        return;
                    }

                    facebookLoginButton.PerformClick();
                    FacebookLogin.IsFacebookLogin = true;
                };
            }
            else if (externalLogin == ImageButton.Social.Google)
            {
                var googleLoginButton = new SignInButton(Forms.Context);
                citoButton.Clicked += (sender, args) =>
                {
                    if (!Connectivity.CheckConnectionAndDisplayToast())
                    {
                        return;
                    }

                    googleLoginButton.PerformClick();
                    if (GoogleLogin.MyGoogleApiClient.IsConnecting)
                    {
                        return;
                    }

                    GoogleLogin.MyGoogleApiClient.Reconnect();
                    GoogleLogin.IsGoogleLogin = true;
                    GoogleLogin.IntentHandled = true;
                };
            }
            else
            {
                return;
            }
        }