blob: fc443b69b799ee568abb0136398dbf7851658f76 [file] [log] [blame]
// Copyright 2010 Google Inc. All Rights Reserved.
package com.xtremelabs.robolectric.shadows;
import android.content.Context;
import android.widget.ArrayAdapter;
import android.view.View;
import android.view.ViewGroup;
import com.xtremelabs.robolectric.internal.Implementation;
import com.xtremelabs.robolectric.internal.Implements;
import com.xtremelabs.robolectric.res.ResourceLoader;
import com.xtremelabs.robolectric.Robolectric;
import static com.xtremelabs.robolectric.Robolectric.shadowOf;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@SuppressWarnings({"UnusedDeclaration"})
@Implements(ArrayAdapter.class)
public class ShadowArrayAdapter<T> extends ShadowBaseAdapter {
private Context context;
private List<T> list;
private int resource;
private int textViewResourceId;
public void __constructor__(Context context, int textViewResourceId) {
init(context, 0, textViewResourceId, new ArrayList<T>());
}
public void __constructor__(Context context, int resource, int textViewResourceId) {
init(context, resource, textViewResourceId, new ArrayList<T>());
}
public void __constructor__(Context context, int textViewResourceId, T[] objects) {
init(context, 0, textViewResourceId, Arrays.asList(objects));
}
public void __constructor__(Context context, int resource, int textViewResourceId, T[] objects) {
init(context, resource, textViewResourceId, Arrays.asList(objects));
}
public void __constructor__(Context context, int textViewResourceId, List<T> objects) {
init(context, 0, textViewResourceId, objects);
}
public void __constructor__(Context context, int resource, int textViewResourceId, List<T> objects) {
init(context, resource, textViewResourceId, objects);
}
private void init(Context context, int resource, int textViewResourceId, List<T> objects) {
this.context = context;
this.list = objects;
this.resource = resource;
this.textViewResourceId = textViewResourceId;
}
@Implementation
public void add(T object) {
list.add(object);
}
@Implementation
public Context getContext() {
return context;
}
@Implementation
public int getCount() {
return list.size();
}
@Implementation
public T getItem(int position) {
return list.get(position);
}
@Implementation
public int getPosition(T item) {
return list.indexOf(item);
}
@Implementation
public View getView(int position, View convertView, ViewGroup parent) {
T item = list.get(position);
return getResourceLoader().inflateView(context, textViewResourceId, parent);
}
private ResourceLoader getResourceLoader() {
return shadowOf(Robolectric.application).getResourceLoader();
}
}