diff --git a/AresNews/AresNews/ViewModels/FeedsViewModel.cs b/AresNews/AresNews/ViewModels/FeedsViewModel.cs index 60c8cc1..4a51a22 100644 --- a/AresNews/AresNews/ViewModels/FeedsViewModel.cs +++ b/AresNews/AresNews/ViewModels/FeedsViewModel.cs @@ -71,9 +71,9 @@ public bool IsRefreshing OnPropertyChanged(nameof(IsRefreshing)); } } - private ObservableCollection
_articles; + private ObservableRangeCollection
_articles; - public ObservableCollection
Articles + public ObservableRangeCollection
Articles { get { return _articles; } set @@ -233,9 +233,9 @@ public FeedsViewModel(FeedsPage page) CurrentPage = page; // Instantiate definitions - FeedTabs = new ObservableCollection(); + FeedTabs = new ObservableRangeCollection(); Feeds = new ObservableCollection(App.SqLiteConn.GetAllWithChildren()); - _articles = new ObservableCollection
(); + _articles = new ObservableRangeCollection
(); // Organise feeds into tabs CopyFeedsToTabs(); @@ -460,14 +460,16 @@ private async Task AggregateFeed(Feed feed, bool firstLoad = true) { - articles = await App.WService.Get>(controller:"feeds", action: needUpdate ? "update" : null, parameters: needUpdate ? new string[] { timeUpdate } : null, jsonBody: $"{{\"search\": \"{feed.Keywords}\"}}", unSuccessCallback: async (err) => + articles = await App.WService.Get>(controller:"feeds", + action: needUpdate ? "update" : null, + parameters: needUpdate ? + new string[] { timeUpdate } : null, + jsonBody: $"{{\"search\": \"{feed.Keywords}\"}}", unSuccessCallback: async (err) => { #if DEBUG throw new Exception(await err.Content.ReadAsStringAsync()); #endif }); - //if (!needUpdate) - // Articles?.Clear(); } // Offline search @@ -491,11 +493,8 @@ private async Task AggregateFeed(Feed feed, bool firstLoad = true) UnnoticedArticles = new ObservableCollection
( articles); } else - { // Update list of articles InsertArticles(articles); - - } SelectedFeed.IsLoaded = true; IsRefreshing = false; @@ -507,12 +506,12 @@ private async Task AggregateFeed(Feed feed, bool firstLoad = true) /// articles to add private void InsertArticles(IEnumerable
articles) { - Articles?.Clear(); - for (int i = 0; i < articles.Count(); i++) - { - if (i != -1) - Articles.Add(articles.ElementAt(i)); - } + ObservableRangeCollection
articlesOld = new (_articles); + Articles = new ObservableRangeCollection
(); + + Articles.AddRange(articles); + if (articlesOld.Any()) + Articles.AddRange(articlesOld); } // See detail of the article diff --git a/AresNews/AresNews/Views/Portals/DiscordAuthPortal.xaml.cs b/AresNews/AresNews/Views/Portals/DiscordAuthPortal.xaml.cs index e3d1c88..ab12e4e 100644 --- a/AresNews/AresNews/Views/Portals/DiscordAuthPortal.xaml.cs +++ b/AresNews/AresNews/Views/Portals/DiscordAuthPortal.xaml.cs @@ -3,13 +3,7 @@ using AresNews.Models.Http.Responses; using Newtonsoft.Json; using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; using System.Text.RegularExpressions; -using System.Threading.Tasks; - using Xamarin.Forms; using Xamarin.Forms.Xaml;