import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.TextView;

import static ru.binarysimple.workcal.Utils.getMonthSize;
import static ru.binarysimple.workcal.Utils.getMonthSpecDays;
import static ru.binarysimple.workcal.Utils.getWeekDayOfFirstDay;

public class MonthAdapterLV extends ArrayAdapter<String> {

    private final Context ctx;
    private final LayoutInflater lInflater;
    private final List<String> objects;

    MonthAdapterLV(Context context, List<String> months) {
        super(context, R.layout.month_view, months);
        ctx = context;
        objects = months;
        lInflater = (LayoutInflater) ctx
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    public static class ViewHolder {
        TextView month_name;
        ExpGridView monthGrid;
    }

    // кол-во элементов
    @Override
    public int getCount() {
        return objects.size();
    }

    public void delItem(int position) {
        objects.remove(position);
    }

    @Override
    public String getItem(int i) {
        return objects.get(i);
    }

    // id по позиции
    @Override
    public long getItemId(int position) {
        return position;
    }

    // пункт списка
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        // используем созданные, но не используемые view
        if (convertView == null){
            LayoutInflater inflater = (LayoutInflater) ctx
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.month_view, parent, false);
            viewHolder = new ViewHolder();
            viewHolder.month_name = (TextView) convertView.findViewById(R.id.month_name);
            viewHolder.monthGrid = (ExpGridView) convertView.findViewById(R.id.month_grid);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }

        viewHolder.month_name.setText(getItem(position));

        new AsyncLoadMonthGrid(viewHolder,position,viewHolder.monthGrid.getContext()).execute();
        return convertView;
    }


    private String getMonth(int position) {
        return objects.get(position);
    }

}


