package com.fastaccess.ui.adapter; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.ViewGroup; import android.widget.Filter; import android.widget.Filterable; import com.fastaccess.data.dao.FolderModel; import com.fastaccess.helper.InputHelper; import com.fastaccess.ui.adapter.viewholder.FoldersViewHolder; import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; import java.util.ArrayList; import java.util.List; /** * Created by Kosh on 11 Oct 2016, 7:58 PM */ public class FoldersAdapter extends BaseRecyclerAdapter<FolderModel, FoldersViewHolder, FoldersViewHolder.OnItemClickListener<FolderModel>> implements Filterable { public FoldersAdapter(@NonNull List<FolderModel> data, @Nullable FoldersViewHolder.OnItemClickListener<FolderModel> listener) { super(data, listener); } @Override protected FoldersViewHolder viewHolder(ViewGroup parent, int viewType) { return FoldersViewHolder.newInstance(parent, this); } @Override protected void onBindView(FoldersViewHolder holder, int position) { holder.bind(getItem(position)); } @Override public Filter getFilter() { return new Filter() { @Override protected FilterResults performFiltering(CharSequence charSequence) { final FilterResults oReturn = new FilterResults(); final List<FolderModel> results = new ArrayList<>(); if (!InputHelper.isEmpty(charSequence)) { if (!getData().isEmpty()) { for (FolderModel folder : getData()) { if (folder.getFolderName().toLowerCase().contains(charSequence.toString())) { results.add(folder); } } } oReturn.values = results; oReturn.count = results.size(); } return oReturn; } @SuppressWarnings("unchecked") @Override protected void publishResults(CharSequence constraint, FilterResults results) { insertItems((List<FolderModel>) results.values); } }; } }