package com.ushahidi.platform.mobile.app.presentation.view.ui.adapter; import com.ushahidi.platform.mobile.app.R; import com.ushahidi.platform.mobile.app.presentation.model.DeploymentModel; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; import java.util.ArrayList; import java.util.List; /** * Deployment Spinner Adapter * * @author Ushahidi Team <team@ushahidi.com> */ public class DeploymentSpinnerAdapter extends ArrayAdapter<String> { private static final int LAYOUT_RESOURCE_ID = R.layout.deployment_spinner_item; private final List<DeploymentModel> mDeploymentModels = new ArrayList<>(); private final Context mContext; /** * The default constructor * * @param context The calling context * @param deploymentModels The deployment models */ public DeploymentSpinnerAdapter(Context context, List<DeploymentModel> deploymentModels) { super(context, LAYOUT_RESOURCE_ID); setItems(deploymentModels); setDropDownViewResource(R.layout.deployment_spinner_dropdown_item); mContext = context; } @Override public View getView(int position, View view, ViewGroup parent) { Widgets widget; LayoutInflater inflater = (LayoutInflater) mContext .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View convertView = view; if (convertView == null) { convertView = inflater.inflate(LAYOUT_RESOURCE_ID, parent, false); widget = new Widgets(convertView); convertView.setTag(widget); } else { widget = (Widgets) convertView.getTag(); } widget.title.setText(getDeploymentModels().get(position).getTitle()); return convertView; } /** * Gets a list of deployments * * @return The list of deployments */ public List<DeploymentModel> getDeploymentModels() { return mDeploymentModels; } public void setItems(List<DeploymentModel> deploymentModels) { for (DeploymentModel deploymentModel : deploymentModels) { add(deploymentModel.getTitle(), deploymentModel); } } @Override public void clear() { super.clear(); mDeploymentModels.clear(); } @Override public void add(String label) { super.add(label); mDeploymentModels.add(null); } public void add(String label, DeploymentModel deploymentModel) { super.add(label); mDeploymentModels.add(deploymentModel); } @Override public void insert(String object, int index) { super.insert(object, index); } private class Widgets { TextView title; public Widgets(View convertView) { title = (TextView) convertView.findViewById(android.R.id.text1); } } }