Search in sources :

Example 1 with Filter

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;
}
Also used : Filter(android.widget.Filter) ArrayList(java.util.ArrayList) Pair(android.support.v4.util.Pair)

Example 2 with 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;
}
Also used : Filter(android.widget.Filter) ArrayList(java.util.ArrayList)

Example 3 with 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);
}
Also used : Friend(com.abewy.android.apps.klyph.core.fql.Friend) Filter(android.widget.Filter) MultiObjectAdapter(com.abewy.android.apps.klyph.adapter.MultiObjectAdapter) ArrayList(java.util.ArrayList) List(java.util.List)

Example 4 with Filter

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);
}
Also used : Friend(com.abewy.android.apps.klyph.core.fql.Friend) Filter(android.widget.Filter) MultiObjectAdapter(com.abewy.android.apps.klyph.adapter.MultiObjectAdapter) ArrayList(java.util.ArrayList) List(java.util.List)

Example 5 with Filter

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();
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Filter(android.widget.Filter) Test(org.junit.Test)

Aggregations

Filter (android.widget.Filter)20 ArrayList (java.util.ArrayList)9 List (java.util.List)4 MultiObjectAdapter (com.abewy.android.apps.klyph.adapter.MultiObjectAdapter)3 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)3 Test (org.junit.Test)3 SuppressLint (android.annotation.SuppressLint)2 Friend (com.abewy.android.apps.klyph.core.fql.Friend)2 Intent (android.content.Intent)1 PackageInfo (android.content.pm.PackageInfo)1 Pair (android.support.v4.util.Pair)1 SpannableString (android.text.SpannableString)1 View (android.view.View)1 AdapterView (android.widget.AdapterView)1 ListView (android.widget.ListView)1 SearchView (android.widget.SearchView)1 TextView (android.widget.TextView)1 Group (com.abewy.android.apps.klyph.core.fql.Group)1