package com.youzu.clan.act.apply;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;

import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.kit.utils.ArrayUtils;
import com.kit.utils.FragmentUtils;
import com.kit.utils.ZogUtils;
import com.kit.utils.intentutils.BundleData;
import com.kit.utils.intentutils.IntentUtils;
import com.kit.widget.selector.selectonefromlist.SelectOneFromListActivity;
import com.kit.widget.selector.selectonefromlist.SelectOneFromListConstant;
import com.youzu.android.framework.ViewUtils;
import com.youzu.android.framework.view.annotation.ViewInject;
import com.youzu.android.framework.view.annotation.event.OnItemClick;
import com.youzu.clan.R;
import com.youzu.clan.app.constant.Key;
import com.youzu.clan.base.BaseFragment;
import com.youzu.clan.base.enums.JoinFiledType;
import com.youzu.clan.base.json.act.JoinField;
import com.youzu.clan.base.json.act.SpecialActivity;
import com.youzu.clan.base.widget.list.RefreshListView;

import java.util.ArrayList;


public class ActApplyFragment extends BaseFragment {

    private ActApplyAdapter mAdapter;

    @ViewInject(R.id.list)
    private RefreshListView mListView;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        mListView = (RefreshListView) inflater.inflate(R.layout.fragment_list, container, false);
        ViewUtils.inject(this, mListView);
        mListView.setMode(PullToRefreshBase.Mode.DISABLED);

        BundleData bundleData = FragmentUtils.getData(this);

        ZogUtils.printObj(ActApplyFragment.class, bundleData);

        SpecialActivity specialActivity = bundleData.getObject(Key.CLAN_DATA, SpecialActivity.class);
        ArrayList<JoinField> list = specialActivity.getJoinFields();

        ZogUtils.printError(ActApplyFragment.class, "list.size():" + list.size());

        mAdapter = new ActApplyAdapter(getActivity(), list);
        mListView.setAdapter(mAdapter);
        return mListView;
    }


    public RefreshListView getListView() {
        return mListView;
    }


    @OnItemClick(R.id.list)
    public void itemClick(AdapterView<?> parent, View view, int position, long id) {


       int type =  mAdapter.getItemViewType(position);
        JoinField joinField = (JoinField) mAdapter.getItem(position);

        switch (type){
            case JoinFiledType.SELECT_ONE:

                if(ArrayUtils.isNullOrContainEmpty(joinField.getChoices())){
                    return;
                }
                ArrayList choices = ArrayUtils.toArrayList(joinField.getChoices());

                Bundle bundle = new Bundle();
                bundle.putString(SelectOneFromListConstant.SELECT_ONE_FROM_LIST_EXTRAS_KEY_ACTIVITY_TITLE, joinField.getTitle());
                bundle.putStringArrayList(SelectOneFromListConstant.SELECT_ONE_FROM_LIST_EXTRAS_KEY_ITEMS_ARRAYLIST, choices);
                bundle.putInt(SelectOneFromListConstant.SELECT_ONE_FROM_LIST_EXTRAS_KEY_SELECTED_POSITION, 0);
                IntentUtils.gotoNextActivity(getActivity(), SelectOneFromListActivity.class,bundle);

                break;
            case JoinFiledType.SELECT_MULIT:
                break;

            case JoinFiledType.DATEPICKER:
                break;


        }

    }


    @Override
    public void refresh() {
        super.refresh();
        mListView.getRefreshableView().smoothScrollToPosition(0);
        mListView.setRefreshing(true);
        mListView.refresh();
    }
}