package cn.muchinfo.rma.view.base.future;

import android.animation.Animator;
import android.content.Context;

import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import androidx.annotation.RequiresApi;

import com.blankj.utilcode.util.SPUtils;

import com.google.gson.Gson;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.StringCallback;

import org.json.JSONObject;

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

import cn.muchinfo.rma.R;
import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo;
import okhttp3.Call;

public class SearchAdapter extends BaseAdapter {
    List<GoodsInfo> valueList;
    Context context;
    SearchAdapter(List<GoodsInfo> valueList, Context context){
        this.valueList = valueList;
        this.context = context;
    }

    public void setData( List<GoodsInfo> valueList){
        this.valueList = valueList;
        notifyDataSetChanged();
    }

    @Override
    public int getCount() {
        return valueList.size();
    }

    @Override
    public GoodsInfo getItem(int position) {
        return valueList.get(position);
    }

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

    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        HolderView holderView;
        if (convertView == null) {
            holderView = new HolderView();
            convertView = LayoutInflater.from(context).inflate(R.layout.item_search_list, null);
            convertView.setTag(holderView);
        } else {
            holderView = (HolderView) convertView.getTag();
        }
        holderView.title_lay = convertView.findViewById(R.id.title_lay);
        holderView.goods_name = convertView.findViewById(R.id.goods_name);
        holderView.goods_type = convertView.findViewById(R.id.goods_type);
        holderView.goods_code = convertView.findViewById(R.id.goods_code);
        holderView.choice_lay = convertView.findViewById(R.id.choice_lay);
        holderView.add_my_choice = convertView.findViewById(R.id.add_my_choice);
        GoodsInfo data = valueList.get(position);

        if (data != null) {
            Optional.ofNullable(data).ifPresent(goodsInfoData -> {
                holderView.goods_name.setText(goodsInfoData.getGoodsname());
                holderView.goods_code.setText(goodsInfoData.getGoodscode());
            });
//            if (Config.show_news){
//                if (SqliteOperateInstance.getInstance().checkDBMarketChoice(data.getGoodsId() + "")){
//                    holderView.add_my_choice.setImageDrawable(context.getDrawable(R.mipmap.my_sub_icon));
//                }else{
//                    holderView.add_my_choice.setImageDrawable(context.getDrawable(R.mipmap.my_add_icon));
//                }
//            }else {
//                if (isAddMarket(String.valueOf(data.getGoodsId()))){
//                    holderView.add_my_choice.setImageDrawable(context.getDrawable(R.mipmap.my_sub_add_icon));
//                }else{
//                    holderView.add_my_choice.setImageDrawable(context.getDrawable(R.mipmap.my_add_icon));
//                }
//            }

//            holderView.goods_type.setText(GlobalDataCollention.getInstance().getExChangeCodeShort(GlobalDataCollention.getInstance().getmGoodsInfoClass().get(data.getGoodsId())));
        }

        holderView.choice_lay.setOnClickListener(view -> {  //添加自选

//            if (Config.show_news){
//                if (SqliteOperateInstance.getInstance().checkDBMarketChoice(String.valueOf(data.getGoodsId()))) {
//                    int ret = SqliteOperateInstance.getInstance().delDBMarketChoice(String.valueOf(data.getGoodsId()));
//                    if(ret == 0){ //失败
//                        Snackbar.make(holderView.title_lay, R.string.p_rm_choice_un_success, Snackbar.LENGTH_SHORT).show();
//                    }else{
//                        toAdd(holderView.add_my_choice);
//                        Snackbar.make(holderView.title_lay, R.string.p_rm_choice_success, Snackbar.LENGTH_SHORT).show();
//                    }
//                } else {
//                    String ret = SqliteOperateInstance.getInstance().insertDBMarketChoice(String.valueOf(data.getGoodsId()));
//                    holderView.add_my_choice.setVisibility(View.GONE);
//                    if (ret.equals("")) {// 失败，
//                        Snackbar.make(holderView.title_lay, R.string.p_add_choice_un_success, Snackbar.LENGTH_SHORT).show();
//                    } else {// 成功
//                        Snackbar.make(holderView.title_lay, R.string.p_add_choice_success, Snackbar.LENGTH_SHORT).show();
//                        toSub(holderView.add_my_choice);
//                    }
//
//                }
//            }else {
//
//                if (isAddMarket(String.valueOf(data.getGoodsId()))) {
//                    OkHttpUtils.post()
//                            .url(AddressConfig.MANAGE_HOME_URL + "/api/v1/account/" + GlobalDataCollention.getInstance().getCurr_accountInfoData().getAccountId() + "/delgoods")
//                            .addHeader("X-session-Token", SPUtils.getInstance().getString("token"))
//                            .addParams("goodsid", String.valueOf(data.getGoodsId()))
//                            .build()
//                            .execute(new StringCallback() {  //请求商品信息
//                                @Override
//                                public void onError(Call call, Exception e, int id) {
//
//                                }
//
//                                @Override
//                                public void onResponse(String response, int id) {
//                                    try {
//                                        JSONObject jsonObject = new JSONObject(response);
//                                        String success = jsonObject.optString("retcode");
//                                        if (success.equals("200")){
//                                            toAdd(holderView.add_my_choice);
//                                            Snackbar.make(holderView.title_lay, R.string.p_rm_choice_success, Snackbar.LENGTH_SHORT).show();
//                                            getSeleceMarket();
//                                        }else {
//                                            Snackbar.make(holderView.title_lay, R.string.p_rm_choice_un_success, Snackbar.LENGTH_SHORT).show();
//                                        }
//                                    }catch (Exception e){
//
//                                    }
//                                }
//                            });
//                    SqliteOperateInstance.getInstance().delDBMarketChoice(String.valueOf(data.getGoodsId()));
//
//                } else {
//                    OkHttpUtils.post()
//                            .url(AddressConfig.MANAGE_HOME_URL + "/api/v1/account/" + GlobalDataCollention.getInstance().getCurr_accountInfoData().getAccountId() + "/addgoods")
//                            .addHeader("X-session-Token", SPUtils.getInstance().getString("token"))
//                            .addParams("goodsid", String.valueOf(data.getGoodsId()))
//                            .build()
//                            .execute(new StringCallback() {  //请求商品信息
//                                @Override
//                                public void onError(Call call, Exception e, int id) {
//                                    Snackbar.make(holderView.title_lay, R.string.p_add_choice_un_success, Snackbar.LENGTH_SHORT).show();
//                                }
//
//                                @Override
//                                public void onResponse(String response, int id) {
//                                    try {
//                                        JSONObject jsonObject = new JSONObject(response);
//                                        String success = jsonObject.optString("retcode");
//                                        if (success.equals("200")){
//                                            Snackbar.make(holderView.title_lay, R.string.p_add_choice_success, Snackbar.LENGTH_SHORT).show();
//                                            getSeleceMarket();
//                                            toSub(holderView.add_my_choice);
//                                        }else {
//                                            Snackbar.make(holderView.title_lay, R.string.p_add_choice_un_success, Snackbar.LENGTH_SHORT).show();
//                                        }
//                                    }catch (Exception e){
//
//                                    }
//
//                                }
//                            });
//                    SqliteOperateInstance.getInstance().insertDBMarketChoice(String.valueOf(data.getGoodsId()));
//
//                }
//            }


        });

//        Handler handler = new Handler(Looper.getMainLooper()){
//            @Override
//            public void handleMessage(Message msg) {
//
//                super.handleMessage(msg);
//            }
//        };


