package kz.arta.synergy.workflow.mobile.android.files.adapters;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

import kz.arta.synergy.workflow.mobile.android.R;
import kz.arta.synergy.workflow.mobile.android.common.utils.Fonts;
import kz.arta.synergy.workflow.mobile.android.files.models.Path;

/**
 * Created by neox on 27.10.15.
 * Адаптер для пути
 */
public class AdapterPath extends BaseAdapter {

    /**
     * Текущее активити
     */
    private Activity activity;

    /**
     * Список путей
     */
    private List<Path> path;

    /**
     * LayoutInflater
     */
    private LayoutInflater inflater;

    /**
     * Конктруктор
     *
     * @param activity текущее активити
     * @param path     список путей
     */
    public AdapterPath(Activity activity, List<Path> path) {
        this.path = path;
        this.activity = activity;
        inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    public int getCount() {
        return path.size();
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    /**
     * Метод возвращает view элемента списка
     *
     * @param position    позиция текущего элемента
     * @param convertView текущее view
     * @param parent      родитель
     * @return view элемента списка
     */
    public View getView(int position, View convertView, ViewGroup parent) {

        View view = convertView;
        if (convertView == null) {
            view = inflater.inflate(R.layout.path_item, null);
        }

        TextView nameFile = (TextView) view.findViewById(R.id.path_name);
        nameFile.setTypeface(Fonts.getRoman(activity));
        nameFile.setText(path.get(position).getName());

        if (path.get(position).isSelected()) {
            nameFile.setTextColor(activity.getResources().getColor(R.color.selected_path_color));
        } else {
            nameFile.setTextColor(activity.getResources().getColor(R.color.path_color));
        }

        ImageView image = (ImageView) view.findViewById(R.id.path_icon);
        if (position == path.size() - 1) {
            image.setVisibility(View.GONE);
        } else {
            image.setVisibility(View.VISIBLE);
        }

        return view;
    }

}
