Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.49 KB | None | 0 0
  1. package com.codelabs.unikomapps.main.article;
  2.  
  3. import android.content.Context;
  4. import android.support.v7.widget.RecyclerView;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.ImageView;
  9. import android.widget.ProgressBar;
  10. import android.widget.TextView;
  11.  
  12. import com.bumptech.glide.Glide;
  13. import com.codelabs.unikomapps.R;
  14. import com.codelabs.unikomapps.data.ArticleModel;
  15. import com.codelabs.unikomapps.util.AppConstants;
  16. import com.google.gson.Gson;
  17.  
  18. import java.util.List;
  19.  
  20.  
  21. /**
  22. * Created by rzlyp on 31/10/2016.
  23. */
  24.  
  25. public class ArticleAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  26.  
  27. public static final int ITEM_TYPE_HEADER = 1;
  28. public static final int ITEM_TYPE_ARTICLE = 2;
  29. public static final int ITEM_TYPE_PROGRESS = 3;
  30.  
  31. private Context context;
  32. private List<Object> articleDataSet;
  33. private ArticleItemListener articleItemListener;
  34. ArticleModel articleModel;
  35.  
  36. public ArticleAdapter(Context context, List<Object> articleDataSet, ArticleItemListener articleItemListener) {
  37. this.context = context;
  38. this.articleDataSet = articleDataSet;
  39. this.articleItemListener = articleItemListener;
  40. }
  41.  
  42. @Override
  43. public int getItemViewType(int position) {
  44. if (position == 0) {
  45. return ITEM_TYPE_HEADER;
  46. } else if (articleDataSet.get(position) == null) {
  47. return ITEM_TYPE_PROGRESS;
  48. }else {
  49. return ITEM_TYPE_ARTICLE;
  50. }
  51. }
  52.  
  53. @Override
  54. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  55. if (viewType == ITEM_TYPE_HEADER) {
  56. View view = LayoutInflater.from(context).inflate(R.layout.fragment_article_row_header, null);
  57. return new HeaderViewHolder(view);
  58. } else if (viewType == ITEM_TYPE_ARTICLE) {
  59. View view = LayoutInflater.from(context).inflate(R.layout.fragment_article_row_item, null);
  60. return new ArticleViewHolder(view);
  61. } else if (viewType == ITEM_TYPE_PROGRESS){
  62. View view = LayoutInflater.from(context).inflate(R.layout.global_progress_load_more, null);
  63. return new ProgressViewHolder(view);
  64. }
  65.  
  66. return null;
  67. }
  68.  
  69. @Override
  70. public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
  71. final int itemType = getItemViewType(position);
  72. articleModel = (ArticleModel) articleDataSet.get(position);
  73. if (itemType == ITEM_TYPE_HEADER) {
  74. ((HeaderViewHolder) holder).titleArticle.setText(articleModel.getJudul_artikel());
  75. ((HeaderViewHolder) holder).pengirimArticle.setText(articleModel.getPengirim());
  76. Glide.with(context).load(AppConstants.APIUrl.IMG_ARTICLE_URL + "" + articleModel.getFoto()).into(((HeaderViewHolder) holder).imgArticle);
  77. } else if (itemType == ITEM_TYPE_ARTICLE) {
  78. ((ArticleViewHolder) holder).titleArticle.setText(articleModel.getJudul_artikel());
  79. ((ArticleViewHolder) holder).pengirimArticle.setText(articleModel.getPengirim());
  80. Glide.with(context)
  81. .load(AppConstants.APIUrl.IMG_ARTICLE_URL + articleModel.getFoto())
  82. .into(((ArticleViewHolder) holder).imgArticle);
  83. } else {
  84. ((ProgressViewHolder) holder).progressBar.setIndeterminate(true);
  85. }
  86. }
  87.  
  88. @Override
  89. public int getItemCount() {
  90. return articleDataSet.size();
  91. }
  92.  
  93. public class HeaderViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
  94. ImageView imgArticle;
  95. TextView titleArticle;
  96. TextView pengirimArticle;
  97.  
  98. public HeaderViewHolder(View itemView) {
  99. super(itemView);
  100. imgArticle = (ImageView) itemView.findViewById(R.id.article_image_header);
  101. titleArticle = (TextView) itemView.findViewById(R.id.article_textview_title);
  102. pengirimArticle = (TextView) itemView.findViewById(R.id.article_textview_pengirim);
  103. itemView.setOnClickListener(this);
  104. }
  105.  
  106. @Override
  107. public void onClick(View view) {
  108. articleItemListener.onArticleClick(new Gson().toJson(articleDataSet.get(getAdapterPosition())));
  109. }
  110. }
  111.  
  112. public class ArticleViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
  113. ImageView imgArticle;
  114. TextView titleArticle;
  115. TextView pengirimArticle;
  116.  
  117. public ArticleViewHolder(View itemView) {
  118. super(itemView);
  119. imgArticle = (ImageView) itemView.findViewById(R.id.article_imageview_image);
  120. titleArticle = (TextView) itemView.findViewById(R.id.article_textview_title);
  121. pengirimArticle = (TextView) itemView.findViewById(R.id.article_textview_creator);
  122. itemView.setOnClickListener(this);
  123. }
  124.  
  125. @Override
  126. public void onClick(View view) {
  127. articleItemListener.onArticleClick(new Gson().toJson(articleDataSet.get(getAdapterPosition())));
  128. }
  129. }
  130.  
  131. public class ProgressViewHolder extends RecyclerView.ViewHolder {
  132. ProgressBar progressBar;
  133.  
  134. public ProgressViewHolder(View itemView) {
  135. super(itemView);
  136. progressBar = (ProgressBar) itemView.findViewById(R.id.global_progressbar);
  137. }
  138. }
  139.  
  140. public void replaceData(List<Object> articleDataSet) {
  141. this.articleDataSet = articleDataSet;
  142. notifyDataSetChanged();
  143. }
  144.  
  145. public interface ArticleItemListener {
  146. void onArticleClick(String extra);
  147. }
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement