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; }
public void UpdateLoadingState(IItemLoaderState loaderState) { ViewModel?.UpdateModel(loaderState); }
public void UpdateLoadingState(IItemLoaderState loaderState) { Status = loaderState.LoadingStatus; }
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); }
/// <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); }); } } }); }
public void UpdateLoadingState(IItemLoaderState loaderState) { ThreadHelper.ThrowIfNotOnUIThread(); ViewModel?.UpdateModel(loaderState); }
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); } } }); }