@@ -168,8 +168,17 @@ public async void ComboBoxCommand(string sort)
168168 else
169169 {
170170 _languageSort = sort ;
171- var codes = await DataBase . OrderCode ( _languageSort , favcodes , "Favourite" ) ;
172- CodeModeToViewModel ( await DataBase . OrderCode ( _basicSort , codes , "Favourite" ) ) ;
171+ if ( _isSearchCancelled )
172+ {
173+ var codes = await DataBase . OrderCode ( _languageSort , DataBase . AllCodes ) ;
174+ CodeModeToViewModel ( await DataBase . OrderCode ( _basicSort , codes , "Favourite" ) ) ;
175+ }
176+ else
177+ {
178+ var codes = await DataBase . SearchCode ( _searchText , "Favourite" ) ;
179+ codes = await DataBase . OrderCode ( _languageSort , codes ) ;
180+ CodeModeToViewModel ( await DataBase . OrderCode ( _basicSort , codes , "Favourite" ) ) ;
181+ }
173182 }
174183 VisChange ( "Not found :(" ) ;
175184 }
@@ -181,8 +190,12 @@ public bool IsSearchBusy
181190 set => this . RaiseAndSetIfChanged ( ref _isSearchBusy , value ) ;
182191
183192 }
193+
194+ private string _searchText ;
184195 public async void SearchCommand ( string text )
185196 {
197+ _searchText = text ;
198+ _isSearchCancelled = false ;
186199 if ( string . IsNullOrEmpty ( text ) ) return ;
187200 IsSearchBusy = true ;
188201 if ( text != "" && AllFavouriteCodes . Count > 0 )
@@ -194,12 +207,14 @@ public async void SearchCommand(string text)
194207 IsSearchBusy = false ;
195208 }
196209
210+ private bool _isSearchCancelled = true ;
197211 public async void SearchCancelled ( )
198212 {
199213 var allCodes = AllFavouriteCodes . Select ( c => c . Code ) . ToList ( ) ;
200214 allCodes = await DataBase . OrderCode ( _languageSort , allCodes , "Favourite" ) ;
201215 CodeModeToViewModel ( allCodes ) ;
202216 VisChange ( ) ;
217+ _isSearchCancelled = true ;
203218 }
204219 }
205220}
0 commit comments