diff --git a/Flow.Launcher.Plugin/Result.cs b/Flow.Launcher.Plugin/Result.cs
index f2050cc9f78..c6ca81cf31c 100644
--- a/Flow.Launcher.Plugin/Result.cs
+++ b/Flow.Launcher.Plugin/Result.cs
@@ -157,27 +157,6 @@ public string PluginDirectory
}
}
- ///
- public override bool Equals(object obj)
- {
- var r = obj as Result;
-
- var equality = string.Equals(r?.Title, Title) &&
- string.Equals(r?.SubTitle, SubTitle) &&
- string.Equals(r?.AutoCompleteText, AutoCompleteText) &&
- string.Equals(r?.CopyText, CopyText) &&
- string.Equals(r?.IcoPath, IcoPath) &&
- TitleHighlightData == r.TitleHighlightData;
-
- return equality;
- }
-
- ///
- public override int GetHashCode()
- {
- return HashCode.Combine(Title, SubTitle, AutoCompleteText, CopyText, IcoPath);
- }
-
///
public override string ToString()
{
diff --git a/Flow.Launcher.Test/Plugins/JsonRPCPluginTest.cs b/Flow.Launcher.Test/Plugins/JsonRPCPluginTest.cs
index 3d05e56796f..42a4630fe5c 100644
--- a/Flow.Launcher.Test/Plugins/JsonRPCPluginTest.cs
+++ b/Flow.Launcher.Test/Plugins/JsonRPCPluginTest.cs
@@ -63,28 +63,5 @@ public async Task GivenVariousJsonText_WhenVariousNamingCase_ThenExpectNotNullRe
})
};
- [TestCaseSource(typeof(JsonRPCPluginTest), nameof(ResponseModelsSource))]
- public async Task GivenModel_WhenSerializeWithDifferentNamingPolicy_ThenExpectSameResult_Async(JsonRPCQueryResponseModel reference)
- {
- var camelText = JsonSerializer.Serialize(reference, new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
-
- var pascalText = JsonSerializer.Serialize(reference);
-
- var results1 = await QueryAsync(new Query { Search = camelText }, default);
- var results2 = await QueryAsync(new Query { Search = pascalText }, default);
-
- Assert.IsNotNull(results1);
- Assert.IsNotNull(results2);
-
- foreach (var ((result1, result2), referenceResult) in results1.Zip(results2).Zip(reference.Result))
- {
- Assert.AreEqual(result1, result2);
- Assert.AreEqual(result1, referenceResult);
-
- Assert.IsNotNull(result1);
- Assert.IsNotNull(result1.AsyncAction);
- }
- }
-
}
}
diff --git a/Flow.Launcher/ViewModel/ResultsViewModel.cs b/Flow.Launcher/ViewModel/ResultsViewModel.cs
index 107372e0115..7d2b5bc9348 100644
--- a/Flow.Launcher/ViewModel/ResultsViewModel.cs
+++ b/Flow.Launcher/ViewModel/ResultsViewModel.cs
@@ -182,7 +182,7 @@ public void AddResults(List newRawResults, string resultId)
///
/// To avoid deadlock, this method should not called from main thread
///
- public void AddResults(IEnumerable resultsForUpdates, CancellationToken token, bool reselect = true)
+ public void AddResults(ICollection resultsForUpdates, CancellationToken token, bool reselect = true)
{
var newResults = NewResults(resultsForUpdates);
@@ -228,12 +228,12 @@ private List NewResults(List newRawResults, string resu
.ToList();
}
- private List NewResults(IEnumerable resultsForUpdates)
+ private List NewResults(ICollection resultsForUpdates)
{
if (!resultsForUpdates.Any())
return Results;
- return Results.Where(r => r != null && !resultsForUpdates.Any(u => u.ID == r.Result.PluginID))
+ return Results.Where(r => r?.Result != null && resultsForUpdates.All(u => u.ID != r.Result.PluginID))
.Concat(resultsForUpdates.SelectMany(u => u.Results, (u, r) => new ResultViewModel(r, _settings)))
.OrderByDescending(rv => rv.Result.Score)
.ToList();