package com.cellasoft.univrapp.adapter;
import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.cellasoft.univrapp.R;
import com.cellasoft.univrapp.Settings;
import com.cellasoft.univrapp.model.Channel;
import com.cellasoft.univrapp.utils.DateUtils;
import com.cellasoft.univrapp.utils.RecyclingImageView;
import com.cellasoft.univrapp.widget.ChannelView;
import com.cellasoft.univrapp.widget.OnChannelViewListener;
import java.util.List;
public class ChannelAdapter extends BaseListAdapter<Channel> {
public static int mCornerRadius;
public static int mMargin;
private OnChannelViewListener channelListener;
// private int color_university;
private int logo_university;
private Context context;
public ChannelAdapter(Context context, int resource) {
super(context, resource);
this.context = context;
logo_university = Settings.getUniversity().logo_from_resource;
}
@Override
protected void populateDataForRow(ViewHolder viewHolder, Channel channel,
int position) {
if (viewHolder instanceof Holder) {
Holder holder = (Holder) viewHolder;
if (channel.unread > 0) {
holder.unreadCount.setText(String.valueOf(channel.unread));
holder.unreadCount.setVisibility(View.VISIBLE);
} else {
holder.unreadCount.setVisibility(View.GONE);
}
if (channel.updating) {
holder.updated.setText(getContext().getResources().getString(
R.string.updating));
} else {
holder.updated.setText(getContext().getResources().getString(
R.string.updated)
+ " "
+ DateUtils.formatTimeMillis(getContext(),
channel.updateTime));
}
holder.title.setText(channel.title);
imageLoader(viewHolder, channel.imageUrl);
}
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Holder holder;
ChannelView view;
Channel item = new Channel(items.get(position));
switch (position) {
case 0:
if (convertView == null || (convertView instanceof ChannelView)) {
convertView = mInflater.inflate(R.layout.university_list_item, parent, false);
holder = new Holder();
holder.position = position;
holder.title = (TextView) convertView.findViewById(R.id.univr_name);
holder.thumbnail = (RecyclingImageView) convertView
.findViewById(R.id.univr_logo);
holder.title.setText(item.title);
Drawable drawable = context.getResources().getDrawable(
logo_university);
holder.thumbnail.setImageDrawable(drawable);
convertView.setTag(holder);
}
return convertView;
default:
if (convertView == null || !(convertView instanceof ChannelView)) {
view = (ChannelView) mInflater.inflate(resource, parent, false);
view.setChannelListener(channelListener);
holder = new Holder();
holder.position = position;
holder.title = (TextView) view.findViewById(R.id.channel_title);
holder.unreadCount = (TextView) view
.findViewById(R.id.channel_unreadCount);
holder.updated = (TextView) view
.findViewById(R.id.channel_updated);
holder.thumbnail = (RecyclingImageView) view
.findViewById(R.id.channel_image);
view.setTag(holder);
} else {
view = (ChannelView) convertView;
holder = (Holder) view.getTag();
}
}
view.setItemViewSelected(item.isSelected);
view.setItemViewStarred(item.starred);
populateDataForRow(holder, item, position);
return view;
}
public void setChannels(List<Channel> channels) {
super.setItems(channels);
}
public void addChannels(List<Channel> channels) {
super.addItems(channels);
}
public void setChannelViewlistener(OnChannelViewListener channelListener) {
this.channelListener = channelListener;
}
class Holder extends ViewHolder {
TextView title;
TextView updated;
TextView unreadCount;
}
}