Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.codelabs.unikomapps.main.article;
- import android.content.Context;
- import android.support.v7.widget.RecyclerView;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.ImageView;
- import android.widget.ProgressBar;
- import android.widget.TextView;
- import com.bumptech.glide.Glide;
- import com.codelabs.unikomapps.R;
- import com.codelabs.unikomapps.data.ArticleModel;
- import com.codelabs.unikomapps.util.AppConstants;
- import com.google.gson.Gson;
- import java.util.List;
- /**
- * Created by rzlyp on 31/10/2016.
- */
- public class ArticleAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
- public static final int ITEM_TYPE_HEADER = 1;
- public static final int ITEM_TYPE_ARTICLE = 2;
- public static final int ITEM_TYPE_PROGRESS = 3;
- private Context context;
- private List<Object> articleDataSet;
- private ArticleItemListener articleItemListener;
- ArticleModel articleModel;
- public ArticleAdapter(Context context, List<Object> articleDataSet, ArticleItemListener articleItemListener) {
- this.context = context;
- this.articleDataSet = articleDataSet;
- this.articleItemListener = articleItemListener;
- }
- @Override
- public int getItemViewType(int position) {
- if (position == 0) {
- return ITEM_TYPE_HEADER;
- } else if (articleDataSet.get(position) == null) {
- return ITEM_TYPE_PROGRESS;
- }else {
- return ITEM_TYPE_ARTICLE;
- }
- }
- @Override
- public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- if (viewType == ITEM_TYPE_HEADER) {
- View view = LayoutInflater.from(context).inflate(R.layout.fragment_article_row_header, null);
- return new HeaderViewHolder(view);
- } else if (viewType == ITEM_TYPE_ARTICLE) {
- View view = LayoutInflater.from(context).inflate(R.layout.fragment_article_row_item, null);
- return new ArticleViewHolder(view);
- } else if (viewType == ITEM_TYPE_PROGRESS){
- View view = LayoutInflater.from(context).inflate(R.layout.global_progress_load_more, null);
- return new ProgressViewHolder(view);
- }
- return null;
- }
- @Override
- public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
- final int itemType = getItemViewType(position);
- articleModel = (ArticleModel) articleDataSet.get(position);
- if (itemType == ITEM_TYPE_HEADER) {
- ((HeaderViewHolder) holder).titleArticle.setText(articleModel.getJudul_artikel());
- ((HeaderViewHolder) holder).pengirimArticle.setText(articleModel.getPengirim());
- Glide.with(context).load(AppConstants.APIUrl.IMG_ARTICLE_URL + "" + articleModel.getFoto()).into(((HeaderViewHolder) holder).imgArticle);
- } else if (itemType == ITEM_TYPE_ARTICLE) {
- ((ArticleViewHolder) holder).titleArticle.setText(articleModel.getJudul_artikel());
- ((ArticleViewHolder) holder).pengirimArticle.setText(articleModel.getPengirim());
- Glide.with(context)
- .load(AppConstants.APIUrl.IMG_ARTICLE_URL + articleModel.getFoto())
- .into(((ArticleViewHolder) holder).imgArticle);
- } else {
- ((ProgressViewHolder) holder).progressBar.setIndeterminate(true);
- }
- }
- @Override
- public int getItemCount() {
- return articleDataSet.size();
- }
- public class HeaderViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
- ImageView imgArticle;
- TextView titleArticle;
- TextView pengirimArticle;
- public HeaderViewHolder(View itemView) {
- super(itemView);
- imgArticle = (ImageView) itemView.findViewById(R.id.article_image_header);
- titleArticle = (TextView) itemView.findViewById(R.id.article_textview_title);
- pengirimArticle = (TextView) itemView.findViewById(R.id.article_textview_pengirim);
- itemView.setOnClickListener(this);
- }
- @Override
- public void onClick(View view) {
- articleItemListener.onArticleClick(new Gson().toJson(articleDataSet.get(getAdapterPosition())));
- }
- }
- public class ArticleViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
- ImageView imgArticle;
- TextView titleArticle;
- TextView pengirimArticle;
- public ArticleViewHolder(View itemView) {
- super(itemView);
- imgArticle = (ImageView) itemView.findViewById(R.id.article_imageview_image);
- titleArticle = (TextView) itemView.findViewById(R.id.article_textview_title);
- pengirimArticle = (TextView) itemView.findViewById(R.id.article_textview_creator);
- itemView.setOnClickListener(this);
- }
- @Override
- public void onClick(View view) {
- articleItemListener.onArticleClick(new Gson().toJson(articleDataSet.get(getAdapterPosition())));
- }
- }
- public class ProgressViewHolder extends RecyclerView.ViewHolder {
- ProgressBar progressBar;
- public ProgressViewHolder(View itemView) {
- super(itemView);
- progressBar = (ProgressBar) itemView.findViewById(R.id.global_progressbar);
- }
- }
- public void replaceData(List<Object> articleDataSet) {
- this.articleDataSet = articleDataSet;
- notifyDataSetChanged();
- }
- public interface ArticleItemListener {
- void onArticleClick(String extra);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement