22using System . Collections . Generic ;
33using System . Linq ;
44using System . Text . Json . Serialization ;
5- using CommunityToolkit . Mvvm . DependencyInjection ;
6- using Flow . Launcher . Helper ;
7- using Flow . Launcher . Infrastructure . UserSettings ;
85using Flow . Launcher . Plugin ;
96
107namespace Flow . Launcher . Storage
@@ -19,70 +16,51 @@ public class History
1916 [ JsonInclude ]
2017 public List < LastOpenedHistoryItem > LastOpenedHistoryItems { get ; private set ; } = [ ] ;
2118
22- private readonly Settings _settings = Ioc . Default . GetRequiredService < Settings > ( ) ;
23-
2419 private readonly int _maxHistory = 300 ;
2520
26-
2721 public void PopulateHistoryFromLegacyHistory ( )
2822 {
2923 if ( Items . Count == 0 ) return ;
3024 // Migrate old history items to new LastOpenedHistoryItems
3125 foreach ( var item in Items )
3226 {
3327 LastOpenedHistoryItems . Add ( new LastOpenedHistoryItem
34- {
28+ {
3529 Query = item . Query ,
36- ExecutedDateTime = item . ExecutedDateTime ,
37- HistoryStyle = HistoryStyle . Query
30+ ExecutedDateTime = item . ExecutedDateTime
3831 } ) ;
3932 }
4033 Items . Clear ( ) ;
4134 }
4235
4336 public void Add ( Result result )
44- {
37+ {
4538 if ( string . IsNullOrEmpty ( result . OriginQuery . RawQuery ) ) return ;
46- if ( string . IsNullOrEmpty ( result . PluginID ) ) return ;
4739
48- var style = _settings . HistoryStyle ;
4940 // Maintain the max history limit
50- if ( LastOpenedHistoryItems . Count > _maxHistory )
41+ if ( LastOpenedHistoryItems . Count > _maxHistory )
5142 {
5243 LastOpenedHistoryItems . RemoveAt ( 0 ) ;
5344 }
5445
5546 // If the last item is the same as the current result, just update the timestamp
56- if ( LastOpenedHistoryItems . Count > 0 )
47+ if ( LastOpenedHistoryItems . Count > 0 &&
48+ LastOpenedHistoryItems . Last ( ) . Equals ( result ) )
5749 {
58- var last = LastOpenedHistoryItems . Last ( ) ;
59- if ( result . IsEquals ( last , style ) )
60- {
61- last . ExecutedDateTime = DateTime . Now ;
62- return ;
63- }
64-
65- var existItem = LastOpenedHistoryItems . FirstOrDefault ( x => result . IsEquals ( x , style ) ) ;
66-
67- if ( existItem != null )
68- {
69- existItem . ExecutedDateTime = DateTime . Now ;
70- return ;
71- }
50+ LastOpenedHistoryItems . Last ( ) . ExecutedDateTime = DateTime . Now ;
7251 }
73-
74- LastOpenedHistoryItems . Add ( new LastOpenedHistoryItem
52+ else
7553 {
76- Title = result . Title ,
77- SubTitle = result . SubTitle ,
78- PluginID = result . PluginID ,
79- Query = result . OriginQuery . RawQuery ,
80- RecordKey = result . RecordKey ,
81- ExecutedDateTime = DateTime . Now ,
82- HistoryStyle = style
83- } ) ;
54+ LastOpenedHistoryItems . Add ( new LastOpenedHistoryItem
55+ {
56+ Title = result . Title ,
57+ SubTitle = result . SubTitle ,
58+ PluginID = result . PluginID ,
59+ Query = result . OriginQuery . RawQuery ,
60+ RecordKey = result . RecordKey ,
61+ ExecutedDateTime = DateTime . Now
62+ } ) ;
63+ }
8464 }
85-
86-
8765 }
8866}
0 commit comments