Beispiel #1
0
        public void SwitchNavigation(NavigacionStacks navigationPila, FreshBasePageModel page)
        {
            switch (navigationPila)
            {
            case NavigacionStacks.Autentificacion:

                var login    = FreshPageModelResolver.ResolvePageModel <LoginViewModel>();
                var NavLogin = new FreshNavigationContainer(login, navigationPila.ToString());

                page.CoreMethods.SwitchOutRootNavigation(navigationPila.ToString());

                break;

            case NavigacionStacks.Inicio:
                var VInicio   = FreshPageModelResolver.ResolvePageModel <ContactsViewModel>();
                var NavInicio = new FreshNavigationContainer(VInicio, navigationPila.ToString());

                page.CoreMethods.SwitchOutRootNavigation(navigationPila.ToString());

                break;

            case NavigacionStacks.MasterD:
                break;
            }
        }
 internal EditTicketDetailsView(FreshBasePageModel bindingContext) : this()
 {
     if (bindingContext != null)
     {
         this.BindingContext = bindingContext;
     }
 }
Beispiel #3
0
 public Task PushPage(Page page, FreshBasePageModel model, bool modal = false,
                      bool animate = true)
 {
     return(modal
         ? Navigation.PushModalAsync(CreateContainerPageSafe(page))
         : NavigationDetail.PushAsync(page, animate));
 }
Beispiel #4
0
 public System.Threading.Tasks.Task PushPage(Xamarin.Forms.Page page, FreshBasePageModel model, bool modal = false, bool animate = true)
 {
     if (modal)
     {
         return(this.CurrentPage.Navigation.PushModalAsync(CreateContainerPageSafe(page)));
     }
     return(this.CurrentPage.Navigation.PushAsync(page));
 }
Beispiel #5
0
 public override Task PushPage(Page page, FreshBasePageModel model, bool modal = false, bool animate = true)
 {
     if (modal)
     {
         return(Navigation.PushModalAsync(CreateContainerPage(page), animate));
     }
     return(Navigation.PushAsync(page, animate));
 }
 public Task PushPage(Page page, FreshBasePageModel model, bool modal = false, bool animate = true)
 {
     if (modal)
     {
         return(this.CurrentPage.Navigation.PushModalAsync(CreateContainerPageSafe(page)));
     }
     return(this.CurrentPage.Navigation.PushAsync(page));
 }
 public Task PushPage(Xamarin.Forms.Page page, FreshBasePageModel model, bool modal = false, bool animate = true)
 {
     if (modal)
     {
         return(Navigation.PushModalAsync(CreateContainerPageSafe(page)));
     }
     return((Detail as NavigationPage).PushAsync(page, animate)); //TODO: make this better
 }
Beispiel #8
0
        private FreshBasePageModel GetCurrentPageModel()
        {
            FreshTabbedNavigationContainer freshTabbedNavigationContainer = Current.MainPage as FreshTabbedNavigationContainer;
            NavigationPage     navigationPage = freshTabbedNavigationContainer.CurrentPage as NavigationPage;
            Page               page           = navigationPage.RootPage as Page;
            FreshBasePageModel pageModel      = page.BindingContext as FreshBasePageModel;

            return(pageModel);
        }
        void SetupFirstNavigationAndPage()
        {
            _navigationMock = Substitute.For <IFreshNavigationService> ();
            FreshIOC.Container.Register <IFreshNavigationService> (_navigationMock, "firstNav");

            _page      = FreshPageModelResolver.ResolvePageModel <MockContentPageModel>();
            _pageModel = _page.BindingContext as MockContentPageModel;
            _pageModel.CurrentNavigationServiceName = "firstNav";
        }
 public async Task PushPage(Page page, FreshBasePageModel model, bool modal = false, bool animate = true)
 {
     if (modal)
     {
         await Navigation.PushModalAsync(page, animate).ConfigureAwait(false);
     }
     else
     {
         await Navigation.PushAsync(page, animate).ConfigureAwait(false);
     }
 }