        return convertView;
    }

//    private boolean isAddMarket(String goodsid){
//        ArrayList<MarketSelectItemData.dataList> list = GlobalDataCollention.getInstance().getMarketSelectList();
//        for (int i = 0;i < list.size();i++){
//            if (list.get(i).getGoodsid().equals(goodsid)){
//                return true;
//            }
//        }
//        return false;
//    }

//    private void getSeleceMarket() {
//        OkHttpUtils.get()
//                .url(AddressConfig.MANAGE_HOME_URL + "/api/v1/account/" + GlobalDataCollention.getInstance().getCurr_accountInfoData().getAccountId() + "/querygoods")
//                .addHeader("X-session-Token", SPUtils.getInstance().getString("token"))
//                .build()
//                .execute(new StringCallback() {  //请求商品信息
//                    @Override
//                    public void onError(Call call, Exception e, int id) {
//
//                    }
//
//                    @Override
//                    public void onResponse(String response, int id) {
//                        Gson gson = new Gson();
//                        MarketSelectItemData marketRinkingDataList = gson.fromJson(response, MarketSelectItemData.class);  /*gson.fromJson(response, MarketRinkingData::class.java)*/
//                        if (marketRinkingDataList.retcode == 200) {
//                            ArrayList list = GlobalDataCollention.getInstance().getMarketSelectList();
//                            list.clear();
//                            list.addAll(marketRinkingDataList.datas);
////                            notifyDataSetChanged();
//                        } else {
//
//                        }
//                    }
//                });
//    }

//    //做个小动画  加号旋转180度消失
//    private void toAdd(ImageView view){
//        AnimaUtils.hideWithRotation(view, new AnimaUtils.OnAnimatorListener(){
//            @Override
//            public void onAnimationStart(Animator animation) {
//                super.onAnimationStart(animation);
//                view.setImageDrawable(context.getDrawable(R.mipmap.my_sub_add_icon));
//            }
//
//            @Override
//            public void onAnimationEnd(Animator animation) {
//                super.onAnimationEnd(animation);
//                view.setImageDrawable(context.getDrawable(R.mipmap.my_add_icon));
//            }
//        },2);
//    }
//
//    private void toSub(ImageView view){
//        AnimaUtils.hideWithRotation(view, new AnimaUtils.OnAnimatorListener(){
//            @Override
//            public void onAnimationStart(Animator animation) {
//                super.onAnimationStart(animation);
//                view.setImageDrawable(context.getDrawable(R.mipmap.my_add_icon));
//            }
//
//            @Override
//            public void onAnimationEnd(Animator animation) {
//                super.onAnimationEnd(animation);
//                view.setImageDrawable(context.getDrawable(R.mipmap.my_sub_add_icon));
//            }
//        }, 1);
//    }


    class HolderView{
        RelativeLayout title_lay;
        RelativeLayout choice_lay;
        TextView goods_name;
        TextView goods_type;
        TextView goods_code;
        ImageView add_my_choice;
    }
}
