Improve LibrarySizeChanged performance

This commit is contained in:
Michael Bucari-Tovo 2025-02-27 22:56:02 -07:00
parent 5f5c9f65ed
commit 47c9fcb883
3 changed files with 9 additions and 8 deletions

View File

@ -4,7 +4,6 @@ using DataLayer;
using LibationFileManager; using LibationFileManager;
using ReactiveUI; using ReactiveUI;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace LibationAvalonia.ViewModels namespace LibationAvalonia.ViewModels
@ -44,9 +43,6 @@ namespace LibationAvalonia.ViewModels
private void Configure_BackupCounts() private void Configure_BackupCounts()
{ {
LibraryCommands.LibrarySizeChanged += async (object _, List<LibraryBook> libraryBooks)
=> await SetBackupCountsAsync(libraryBooks);
//Pass null to the setup count to get the whole library. //Pass null to the setup count to get the whole library.
LibraryCommands.BookUserDefinedItemCommitted += async (_, _) LibraryCommands.BookUserDefinedItemCommitted += async (_, _)
=> await SetBackupCountsAsync(null); => await SetBackupCountsAsync(null);

View File

@ -4,6 +4,7 @@ using LibationAvalonia.Views;
using LibationFileManager; using LibationFileManager;
using ReactiveUI; using ReactiveUI;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks;
namespace LibationAvalonia.ViewModels namespace LibationAvalonia.ViewModels
{ {
@ -38,7 +39,9 @@ namespace LibationAvalonia.ViewModels
private async void LibraryCommands_LibrarySizeChanged(object sender, List<LibraryBook> fullLibrary) private async void LibraryCommands_LibrarySizeChanged(object sender, List<LibraryBook> fullLibrary)
{ {
await ProductsDisplay.UpdateGridAsync(fullLibrary); await Task.WhenAll(
SetBackupCountsAsync(fullLibrary),
ProductsDisplay.UpdateGridAsync(fullLibrary));
} }
private static string menufyText(string header) => Configuration.IsMacOs ? header : $"_{header}"; private static string menufyText(string header) => Configuration.IsMacOs ? header : $"_{header}";

View File

@ -8,6 +8,7 @@ using ReactiveUI;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks;
namespace LibationAvalonia.Views namespace LibationAvalonia.Views
{ {
@ -60,13 +61,14 @@ namespace LibationAvalonia.Views
filterSearchTb.Focus(); filterSearchTb.Focus();
} }
public async System.Threading.Tasks.Task OnLibraryLoadedAsync(List<LibraryBook> initialLibrary) public async Task OnLibraryLoadedAsync(List<LibraryBook> initialLibrary)
{ {
if (QuickFilters.UseDefault) if (QuickFilters.UseDefault)
await ViewModel.PerformFilter(QuickFilters.Filters.FirstOrDefault()); await ViewModel.PerformFilter(QuickFilters.Filters.FirstOrDefault());
await ViewModel.SetBackupCountsAsync(initialLibrary); await Task.WhenAll(
await ViewModel.ProductsDisplay.BindToGridAsync(initialLibrary); ViewModel.SetBackupCountsAsync(initialLibrary),
ViewModel.ProductsDisplay.BindToGridAsync(initialLibrary));
} }
public void ProductsDisplay_LiberateClicked(object _, LibraryBook libraryBook) => ViewModel.LiberateClicked(libraryBook); public void ProductsDisplay_LiberateClicked(object _, LibraryBook libraryBook) => ViewModel.LiberateClicked(libraryBook);