Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class AdapterArticle extends ArrayAdapter<ObjectArticle> implements View.OnClickListener{
- private ArrayList<ObjectArticle> dataSet;
- private Context mContext;
- private FirebaseFirestore mDatabase = FirebaseFirestore.getInstance();
- private static class ViewHolder {
- TextView txtTitle;
- TextView txtVisits;
- ImageView image;
- Button open;
- }
- public AdapterArticle(ArrayList<ObjectArticle> data, Context context) {
- super(context, R.layout.item_article, data);
- dataSet = data;
- mContext = context;
- }
- @Override
- public void onClick(View v) {
- int position = (Integer) v.getTag();
- final ObjectArticle article = getItem(position);
- if (v.getId() == R.id.prevBtn) {
- Intent toContent = new Intent(mContext, Content.class);
- toContent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- String reference = "";
- ArrayList<String> keywords = article.getKeywords();
- for(String key : keywords){ reference += "_" + key; }
- mDatabase.collection("articles").document(reference)
- .get()
- .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
- @Override
- public void onSuccess(DocumentSnapshot documentSnapshot) {
- ObjectArticle aux = documentSnapshot.toObject(ObjectArticle.class);
- String auxReference = "";
- ArrayList<String> auxKeywords = aux.getKeywords();
- for(String key : auxKeywords){ auxReference += "_" + key; }
- mDatabase.collection("articles").document(auxReference)
- .update("visits", aux.getVisits() + 1);
- }
- });
- Bundle b = new Bundle();
- b.putString("title", article.getTitle());
- b.putString("content", article.getContent());
- b.putString("author", article.getAuthor());
- b.putString("image", article.getImageURL());
- b.putLong("visits", article.getVisits());
- b.putStringArrayList("downloadURL", article.getDownloadURL());
- b.putStringArrayList("categories", article.getCategories());
- b.putString("date", convertDate(article.getDate()));
- toContent.putExtras(b);
- mContext.startActivity(toContent);
- }
- }
- private int lastPosition = -1;
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ObjectArticle article = getItem(position);
- ViewHolder viewHolder;
- final View result;
- if (convertView == null) {
- viewHolder = new ViewHolder();
- LayoutInflater inflater = LayoutInflater.from(getContext());
- convertView = inflater.inflate(R.layout.item_article, parent, false);
- viewHolder.txtTitle = convertView.findViewById(R.id.prevTxt);
- viewHolder.txtVisits = convertView.findViewById(R.id.prevVisits);
- viewHolder.image = convertView.findViewById(R.id.prevImg);
- viewHolder.open = convertView.findViewById(R.id.prevBtn);
- result = convertView;
- convertView.setTag(viewHolder);
- } else {
- viewHolder = (ViewHolder) convertView.getTag();
- result = convertView;
- }
- Animation animation = AnimationUtils.loadAnimation(mContext, (position > lastPosition) ? R.anim.up_from_bottom : R.anim.down_from_top);
- result.startAnimation(animation);
- lastPosition = position;
- viewHolder.txtTitle.setText(article.getTitle().equals("") ? "untitled" : article.getTitle());
- viewHolder.txtVisits.setText("Visits: " + article.getVisits());
- if(article.getImageURL().equals("")){ viewHolder.image.setVisibility(View.GONE); }
- else{ loadImageToView(viewHolder.image, article.getImageURL()); }
- viewHolder.open.setOnClickListener(this);
- viewHolder.open.setTag(position);
- return convertView;
- }
- private void loadImageToView(ImageView iv, String url){ Glide.with(mContext).load(url).into(iv); }
- private String convertDate(Timestamp t){
- String day = new SimpleDateFormat("dd/MM/yyyy", Locale.FRANCE).format(t.toDate());
- String hour = new SimpleDateFormat("HH:mm", Locale.FRANCE).format(t.toDate());
- return day + " at " + hour;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement