package it.fdev.utils;
import it.fdev.unisaconnect.R;
import it.fdev.utils.CardsAdapter.CardItem;
import java.util.ArrayList;
import java.util.Collection;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class CardsAdapter extends ArrayAdapter<CardItem> {
private int layout;
private ArrayList<CardItem> itemsList;
private static class ViewHolder {
private TextView titleView;
private TextView textView;
private TextView dateView;
}
public CardsAdapter(Context context, int layout, ArrayList<CardItem> itemsList) {
super(context, layout, itemsList);
this.layout = layout;
this.itemsList = itemsList;
}
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
ViewHolder viewHolder = null;
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(layout, null);
if (view != null) {
viewHolder = new ViewHolder();
viewHolder.titleView = (TextView) view.findViewById(R.id.card_title);
viewHolder.textView = (TextView) view.findViewById(R.id.card_text);
viewHolder.dateView = (TextView) view.findViewById(R.id.card_date);
view.setTag(viewHolder);
}
} else {
view = convertView;
viewHolder = (ViewHolder) convertView.getTag();
}
if (viewHolder != null) {
CardItem item = itemsList.get(position);
if (item != null) {
if (item.title.isEmpty()) {
viewHolder.titleView.setVisibility(View.GONE);
} else {
viewHolder.titleView.setVisibility(View.VISIBLE);
}
viewHolder.titleView.setText(item.title);
if (item.text.isEmpty()) {
viewHolder.textView.setVisibility(View.GONE);
} else {
viewHolder.textView.setVisibility(View.VISIBLE);
}
viewHolder.textView.setText(item.text);
if (item.date == null) {
item.date = "";
}
viewHolder.dateView.setText(item.date);
viewHolder.titleView.setSingleLine(item.isSingleLine());
}
}
return view;
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public void addAll(Collection<? extends CardItem> collection) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
super.addAll(collection);
} else {
for (CardItem entry : collection) {
super.add(entry);
}
}
}
public static class CardItem {
private String title = null;
private String link = null;
private String text = null;
private String date = null;
private boolean singleLine;
private boolean isButton;
public CardItem(String title, String link, String text, String date, boolean singleLine) {
this.title = title;
this.link = link;
this.text = text;
this.date = date;
this.singleLine = singleLine;
}
public CardItem(String title, String link, String text, String date) {
this(title, link, text, date, true);
}
public CardItem(String title) {
this.title = title;
this.isButton = true;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public boolean isSingleLine() {
return singleLine;
}
public boolean isButton() {
return isButton;
}
}
}