I'm using SearchView widget in my app and it works fine but I'm trying to highlight the text color of the search results and can't seem to do it.
i.e: RecyclerView item has the following text "Hey there" When a user searches for "Hey" then the color of this keyword should change.
Here's my filter code from the adapter:
    @Override
    public Filter getFilter() {
        return new Filter() {
            @Override
            protected FilterResults performFiltering(CharSequence constraint) {
                String query = constraint != null ? constraint.toString() : null;
                // ----
                if (query != null && !query.isEmpty()) {
                    ArrayList<TextTypingObject> newFilteredTextTypingObjectArrayList = new ArrayList<>();
                    for (TextTypingObject textTypingObject : mTextTypingObjectList) {
                        if (textTypingObject.getTextTyping().toLowerCase(Locale.getDefault()).contains(query.toLowerCase(Locale.getDefault()))) {
                            newFilteredTextTypingObjectArrayList.add(textTypingObject);
                        }
                    }
                    // ----
                    mTextTypingObjectFilteredList = newFilteredTextTypingObjectArrayList;
                } else {
                    mTextTypingObjectFilteredList = mTextTypingObjectList;
                }
                // ----
                FilterResults filterResults = new FilterResults();
                filterResults.values = mTextTypingObjectFilteredList;
                filterResults.count = mTextTypingObjectFilteredList.size();
                return filterResults;
            }
            @Override
            protected void publishResults(CharSequence constraint, FilterResults filterResults) {
                /*if (filterResults.count == 0) {
                    // There is no "notifyDataSetInvalidated()" method in RecyclerView.Adapter
                } else {*/
                mTextTypingObjectFilteredList = (ArrayList<TextTypingObject>) filterResults.values;
                // ----
                notifyDataSetChanged();
                /*}*/
            }
        };
    }
SearchView from the fragment:
                        if (mSearchView != null) {
                            mSearchView.setQuery(null, true);
                            mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
                                @Override
                                public boolean onQueryTextSubmit(String s) {
                                    Filter filter = mTextTypingCustomAdapter.getFilter();
                                    if (filter != null) {
                                        filter.filter(s);
                                        // ----
                                        mSearchView.clearFocus();
                                        // ----
                                        return true;
                                    }
                                    return false;
                                }
                                @Override
                                public boolean onQueryTextChange(String s) {
                                    Filter filter = mTextTypingCustomAdapter.getFilter();
                                    if (filter != null) {
                                        filter.filter(s);
                                        return true;
                                    }
                                    return false;
                                }
                            });
                            mSearchView.setVisibility(View.VISIBLE);
                            mSearchView.clearFocus();
                        }