Beispiel #11
0
 public async Task PushPage(Page page, FreshBasePageModel model, bool modal = false, bool animate = true)
 {
     if (modal)
     {
         await Navigation.PushModalAsync(new NavigationPage(page), animate);
     }
     else
     {
         await((NavigationPage)_tabbedNavigationPage.CurrentPage).PushAsync(page, animate);
     }
 }
 public virtual async Task PushPage(Page page, FreshBasePageModel model, bool modal = false, bool animate = true)
 {
     if (modal)
     {
         await Navigation.PushModalAsync(page, animate);
     }
     else
     {
         await((NavigationPage)this.Detail).PushAsync(page, animate);
     }
 }
 public async Task PushPage(Page page, FreshBasePageModel model, bool modal = false, bool animate = true)
 {
     if (modal)
     {
         await Navigation.PushModalAsync(new NavigationPage(page));
     }
     else
     {
         await(Detail as NavigationPage).PushAsync(page, animate);  //TODO: make this better
     }
 }
 public virtual async Task PushPage(Page page, FreshBasePageModel model, bool modal = false, bool animate = true)
 {
     if (modal)
     {
         await((FreshNavigationContainer)this.Detail).PushPage(page, null, true, animate);
     }
     else
     {
         await((FreshNavigationContainer)this.Detail).PushPage(page, null, modal, animate);
     }
 }
Beispiel #15
0
 public async Task PushPage(Page page, FreshBasePageModel model, bool modal = false, bool animate = true)
 {
     if (modal)
     {
         await Navigation.PushModalAsync(new AppNavigationBar(page), animate);
     }
     else
     {
         await Navigation.PushAsync(new AppNavigationBar(page), animate);
     }
 }
Beispiel #16
0
 public virtual async Task PushPage(Xamarin.Forms.Page page, FreshBasePageModel model, bool modal = false, bool animated = true)
 {
     if (modal)
     {
         await Navigation.PushModalAsync(new NavigationPage(page), animated);
     }
     else
     {
         await((NavigationPage)_tabbedNavigationPage.CurrentPage).PushAsync(page, animated);
     }
 }
        void PushSecondNavigationStack()
        {
            _coreMethods = new PageModelCoreMethods(_page, _pageModel);
            _coreMethods.PushPageModel <MockContentPageModel> ();

            _pageSecond            = FreshPageModelResolver.ResolvePageModel <MockContentPageModel>();
            _pageModelSecond       = _pageSecond.BindingContext as MockContentPageModel;
            _coreMethodsSecondPage = new PageModelCoreMethods(_pageSecond, _pageModelSecond);
            _secondNavService      = new FreshNavigationContainer(_pageSecond, "secondNav");

            _coreMethods.PushNewNavigationServiceModal(_secondNavService, new FreshBasePageModel[] { _pageModelSecond });
        }
Beispiel #18
0
 public async Task PushPage(Page page, FreshBasePageModel model, bool modal = false, bool animate = true)
 {
     if (modal)
     {
         await Navigation.PushModalAsync(new NavigationPage(page), animate);
     }
     else
     {
         var basicNavContainer = new FreshNavigationContainer(page);
         basicNavContainer.BarBackgroundColor = GetBarColor();
         basicNavContainer.BarTextColor       = Color.White;
         Detail = basicNavContainer;
     }
 }
        private async Task PushPageModel(FreshBasePageModel pageModel, object data = null, bool animate = true)
        {
            var page = FreshPageModelResolver.ResolvePageModel(data, pageModel);

            FreshPageModelResolver.BindingPageModel(data, page, pageModel);

            if (page is PopupPage)
            {
                await PushPageModelWithPage((PopupPage)page, animate);
            }
            else
            {
                throw new InvalidOperationException("Resolved page type is not PopupPage");
            }
        }
