Add guild search bar

This commit is contained in:
Jack Billings 2016-08-07 19:30:40 -05:00 committed by jjbillings
parent 3896d73e43
commit b85a30de0a
3 changed files with 13 additions and 11 deletions

View file

@ -8,7 +8,7 @@
<SearchView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/guild_search_view"
android:queryHint="Search for guilds"/>
android:queryHint="@string/guild_search_hint"/>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"

View file

@ -27,12 +27,12 @@ public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter<Public
public APIHelper apiHelper;
private List<Group> publicGuildList;
private List<Group> fullPublicGuildList;
private List<String> memberGuildIDs;
private List<Group> publicGuildListCopy;
public void setPublicGuildList(List<Group> publicGuildList) {
this.publicGuildList = publicGuildList;
this.publicGuildListCopy = new ArrayList<>(publicGuildList);
this.fullPublicGuildList = new ArrayList<>(publicGuildList);
this.notifyDataSetChanged();
}
@ -98,14 +98,16 @@ public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter<Public
private boolean isInGroup(Group guild) {
return this.memberGuildIDs != null && this.memberGuildIDs.contains(guild.id);
}
@Override
public Filter getFilter() {
return new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
List<Group> filteredGuilds = null;
if(constraint.length() == 0) {
filteredGuilds = publicGuildListCopy;
filteredGuilds = fullPublicGuildList;
} else {
filteredGuilds = getFilteredResults(constraint.toString().toLowerCase());
}
@ -123,11 +125,11 @@ public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter<Public
};
}
protected List<Group> getFilteredResults(String constraint) {
protected List<Group> getFilteredResults(String query) {
List<Group> filteredGuilds = new ArrayList<>();
for(Group guild : publicGuildListCopy) {
if(guild.name.toLowerCase().contains(constraint)) {
for(Group guild : fullPublicGuildList) {
if(guild.name.toLowerCase().contains(query)) {
filteredGuilds.add(guild);
}
}

View file

@ -83,14 +83,14 @@ public class PublicGuildsFragment extends BaseMainFragment implements SearchView
}
@Override
public boolean onQueryTextSubmit(String s) {
viewAdapter.getFilter().filter(s);
public boolean onQueryTextSubmit(String query) {
viewAdapter.getFilter().filter(query);
return true;
}
@Override
public boolean onQueryTextChange(String s) {
viewAdapter.getFilter().filter(s);
public boolean onQueryTextChange(String query) {
viewAdapter.getFilter().filter(query);
return true;
}
}