diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs
index c1382e51e..e0fc9ee67 100644
--- a/Flow.Launcher/ViewModel/MainViewModel.cs
+++ b/Flow.Launcher/ViewModel/MainViewModel.cs
@@ -778,7 +778,7 @@ namespace Flow.Launcher.ViewModel
///
/// To avoid deadlock, this method should not called from main thread
///
- public void UpdateResultView(IEnumerable resultsForUpdates)
+ public void UpdateResultView(IReadOnlyCollection resultsForUpdates)
{
if (!resultsForUpdates.Any())
return;
diff --git a/Flow.Launcher/ViewModel/ResultsViewModel.cs b/Flow.Launcher/ViewModel/ResultsViewModel.cs
index 41f16f4f2..2bdafca62 100644
--- a/Flow.Launcher/ViewModel/ResultsViewModel.cs
+++ b/Flow.Launcher/ViewModel/ResultsViewModel.cs
@@ -1,16 +1,13 @@
-using System;
+using Flow.Launcher.Infrastructure.UserSettings;
+using Flow.Launcher.Plugin;
using System.Collections.Generic;
-using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Linq;
using System.Threading;
-using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
-using Flow.Launcher.Infrastructure.UserSettings;
-using Flow.Launcher.Plugin;
namespace Flow.Launcher.ViewModel
{
@@ -146,7 +143,7 @@ namespace Flow.Launcher.ViewModel
///
/// To avoid deadlock, this method should not called from main thread
///
- public void AddResults(IEnumerable resultsForUpdates, CancellationToken token)
+ public void AddResults(IReadOnlyCollection resultsForUpdates, CancellationToken token)
{
var newResults = NewResults(resultsForUpdates);
@@ -191,10 +188,11 @@ namespace Flow.Launcher.ViewModel
return Results.Where(r => r.Result.PluginID != resultId)
.Concat(newResults)
.OrderByDescending(r => r.Result.Score)
+ .Distinct()
.ToList();
}
- private List NewResults(IEnumerable resultsForUpdates)
+ private List NewResults(IReadOnlyCollection resultsForUpdates)
{
if (!resultsForUpdates.Any())
return Results;
@@ -202,6 +200,7 @@ namespace Flow.Launcher.ViewModel
return Results.Where(r => r != null && !resultsForUpdates.Any(u => u.ID == r.Result.PluginID))
.Concat(resultsForUpdates.SelectMany(u => u.Results, (u, r) => new ResultViewModel(r, _settings)))
.OrderByDescending(rv => rv.Result.Score)
+ .Distinct()
.ToList();
}
#endregion