Beispiel #20
0
        public Task PushPage(Xamarin.Forms.Page page, FreshBasePageModel model, bool modal = false, bool animate = true)
        {
            if (IsPresented)
            {
                IsPresented = false;
            }

            if (modal)
            {
                return(Detail.Navigation.PushModalAsync(page));
            }

            KeyValuePair <MenuCellData, Xamarin.Forms.Page> innerPage = _pages.FirstOrDefault(p => ((NavigationPage)p.Value).CurrentPage.GetType() == page.GetType());

            if (innerPage.Key != null)
            {
                return(Task.FromResult(ListView.SelectedItem = innerPage.Key));
            }
            return((Detail as NavigationPage).PushAsync(page, animate));
        }
Beispiel #21
0
        public void SwitchNavigation(NavigationStacks navigationStacks, FreshBasePageModel page)
        {
            switch (navigationStacks)
            {
            case (NavigationStacks.Authentication):
                var loginPage = FreshPageModelResolver.ResolvePageModel <LoginViewModel>();
                var authenticationNavContainer = new FreshNavigationContainer(loginPage, navigationStacks.ToString());
                page.CoreMethods.SwitchOutRootNavigation(navigationStacks.ToString());
                break;

            case (NavigationStacks.Main):
                var mainPage         = FreshPageModelResolver.ResolvePageModel <MainViewModel>();
                var mainNavContainer = new FreshNavigationContainer(mainPage, navigationStacks.ToString());
                page.CoreMethods.SwitchOutRootNavigation(navigationStacks.ToString());
                break;

            case (NavigationStacks.MasterDetail):
                var mainMasterDetailContainer = new FreshMasterDetailNavigationContainer(navigationStacks.ToString());
                mainMasterDetailContainer.AddPage <MainViewModel>("Contacts");
                mainMasterDetailContainer.AddPage <AboutViewModel>("About");
                mainMasterDetailContainer.AddPage <LogoutViewModel>("Logout");
                mainMasterDetailContainer.Init("Menu");
                page.CoreMethods.SwitchOutRootNavigation(navigationStacks.ToString());
                break;

            case (NavigationStacks.Tabbed):
                var tabbedContainer = new FreshTabbedNavigationContainer(navigationStacks.ToString());
                tabbedContainer.AddTab <MainViewModel>("Contacts", null);
                tabbedContainer.AddTab <AboutViewModel>("About", null);
                page.CoreMethods.SwitchOutRootNavigation(navigationStacks.ToString());
                break;

            case (NavigationStacks.TabbedFO):
                var tabbedFOContainer = new FreshTabbedFONavigationContainer(navigationStacks.ToString());
                tabbedFOContainer.AddTab <MainViewModel>("Contacts", null);
                tabbedFOContainer.AddTab <AboutViewModel>("About", null);
                page.CoreMethods.SwitchOutRootNavigation(navigationStacks.ToString());
                break;
            }
        }
Beispiel #22
0
 public TransactionsFilterPage(FreshBasePageModel context) : this()
 {
     this.BindingContext = context;
 }
 public Task PushNewNavigationServiceModal(FreshMasterDetailNavigationContainer masterDetailContainer, FreshBasePageModel basePageModel = null)
 {
     throw new NotImplementedException();
 }
 public Task PushNewNavigationServiceModal(FreshTabbedNavigationContainer tabbedNavigationContainer, FreshBasePageModel basePageModel = null)
 {
     throw new NotImplementedException();
 }
 public Task PushNewNavigationServiceModal(IFreshNavigationService newNavigationService, FreshBasePageModel basePageModels, bool animate = true)
 {
     throw new NotImplementedException();
 }
 internal TicketFilterSelectView(FreshBasePageModel bindingContext) : this()
 {
     this.BindingContext = bindingContext;
 }
