package com.james.status.adapters; import android.content.Context; import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.james.status.R; import com.james.status.data.FaqData; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class FaqAdapter extends RecyclerView.Adapter<FaqAdapter.ViewHolder> { private Context context; private List<FaqData> originalFaqs, faqs; public FaqAdapter(Context context, List<FaqData> faqs) { this.context = context; originalFaqs = new ArrayList<>(); originalFaqs.addAll(faqs); Collections.sort(this.originalFaqs, new Comparator<FaqData>() { @Override public int compare(FaqData lhs, FaqData rhs) { return lhs.name.compareTo(rhs.name); } }); this.faqs = new ArrayList<>(); this.faqs.addAll(originalFaqs); } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return new ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_text, parent, false)); } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.title.setText(faqs.get(position).name); holder.subtitle.setText(faqs.get(position).content); holder.v.setAlpha(0); holder.v.animate().alpha(1).setDuration(500).start(); } @Override public int getItemCount() { return faqs.size(); } public void filter(@Nullable String filter) { faqs.clear(); if (filter == null || filter.length() < 1) { faqs.addAll(originalFaqs); } else { for (FaqData faq : originalFaqs) { if (faq.name.toLowerCase().contains(filter) || filter.contains(faq.name.toLowerCase()) || faq.content.toLowerCase().contains(filter) || filter.contains(faq.content.toLowerCase())) faqs.add(faq); } } notifyDataSetChanged(); } public static class ViewHolder extends RecyclerView.ViewHolder { View v; TextView title, subtitle; public ViewHolder(View v) { super(v); this.v = v; title = (TextView) v.findViewById(R.id.title); subtitle = (TextView) v.findViewById(R.id.subtitle); } } }