Ejemplo n.º 1
0
        private async void Scroll_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
        {
            if (!e.IsIntermediate)
            {
                var Sender = sender as ScrollViewer;
                if (Sender.ScrollableHeight - Sender.VerticalOffset == 0)
                {
                    var CurrentCategory = this.DefaultViewModel[Item] as Category;

                    if (CurrentCategory.NextPageUri == null)
                    {
                        this.Scroll.ViewChanged -= Scroll_ViewChanged;
                    }
                    else
                    {
                        lock (IncrementalLoadingHelper)
                        {
                            if (isIncrementalLoadingWorking)
                            {
                                return;
                            }
                            else
                            {
                                isIncrementalLoadingWorking = true;
                            }
                        }

                        var statusBar = StatusBar.GetForCurrentView();
                        statusBar.ProgressIndicator.Text          = ResourceLoader.GetForCurrentView("Resources").GetString("DownloadingMessage");
                        statusBar.ProgressIndicator.ProgressValue = null;
                        await statusBar.ProgressIndicator.ShowAsync();

                        bool isSuccess = await CategoriesSource.LoadMoreItemsAsync(CurrentCategory.Id, CurrentCategory.NextPageUri);

                        await statusBar.ProgressIndicator.HideAsync();

                        if (isSuccess)
                        {
                            if ((this.DefaultViewModel[Item] as Category).NextPageUri == null)
                            {
                                this.Scroll.ViewChanged -= Scroll_ViewChanged;
                            }
                        }
                        else
                        {
                            ShowMessageAsync(ResourceLoader.GetForCurrentView("Resources").GetString("ErrorMessage"));
                        }

                        lock (IncrementalLoadingHelper)
                        {
                            isIncrementalLoadingWorking = false;
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private async void NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
        {
            this.progressRing.IsActive = true;

            Category DisplayedCategory = await CategoriesSource.GetCategoryAsync((string)e.NavigationParameter);

            this.progressRing.IsActive = false;

            if (DisplayedCategory == null)
            {
                if (Frame.CanGoBack)
                {
                    Frame.GoBack();
                }
                else
                {
                    if (!Frame.Navigate(typeof(MainPage), "FoodLook 2"))
                    {
                        throw new Exception();
                    }
                    Frame.BackStack.Clear();
                }

                ShowMessageAsync(ResourceLoader.GetForCurrentView("Resources").GetString("ErrorMessage"));
            }
            else
            {
                this.DefaultViewModel[Item]  = DisplayedCategory;
                this.DefaultViewModel[Label] = DisplayedCategory.Label;

                if (DisplayedCategory.NextPageUri == null)
                {
                    this.Scroll.ViewChanged -= Scroll_ViewChanged;
                }

                this.CategoryPagePivot.Visibility = Visibility.Visible;
            }
        }