package com.mcxiaoke.minicat.adapter;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import com.mcxiaoke.minicat.AppContext;
import com.mcxiaoke.minicat.R;
import com.mcxiaoke.minicat.dao.model.StatusModel;
import java.util.List;
/**
* @author mcxiaoke
* @version 3.0 2012.02.22
*/
public class StatusArrayAdapter extends BaseStatusArrayAdapter {
private static final String TAG = StatusArrayAdapter.class.getSimpleName();
private static final int NONE = 0;
private static final int MENTION = 1;
private static final int SELF = 2;
private static final int[] TYPES = new int[]{NONE, MENTION, SELF,};
private boolean colored;
private int mMentionedBgColor;// = 0x332266aa;
public StatusArrayAdapter(Context context, List<StatusModel> ss) {
super(context, ss);
init(context, false);
}
public StatusArrayAdapter(Context context, List<StatusModel> ss, boolean colored) {
super(context, ss);
init(context, colored);
}
void log(String message) {
Log.e(TAG, message);
}
private void init(Context context, boolean colored) {
this.colored = colored;
mMentionedBgColor = mContext.getResources().getColor(R.color.list_item_status_mention_highlight);
}
@Override
public int getItemViewType(int position) {
final StatusModel s = getItem(position);
if (s == null) {
return NONE;
}
if (s.getSimpleText().contains("@" + AppContext.getScreenName())) {
return MENTION;
} else {
return s.isSelf() ? SELF : NONE;
}
}
@Override
public int getViewTypeCount() {
return TYPES.length;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
setColor(position, convertView);
return view;
}
private void setColor(int position, View convertView) {
if (!colored) {
return;
}
int itemType = getItemViewType(position);
switch (itemType) {
case MENTION:
convertView.setBackgroundColor(mMentionedBgColor);
break;
default:
break;
}
}
public void changeData(List<StatusModel> data) {
setData(data);
notifyDataSetChanged();
}
}