Пример #1
0
        public void UpdateModel(IItemLoaderState loaderState)
        {
            PackageSearchStatus = Convert(loaderState.LoadingStatus);
            ItemsFound          = loaderState.ItemsCount;

            var convertedList = new System.Collections.SortedList();

            foreach (var kv in loaderState.SourceLoadingStatus)
            {
                convertedList.Add(kv.Key, Convert(kv.Value));
            }
            SourceLoadingStatus = convertedList;
        }
Пример #2
0
 public void UpdateLoadingState(IItemLoaderState loaderState)
 {
     ViewModel?.UpdateModel(loaderState);
 }
Пример #3
0
 public void UpdateLoadingState(IItemLoaderState loaderState)
 {
     Status = loaderState.LoadingStatus;
 }
Пример #4
0
        private Visibility EvaluateStatusBarVisibility(IItemLoader <PackageItemListViewModel> loader, IItemLoaderState state)
        {
            var statusBarVisibility = Visibility.Hidden;

            if (state.LoadingStatus == LoadingStatus.Cancelled ||
                state.LoadingStatus == LoadingStatus.ErrorOccurred)
            {
                statusBarVisibility = Visibility.Visible;
            }

            if (loader.IsMultiSource)
            {
                var hasMore = _loadingStatusBar.ItemsLoaded != 0 && state.ItemsCount > _loadingStatusBar.ItemsLoaded;
                if (hasMore)
                {
                    statusBarVisibility = Visibility.Visible;
                }

                if (state.LoadingStatus == LoadingStatus.Loading && state.ItemsCount > 0)
                {
                    statusBarVisibility = Visibility.Visible;
                }
            }

            return(statusBarVisibility);
        }
Пример #5
0
        /// <summary>
        /// Shows the Loading status bar, if necessary. Also, it inserts the Loading... indicator, if necesary
        /// </summary>
        /// <param name="loader">Current loader</param>
        /// <param name="state">Progress reported by the <c>Progress</c> callback</param>
        private void HandleItemLoaderStateChange(IItemLoader <PackageItemListViewModel> loader, IItemLoaderState state)
        {
            _joinableTaskFactory.Value.Run(async() =>
            {
                await _joinableTaskFactory.Value.SwitchToMainThreadAsync();

                if (loader == _loader)
                {
                    _loadingStatusBar.UpdateLoadingState(state);

                    // decide when to show status bar
                    var desiredVisibility = EvaluateStatusBarVisibility(loader, state);

                    if (_loadingStatusBar.Visibility != Visibility.Visible &&
                        desiredVisibility == Visibility.Visible)
                    {
                        _loadingStatusBar.Visibility = desiredVisibility;
                    }

                    _loadingStatusIndicator.Status = state.LoadingStatus;

                    if (!Items.Contains(_loadingStatusIndicator))
                    {
                        await _list.ItemsLock.ExecuteAsync(() =>
                        {
                            Items.Add(_loadingStatusIndicator);
                            return(Task.CompletedTask);
                        });
                    }
                }
            });
        }
Пример #6
0
 public void UpdateLoadingState(IItemLoaderState loaderState)
 {
     ThreadHelper.ThrowIfNotOnUIThread();
     ViewModel?.UpdateModel(loaderState);
 }
Пример #7
0
        private void HandleItemLoaderStateChange(IItemLoader <PackageItemListViewModel> loader, IItemLoaderState state)
        {
            NuGetUIThreadHelper.JoinableTaskFactory.Run(async() =>
            {
                await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

                if (loader == _loader)
                {
                    _loadingStatusBar.UpdateLoadingState(state);

                    // decide when to show status bar
                    var desiredVisibility = EvaluateStatusBarVisibility(loader, state);

                    if (_loadingStatusBar.Visibility != Visibility.Visible &&
                        desiredVisibility == Visibility.Visible)
                    {
                        _loadingStatusBar.Visibility = desiredVisibility;
                    }

                    _loadingStatusIndicator.Status = state.LoadingStatus;

                    if (!Items.Contains(_loadingStatusIndicator))
                    {
                        Items.Add(_loadingStatusIndicator);
                    }
                }
            });
        }