Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.56 KB | None | 0 0
  1. public class AdapterArticle extends ArrayAdapter<ObjectArticle> implements View.OnClickListener{
  2.  
  3.     private ArrayList<ObjectArticle> dataSet;
  4.     private Context mContext;
  5.     private FirebaseFirestore mDatabase = FirebaseFirestore.getInstance();
  6.  
  7.     private static class ViewHolder {
  8.         TextView txtTitle;
  9.         TextView txtVisits;
  10.         ImageView image;
  11.         Button open;
  12.     }
  13.  
  14.     public AdapterArticle(ArrayList<ObjectArticle> data, Context context) {
  15.         super(context, R.layout.item_article, data);
  16.         dataSet = data;
  17.         mContext = context;
  18.     }
  19.  
  20.     @Override
  21.     public void onClick(View v) {
  22.         int position = (Integer) v.getTag();
  23.         final ObjectArticle article = getItem(position);
  24.  
  25.         if (v.getId() == R.id.prevBtn) {
  26.             Intent toContent = new Intent(mContext, Content.class);
  27.             toContent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  28.  
  29.             String reference = "";
  30.             ArrayList<String> keywords = article.getKeywords();
  31.             for(String key : keywords){ reference += "_" + key; }
  32.  
  33.             mDatabase.collection("articles").document(reference)
  34.                     .get()
  35.                     .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
  36.                         @Override
  37.                         public void onSuccess(DocumentSnapshot documentSnapshot) {
  38.                             ObjectArticle aux = documentSnapshot.toObject(ObjectArticle.class);
  39.  
  40.                             String auxReference = "";
  41.                             ArrayList<String> auxKeywords = aux.getKeywords();
  42.                             for(String key : auxKeywords){ auxReference += "_" + key; }
  43.  
  44.                             mDatabase.collection("articles").document(auxReference)
  45.                                     .update("visits", aux.getVisits() + 1);
  46.                         }
  47.                     });
  48.  
  49.             Bundle b = new Bundle();
  50.             b.putString("title", article.getTitle());
  51.             b.putString("content", article.getContent());
  52.             b.putString("author", article.getAuthor());
  53.             b.putString("image", article.getImageURL());
  54.             b.putLong("visits", article.getVisits());
  55.             b.putStringArrayList("downloadURL", article.getDownloadURL());
  56.             b.putStringArrayList("categories", article.getCategories());
  57.             b.putString("date", convertDate(article.getDate()));
  58.  
  59.             toContent.putExtras(b);
  60.             mContext.startActivity(toContent);
  61.         }
  62.     }
  63.  
  64.     private int lastPosition = -1;
  65.  
  66.     @Override
  67.     public View getView(int position, View convertView, ViewGroup parent) {
  68.         ObjectArticle article = getItem(position);
  69.         ViewHolder viewHolder;
  70.  
  71.         final View result;
  72.  
  73.         if (convertView == null) {
  74.             viewHolder = new ViewHolder();
  75.             LayoutInflater inflater = LayoutInflater.from(getContext());
  76.             convertView = inflater.inflate(R.layout.item_article, parent, false);
  77.             viewHolder.txtTitle = convertView.findViewById(R.id.prevTxt);
  78.             viewHolder.txtVisits = convertView.findViewById(R.id.prevVisits);
  79.             viewHolder.image = convertView.findViewById(R.id.prevImg);
  80.             viewHolder.open = convertView.findViewById(R.id.prevBtn);
  81.  
  82.             result = convertView;
  83.  
  84.             convertView.setTag(viewHolder);
  85.         } else {
  86.             viewHolder = (ViewHolder) convertView.getTag();
  87.             result = convertView;
  88.         }
  89.  
  90.         Animation animation = AnimationUtils.loadAnimation(mContext, (position > lastPosition) ? R.anim.up_from_bottom : R.anim.down_from_top);
  91.         result.startAnimation(animation);
  92.         lastPosition = position;
  93.  
  94.         viewHolder.txtTitle.setText(article.getTitle().equals("") ? "untitled" : article.getTitle());
  95.         viewHolder.txtVisits.setText("Visits: " + article.getVisits());
  96.  
  97.         if(article.getImageURL().equals("")){ viewHolder.image.setVisibility(View.GONE); }
  98.         else{ loadImageToView(viewHolder.image, article.getImageURL()); }
  99.  
  100.         viewHolder.open.setOnClickListener(this);
  101.         viewHolder.open.setTag(position);
  102.  
  103.         return convertView;
  104.     }
  105.  
  106.     private void loadImageToView(ImageView iv, String url){ Glide.with(mContext).load(url).into(iv); }
  107.  
  108.     private String convertDate(Timestamp t){
  109.         String day = new SimpleDateFormat("dd/MM/yyyy", Locale.FRANCE).format(t.toDate());
  110.         String hour = new SimpleDateFormat("HH:mm", Locale.FRANCE).format(t.toDate());
  111.  
  112.         return  day + " at " + hour;
  113.     }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement