From 9d3a7b66a646ca52bce1e3ebb6fb2a32a4f7d586 Mon Sep 17 00:00:00 2001 From: Nlick47 <2247717951@qq.com> Date: Fri, 21 Mar 2025 19:45:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E8=A7=82=E7=9C=8B?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E6=97=A0=E9=99=90=E6=BB=9A=E5=8A=A8=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IncrementalLoadingBehavior.cs | 2 ++ DownKyi/ViewModels/ViewMyHistoryViewModel.cs | 29 +++++++++++++------ 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/DownKyi/CustomAction/IncrementalLoadingBehavior.cs b/DownKyi/CustomAction/IncrementalLoadingBehavior.cs index 2dfc80b..0f55c2b 100644 --- a/DownKyi/CustomAction/IncrementalLoadingBehavior.cs +++ b/DownKyi/CustomAction/IncrementalLoadingBehavior.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using Avalonia; using Avalonia.Controls; using Avalonia.Xaml.Interactivity; +using ImTools; namespace DownKyi.CustomAction; @@ -51,6 +52,7 @@ public class IncrementalLoadingBehavior: Behavior isLoading = true; var items = await LoadPageFunc(currentPage); + if(items == null || items.Length == 0) return; foreach (var item in items) { AssociatedObject.Items.Add(item); diff --git a/DownKyi/ViewModels/ViewMyHistoryViewModel.cs b/DownKyi/ViewModels/ViewMyHistoryViewModel.cs index ccf560b..b2145cf 100644 --- a/DownKyi/ViewModels/ViewMyHistoryViewModel.cs +++ b/DownKyi/ViewModels/ViewMyHistoryViewModel.cs @@ -259,19 +259,30 @@ public class ViewMyHistoryViewModel : ViewModelBase int startIndex = (page - 1) * VideoNumberInPage; return Task.Run(() => { - var result = History.GetHistory(_nextMax, _nextViewAt, VideoNumberInPage); - foreach (var item in result.List) + App.PropertyChangeAsync(() => { - var history = Convert(item, EventAggregator); - if (history != null) + LoadingVisibility = true; + }); + var result = History.GetHistory(_nextMax, _nextViewAt, VideoNumberInPage); + if (result?.List?.Count > 0) + { + foreach (var item in result.List) { - Medias.Add(history); + var history = Convert(item, EventAggregator); + if (history != null) + { + Medias.Add(history); + } } + App.PropertyChangeAsync(() => + { + LoadingVisibility = false; + }); + _nextMax = result.Cursor.Max; + _nextViewAt = result.Cursor.ViewAt; + return Medias.Skip(startIndex).Take(VideoNumberInPage).ToArray(); } - - _nextMax = result.Cursor.Max; - _nextViewAt = result.Cursor.ViewAt; - return Medias.Skip(startIndex).Take(VideoNumberInPage).ToArray(); + return Array.Empty(); }); };