From 4f9728d2bc8413e7e5f939f452393bb8a363ba3e Mon Sep 17 00:00:00 2001 From: phanhuuloi27 <73208452+Nezumi2711@users.noreply.github.com> Date: Fri, 1 Jul 2022 19:57:43 +0700 Subject: [PATCH] Fix search function not work --- .../java/com/waterbase/foodify/FoodList.java | 111 +++++++++--------- 1 file changed, 56 insertions(+), 55 deletions(-) diff --git a/Foodify/app/src/main/java/com/waterbase/foodify/FoodList.java b/Foodify/app/src/main/java/com/waterbase/foodify/FoodList.java index bd1aaf6..9b6dcbe 100644 --- a/Foodify/app/src/main/java/com/waterbase/foodify/FoodList.java +++ b/Foodify/app/src/main/java/com/waterbase/foodify/FoodList.java @@ -131,6 +131,58 @@ public class FoodList extends AppCompatActivity { return; } } + + setTitle(categoryName); + + //Search + materialSearchBar = (MaterialSearchBar) findViewById(R.id.searchBar); + materialSearchBar.setHint("Enter your food"); + loadSuggest(); + materialSearchBar.setCardViewElevation(10); + materialSearchBar.addTextChangeListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + //When user type their text, we will change suggest list + + List suggest = new ArrayList(); + for(String search:suggestList) { + if(search.toLowerCase().contains(materialSearchBar.getText().toLowerCase())) + suggest.add(search); + } + materialSearchBar.setLastSuggestions(suggest); + } + + @Override + public void afterTextChanged(Editable s) { + + } + }); + materialSearchBar.setOnSearchActionListener(new MaterialSearchBar.OnSearchActionListener() { + @Override + public void onSearchStateChanged(boolean enabled) { + //When search bar is close + //Restore original adapter + if(!enabled) + recyclerView.setAdapter(adapter); + } + + @Override + public void onSearchConfirmed(CharSequence text) { + //When search finish + //Show result of search adapter + startSearch(text); + } + + @Override + public void onButtonClicked(int buttonCode) { + + } + }); } }); @@ -139,59 +191,6 @@ public class FoodList extends AppCompatActivity { layoutManager = new LinearLayoutManager(this); recyclerView.setLayoutManager(layoutManager); - //Search - materialSearchBar = (MaterialSearchBar) findViewById(R.id.searchBar); - materialSearchBar.setHint("Enter your food"); - loadSuggest(); - materialSearchBar.setLastSuggestions(suggestList); - materialSearchBar.setCardViewElevation(10); - materialSearchBar.addTextChangeListener(new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - //When user type their text, we will change suggest list - - List suggest = new ArrayList(); - for(String search:suggestList) { - if(search.toLowerCase().contains(materialSearchBar.getText().toLowerCase())) - suggest.add(search); - } - materialSearchBar.setLastSuggestions(suggest); - } - - @Override - public void afterTextChanged(Editable s) { - - } - }); - materialSearchBar.setOnSearchActionListener(new MaterialSearchBar.OnSearchActionListener() { - @Override - public void onSearchStateChanged(boolean enabled) { - //When search bar is close - //Restore original adapter - if(!enabled) - recyclerView.setAdapter(adapter); - } - - @Override - public void onSearchConfirmed(CharSequence text) { - //When search finish - //Show result of search adapter - startSearch(text); - } - - @Override - public void onButtonClicked(int buttonCode) { - - } - }); - - setTitle(categoryName); - // calling the action bar ActionBar actionBar = getSupportActionBar(); @@ -207,7 +206,7 @@ public class FoodList extends AppCompatActivity { private void startSearch(CharSequence text) { //Create query by name - Query searchByName = foodList.orderByChild("Name").equalTo(text.toString()); + Query searchByName = foodList.orderByChild("name").equalTo(text.toString()); //Create options with query FirebaseRecyclerOptions foodOptions = new FirebaseRecyclerOptions.Builder() .setQuery(searchByName, Food.class) @@ -243,7 +242,7 @@ public class FoodList extends AppCompatActivity { } private void loadSuggest() { - foodList.orderByChild("MenuId").equalTo(categoryId) + foodList.orderByChild("menuId").equalTo(categoryId) .addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { @@ -251,6 +250,8 @@ public class FoodList extends AppCompatActivity { Food item = postSnapshot.getValue(Food.class); suggestList.add(item.getName()); } + + materialSearchBar.setLastSuggestions(suggestList); } @Override