PostRecyclerAdapter.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package club.thepenguins.android.adapters;
  2. import android.content.Context;
  3. import android.text.Html;
  4. import android.view.LayoutInflater;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.ImageView;
  8. import android.widget.TextView;
  9. import androidx.annotation.NonNull;
  10. import androidx.appcompat.app.AppCompatActivity;
  11. import androidx.cardview.widget.CardView;
  12. import androidx.fragment.app.FragmentManager;
  13. import androidx.recyclerview.widget.RecyclerView;
  14. import com.squareup.picasso.Callback;
  15. import com.squareup.picasso.NetworkPolicy;
  16. import com.squareup.picasso.Picasso;
  17. import java.util.ArrayList;
  18. import club.thepenguins.android.R;
  19. import club.thepenguins.android.data.Model;
  20. import club.thepenguins.android.fragments.PostFragment;
  21. public class PostRecyclerAdapter extends RecyclerView.Adapter<PostRecyclerAdapter.ViewHolder> {
  22. private ArrayList<Model> data;
  23. private Context ctx;
  24. public PostRecyclerAdapter(ArrayList<Model> list, Context context) {
  25. this.data = list;
  26. this.ctx = context;
  27. }
  28. @NonNull
  29. @Override
  30. public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  31. View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.post_item, parent, false);
  32. return new ViewHolder(view);
  33. }
  34. @Override
  35. public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
  36. final Model object = data.get(position);
  37. holder.title.setText(object.title);
  38. holder.subtitle.setText(Html.fromHtml(object.subtitle));
  39. Picasso.get()
  40. .load(object.Image)
  41. .placeholder(R.color.preloadColor)
  42. .fit()
  43. .centerCrop()
  44. .networkPolicy(NetworkPolicy.OFFLINE)
  45. .into(holder.imageView, new Callback() {
  46. @Override
  47. public void onSuccess() {
  48. }
  49. @Override
  50. public void onError(Exception e) {
  51. Picasso.get()
  52. .load(object.Image)
  53. .placeholder(R.color.preloadColor)
  54. .fit()
  55. .centerCrop()
  56. .into(holder.imageView);
  57. }
  58. });
  59. /*
  60. final Handler handler = new Handler();
  61. handler.postDelayed(new Runnable() {
  62. @Override
  63. public void run() {
  64. }
  65. }, 1000);
  66. */
  67. holder.cardView.setOnClickListener(new View.OnClickListener() {
  68. @Override
  69. public void onClick(View v) {
  70. FragmentManager fragmentManager = ((AppCompatActivity) ctx).getSupportFragmentManager();
  71. fragmentManager.beginTransaction().replace(R.id.flContent, PostFragment.newInstance(object.Content, object.Image)).addToBackStack("DetailedPizza").commit();
  72. }
  73. });
  74. }
  75. public void clear() {
  76. data.clear();
  77. notifyDataSetChanged();
  78. }
  79. public void addAll(ArrayList<Model> list) {
  80. list.addAll(list);
  81. notifyDataSetChanged();
  82. }
  83. @Override
  84. public int getItemCount() {
  85. return data.size();
  86. }
  87. public class ViewHolder extends RecyclerView.ViewHolder {
  88. TextView title, subtitle;
  89. ImageView imageView;
  90. CardView cardView;
  91. public ViewHolder(@NonNull View itemView) {
  92. super(itemView);
  93. cardView = itemView.findViewById(R.id.card);
  94. title = itemView.findViewById(R.id.title);
  95. subtitle = itemView.findViewById(R.id.subtitle);
  96. imageView = itemView.findViewById(R.id.Icon);
  97. }
  98. }
  99. public void setData(ArrayList<Model> data) {
  100. this.data = data;
  101. notifyDataSetChanged();
  102. }
  103. }