Beispiel #27
0
        private void InitializeAppCenter()
        {
            // TODO: Add implementation here.

            if (!AppCenter.Configured)
            {
                Crashes.SendingErrorReport += (sender, e) =>
                {
                    string message = "Sending error report";
                    AppCenterLog.Info(Settings.AppName, message);

                    var         args   = e as SendingErrorReportEventArgs;
                    ErrorReport report = args.Report;

                    if (report.Exception != null)
                    {
                        AppCenterLog.Info(Settings.AppName, report.Exception.ToString());
                    }
                    else if (report.AndroidDetails != null)
                    {
                        AppCenterLog.Info(Settings.AppName, report.AndroidDetails.ThreadName);
                    }

                    // Show modal page displaying status of crash report.
                    MainThread.BeginInvokeOnMainThread(() =>
                    {
                        Tuple <string, bool> values  = new Tuple <string, bool>(message, true);
                        FreshBasePageModel pageModel = GetCurrentPageModel();
                        pageModel.CoreMethods.PushPageModel <ModalActivityViewModel>(values, true);
                    });
                };

                Crashes.SentErrorReport += (sender, e) =>
                {
                    AppCenterLog.Info(Settings.AppName, "Sent error report");

                    var         args   = e as SentErrorReportEventArgs;
                    ErrorReport report = args.Report;

                    if (report.Exception != null)
                    {
                        AppCenterLog.Info(Settings.AppName, report.Exception.ToString());
                    }
                    else
                    {
                        AppCenterLog.Info(Settings.AppName, "No system exception was found");
                    }

                    if (report.AndroidDetails != null)
                    {
                        AppCenterLog.Info(Settings.AppName, report.AndroidDetails.ThreadName);
                    }
                };

                Crashes.FailedToSendErrorReport += (sender, e) =>
                {
                    string message = "Failed to send error report.  Please check your internet connection.";
                    AppCenterLog.Info(Settings.AppName, message);

                    var         args   = e as FailedToSendErrorReportEventArgs;
                    ErrorReport report = args.Report;

                    if (report.Exception != null)
                    {
                        AppCenterLog.Info(Settings.AppName, report.Exception.ToString());
                    }
                    else if (report.AndroidDetails != null)
                    {
                        AppCenterLog.Info(Settings.AppName, report.AndroidDetails.ThreadName);
                    }

                    if (e.Exception != null)
                    {
                        AppCenterLog.Info(Settings.AppName, "There is an exception associated with the failure");
                    }

                    // Show modal page displaying status of crash report.
                    MainThread.BeginInvokeOnMainThread(() =>
                    {
                        Tuple <string, bool> values  = new Tuple <string, bool>(message, false);
                        FreshBasePageModel pageModel = GetCurrentPageModel();
                        pageModel.CoreMethods.PushPageModel <ModalActivityViewModel>(values, true);
                    });
                };

                Crashes.ShouldAwaitUserConfirmation = () =>
                {
                    MainThread.BeginInvokeOnMainThread(() =>
                    {
                        Current.MainPage.DisplayActionSheet("Uh Oh.  Sorry I crashed.  Do you want to send a crash report?", "Cancel", null, "Send", "Always Send", "Don't Send")
                        .ContinueWith((arg) =>
                        {
                            var answer = arg.Result;
                            UserConfirmation userConfirmationSelection;

                            if (answer == "Send")
                            {
                                userConfirmationSelection = UserConfirmation.Send;
                            }
                            else if (answer == "Always Send")
                            {
                                userConfirmationSelection = UserConfirmation.AlwaysSend;
                            }
                            else
                            {
                                userConfirmationSelection = UserConfirmation.DontSend;
                            }

                            Crashes.NotifyUserConfirmation(userConfirmationSelection);
                        });
                    });

                    return(true);
                };

                Crashes.HasCrashedInLastSessionAsync().ContinueWith((arg) =>
                {
                    //MainThread.BeginInvokeOnMainThread(() =>
                    //{
                    //    try
                    //    {
                    //        Task<bool> didAppCrash = Crashes.HasCrashedInLastSessionAsync();

                    //        if (didAppCrash.Result)
                    //        {
                    //            Current.MainPage.DisplayAlert("Oops", "We noticed the app crashed on you.  Sorry for the inconvenience.", "Ok");
                    //        }
                    //    }
                    //    catch (Exception exception)
                    //    {
                    //        Debug.WriteLine(exception.Message);
                    //    }
                    //});
                });

                Push.PushNotificationReceived += (sender, e) =>
                {
                    MainThread.BeginInvokeOnMainThread(() =>
                    {
                        // Summarize the notification title and message.
                        StringBuilder summary = new StringBuilder
                                                    ("Push Notification Received \n\tNotification Title: " + e.Title + "\n\tMessage: " + e.Message);

                        bool isContentAvailable = false;
                        string searchText       = String.Empty;

                        // If receiving custom data, add to the summary.
                        if (e.CustomData != null)
                        {
                            summary.AppendLine("\nCustom Data:");

                            foreach (KeyValuePair <string, string> value in e.CustomData)
                            {
                                summary.AppendLine("\t" + value.Key + "\t" + value.Value);

                                switch (value.Key)
                                {
                                case "content-available":

                                    isContentAvailable = Convert.ToBoolean(value.Value);
                                    break;

                                case "SearchText":

                                    searchText = value.Value;
                                    break;
                                }
                            }

                            if (!String.IsNullOrEmpty(searchText))
                            {
                                FreshBasePageModel freshBasePageModel = GetCurrentPageModel();

                                if (freshBasePageModel is HomeViewModel)
                                {
                                    HomeViewModel homeViewModel = freshBasePageModel as HomeViewModel;
                                    homeViewModel.SearchCommand.Execute(searchText);
                                }
                            }
                        }

                        //Current.MainPage.DisplayAlert("Push Notification Received", summary.ToString(), "Ok");
                    });
                };

                // Initialize AppCenter SDK
                AppCenter.Start
                (
                    String.Format
                    (
                        "ios={0};android={1};"
                        , Settings.AppCenterSecretiOS
                        , Settings.AppCenterSecretAndroid
                    )
                    , typeof(Analytics)
                    , typeof(Crashes)
                    , typeof(Push)
                );
            }
        }
Beispiel #28
0
 internal PaymentFilterView(FreshBasePageModel bindingContext) : this()
 {
     this.BindingContext = bindingContext;
 }
 public MockContentPage(FreshBasePageModel model)
 {
     BindingContext = model;
 }
 public PopupCoreMethods(Page currentPage, FreshBasePageModel pageModel)
 {
     _currentPage      = currentPage;
     _currentPageModel = pageModel;
 }
        void SetupFirstNavigationAndPage()
        {
            _navigationMock = Substitute.For<IFreshNavigationService> ();                
            FreshIOC.Container.Register<IFreshNavigationService> (_navigationMock, "firstNav");

            _page = FreshPageModelResolver.ResolvePageModel<MockContentPageModel>();
            _pageModel = _page.BindingContext as MockContentPageModel;   
            _pageModel.CurrentNavigationServiceName = "firstNav";
        }
        void PushSecondNavigationStack()
        {
            _coreMethods = new PageModelCoreMethods (_page, _pageModel);
            _coreMethods.PushPageModel<MockContentPageModel> ();

            _pageSecond = FreshPageModelResolver.ResolvePageModel<MockContentPageModel>();
            _pageModelSecond = _pageSecond.BindingContext as MockContentPageModel;   
            _coreMethodsSecondPage = new PageModelCoreMethods (_pageSecond, _pageModelSecond);
            _secondNavService = new FreshNavigationContainer (_pageSecond, "secondNav");

            _coreMethods.PushNewNavigationServiceModal (_secondNavService, new FreshBasePageModel[] { _pageModelSecond });
        }