@@ -122,6 +122,7 @@ public class MainActivity extends AppCompatActivity
122
122
private long _lastInfoBarTextShownAt = 0 ;
123
123
private SearchView _searchView ;
124
124
private MenuItem _searchItem ;
125
+ private String _currentSearch = "" ;
125
126
126
127
@ Override
127
128
protected void onCreate (Bundle savedInstanceState ) {
@@ -281,6 +282,7 @@ public void onBackPressed() {
281
282
_drawer .closeDrawer (GravityCompat .START );
282
283
} else if (!_searchView .isIconified ()) {
283
284
_searchView .setIconified (true );
285
+ updateSearchFilter ("" );
284
286
} else {
285
287
super .onBackPressed ();
286
288
}
@@ -376,13 +378,19 @@ public boolean handleBarClick(MenuItem item) {
376
378
return true ;
377
379
}
378
380
379
- private void setRecyclerMemeListAdapter (RecyclerView .Adapter adapter ) {
381
+ private void setRecyclerMemeListAdapter (MemeItemAdapter adapter ) {
382
+ adapter .setFilter (_currentSearch );
380
383
_recyclerMemeList .setAdapter (adapter );
381
384
boolean isEmpty = adapter .getItemCount () == 0 ;
382
385
_emptylistLayout .setVisibility (isEmpty ? View .VISIBLE : View .GONE );
383
386
_recyclerMemeList .setVisibility (isEmpty ? View .GONE : View .VISIBLE );
384
387
}
385
388
389
+ private void updateSearchFilter (String newFilter ) {
390
+ _currentSearch = newFilter ;
391
+ ((MemeItemAdapter ) _recyclerMemeList .getAdapter ()).setFilter (newFilter );
392
+ }
393
+
386
394
@ Override
387
395
protected void onActivityResult (int requestCode , int resultCode , Intent data ) {
388
396
super .onActivityResult (requestCode , resultCode , data );
@@ -657,17 +665,15 @@ public boolean onCreateOptionsMenu(final Menu menu) {
657
665
@ Override
658
666
public boolean onQueryTextSubmit (String query ) {
659
667
if (query != null ) {
660
- MemeItemAdapter adapter = (MemeItemAdapter ) _recyclerMemeList .getAdapter ();
661
- adapter .setFilter (query );
668
+ updateSearchFilter (query );
662
669
}
663
670
return false ;
664
671
}
665
672
666
673
@ Override
667
674
public boolean onQueryTextChange (String newText ) {
668
675
if (newText != null ) {
669
- MemeItemAdapter adapter = (MemeItemAdapter ) _recyclerMemeList .getAdapter ();
670
- adapter .setFilter (newText );
676
+ updateSearchFilter (newText );
671
677
}
672
678
return false ;
673
679
}
@@ -677,6 +683,7 @@ public boolean onQueryTextChange(String newText) {
677
683
public void onFocusChange (View v , boolean hasFocus ) {
678
684
if (!hasFocus ) {
679
685
_searchItem .collapseActionView ();
686
+ updateSearchFilter ("" );
680
687
}
681
688
}
682
689
});
0 commit comments