use of android.widget.Filter in project SharedPreferenceInspector by PrashamTrivedi.
the class PrefsAdapter method getFilter.
/**
* <p>Returns a filter that can be used to constrain data with a filtering
* pattern.</p>
*
* <p>This method is usually implemented by {@link android.widget.Adapter}
* classes.</p>
*
* @return a filter used to constrain data
*/
@Override
public Filter getFilter() {
Filter filter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
ArrayList<Pair<String, ?>> filteredPrefs = new ArrayList<Pair<String, ?>>();
FilterResults filterFriends = new FilterResults();
if (!SharedPreferenceUtils.isEmptyString(constraint)) {
for (Pair<String, ?> keyValue : keyValSet) {
String constraintString = constraint.toString();
String prefixKey = "key: ";
String prefixValue = "value: ";
String first = keyValue.first;
Object second = keyValue.second;
if (constraintString.toLowerCase().startsWith(prefixKey)) {
if (first.toLowerCase().contains(constraintString.toLowerCase().substring(prefixKey.length()))) {
filteredPrefs.add(keyValue);
}
} else if (constraintString.toLowerCase().startsWith(prefixValue)) {
if (second != null) {
if (second.toString().contains(constraintString.toLowerCase().substring(prefixValue.length()))) {
filteredPrefs.add(keyValue);
}
}
} else {
if (first.equalsIgnoreCase(constraintString) || (second != null && second.toString().equalsIgnoreCase(constraintString))) {
filteredPrefs.add(keyValue);
}
}
}
} else {
filteredPrefs = keyValSet;
}
filterFriends.count = filteredPrefs.size();
filterFriends.values = filteredPrefs;
return filterFriends;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
filteredCollection = (ArrayList<Pair<String, ?>>) results.values;
notifyDataSetChanged();
}
};
return filter;
}
use of android.widget.Filter in project MaterialSearchView by MiguelCatalan.
the class SearchAdapter method getFilter.
@Override
public Filter getFilter() {
Filter filter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults filterResults = new FilterResults();
if (!TextUtils.isEmpty(constraint)) {
// Retrieve the autocomplete results.
List<String> searchData = new ArrayList<>();
for (String string : suggestions) {
if (string.toLowerCase().startsWith(constraint.toString().toLowerCase())) {
searchData.add(string);
}
}
// Assign the data to the FilterResults
filterResults.values = searchData;
filterResults.count = searchData.size();
}
return filterResults;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
if (results.values != null) {
data = (ArrayList<String>) results.values;
notifyDataSetChanged();
}
}
};
return filter;
}
use of android.widget.Filter in project Klyph by jonathangerbaud.
the class FollowedPeople method onViewCreated.
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
MultiObjectAdapter moa = new MultiObjectAdapter(getListView());
moa.setFilter(new Filter() {
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
setFilteredResults((List<GraphObject>) results.values);
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();
List<Friend> filteredFriends = new ArrayList<Friend>();
// perform your search here using the searchConstraint String.
constraint = constraint.toString().toLowerCase();
for (int i = 0; i < friends.size(); i++) {
Friend friend = (Friend) friends.get(i);
if (friend.getName().toLowerCase().startsWith(constraint.toString())) {
filteredFriends.add(friend);
}
}
results.count = filteredFriends.size();
results.values = filteredFriends;
return results;
}
});
setListAdapter(moa);
defineEmptyText(R.string.empty_list_no_user);
setListVisible(false);
setRequestType(Query.FOLLOWED_PEOPLE);
super.onViewCreated(view, savedInstanceState);
}
use of android.widget.Filter in project Klyph by jonathangerbaud.
the class Friends method onViewCreated.
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
MultiObjectAdapter moa = new MultiObjectAdapter(getListView());
moa.setFilter(new Filter() {
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
setFilteredResults((List<GraphObject>) results.values);
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();
List<Friend> filteredFriends = new ArrayList<Friend>();
// perform your search here using the searchConstraint String.
constraint = constraint.toString().toLowerCase();
for (int i = 0; i < friends.size(); i++) {
Friend friend = (Friend) friends.get(i);
if (friend.getName().toLowerCase().startsWith(constraint.toString())) {
filteredFriends.add(friend);
}
}
results.count = filteredFriends.size();
results.values = filteredFriends;
return results;
}
});
setListAdapter(moa);
defineEmptyText(R.string.empty_list_no_friend);
setListVisible(false);
setRequestType(Query.FRIENDS);
super.onViewCreated(view, savedInstanceState);
}
use of android.widget.Filter in project robolectric by robolectric.
the class ShadowFilterTest method testFilter_whenNullResults_ShouldCallListenerWithMinusOne.
@Test
public void testFilter_whenNullResults_ShouldCallListenerWithMinusOne() throws InterruptedException {
final AtomicBoolean listenerCalled = new AtomicBoolean(false);
Filter filter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence charSequence) {
return null;
}
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
}
};
filter.filter("", new Filter.FilterListener() {
@Override
public void onFilterComplete(int i) {
assertThat(i).isEqualTo(-1);
listenerCalled.set(true);
}
});
assertThat(listenerCalled.get()).isTrue();
}
Aggregations