package com.mehtank.androminion.util;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import com.mehtank.androminion.ui.DeckView;
public class PlayerAdapter extends ArrayAdapter<PlayerSummary> {
@SuppressWarnings("unused")
private static final String TAG = "PlayerAdapter";
private LinearLayout container = null;
private ArrayList<View> deckStatusItems = new ArrayList<View>();
public void setTurnStatus(View ts) {
container.addView(ts, 0);
}
public void setContainer(LinearLayout l) {
container = l;
}
public View get(int p) {
return deckStatusItems.get(p);
}
public PlayerAdapter(Context context) {
super(context, 0);
}
public PlayerAdapter(Context context, List<PlayerSummary> players) {
super(context, 0, players);
}
@Override
public View getView(int pos, View origView, ViewGroup parent) {
DeckView dv;
PlayerSummary ps;
if(origView == null) {
dv = new DeckView(getContext());
} else {
dv = (DeckView) origView;
}
ps = getItem(pos);
dv.set(ps.name, ps.turns, ps.deckSize, ps.handSize, ps.numCards, ps.pt, ps.vt, ps.gct, ps.highlight);
return dv;
}
@Override
public void notifyDataSetChanged() {
if (container == null) {
return;
}
int numItems = this.getCount();
int realChildCount = container.getChildCount();
for (int i = 0; i < numItems; i++) {
View child = null;
if (realChildCount > i) {
child = container.getChildAt(i);
}
if (child == null) {
child = getView(i, null, container);
container.addView(child, i);
} else {
getView(i, child, container);
}
}
for (int i = numItems; i < container.getChildCount(); i++) {
container.removeViewAt(i);
}
}
}