/* * Copyright 2016 Dmitry Monakhov. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * 17.02.16 10:14 * */ package monakhv.android.samlib.search; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import monakhv.android.samlib.R; import monakhv.samlib.db.entity.AuthorCard; import java.util.ArrayList; import java.util.List; /** * RecycleView adapter to store search result * Created by monakhv on 17.02.16. */ public class SearchAuthorAdapter extends RecyclerView.Adapter<SearchAuthorAdapter.ViewHolder> { public interface ItemClickListener { void click(int position); } private List<AuthorCard> mData; private ItemClickListener mItemClickListener; public SearchAuthorAdapter(ItemClickListener itemClickListener){ mItemClickListener=itemClickListener; mData=new ArrayList<>(); setHasStableIds(true); } public void addItem(AuthorCard authorCard){ mData.add(authorCard); notifyItemInserted(mData.size()-1); } public AuthorCard getItem(int position){ return mData.get(position); } public List<AuthorCard> getData(){ return mData; } public void setData(List<AuthorCard> data){ mData=data; notifyDataSetChanged(); } public void cleanData(){ mData.clear(); notifyDataSetChanged(); } @Override public long getItemId(int position) { return mData.get(position).hashCode(); } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.author_search_row, parent, false); return new SearchAuthorAdapter.ViewHolder(v,mItemClickListener); } @Override public void onBindViewHolder(ViewHolder holder, int position) { AuthorCard authorCard=mData.get(position); holder.name.setText(authorCard.getName()); holder.title.setText(authorCard.getTitle()); holder.desc.setText(authorCard.getDescription()); String ss = Integer.toString(authorCard.getSize()) + "K/" + Integer.toString(authorCard.getCount()); holder.size.setText(ss); holder.url.setText(authorCard.getUrl()); } @Override public int getItemCount() { return mData.size(); } public class ViewHolder extends RecyclerView.ViewHolder{ public TextView name; public TextView title; public TextView desc; public TextView size; public TextView url; public ViewHolder(View itemView,ItemClickListener itemClickListener) { super(itemView); name = (TextView) itemView.findViewById(R.id.acName); title = (TextView) itemView.findViewById(R.id.acTitle); desc = (TextView) itemView.findViewById(R.id.acDesc); size = (TextView) itemView.findViewById(R.id.acSize); url = (TextView) itemView.findViewById(R.id.acURL); itemView.setOnClickListener(v -> itemClickListener.click(getAdapterPosition())); } } }