package com.zhengsr.tabhelper.fragment;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.zhengsr.tabhelper.R;
import com.zhengsr.tabhelper.bean.ArticleData;
import com.zhengsr.tabhelper.bean.BaseResponse;
import com.zhengsr.tabhelper.bean.NaviChildrenBean;
import com.zhengsr.tabhelper.bean.PageDataInfo;
import com.zhengsr.tabhelper.rx.HttpCreate;
import com.zhengsr.tabhelper.utils.RxUtils;

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

import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import me.yokeyword.fragmentation.SupportFragment;

/**
 * @author by  zhengshaorui on 2019/10/8
 * Describe:
 */
public class RecyclerFragment extends SupportFragment {
    private static final String TAG = "RecyclerFragment";
    private NaviChildrenBean mBean;
    private ArticleAdapter mAdapter;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.recycler_layout,container,false);
        initView(view);
        return view;
    }

    private List<ArticleData> mArticleBeans = new ArrayList<>();
    public static RecyclerFragment newInstance(NaviChildrenBean bean) {

        Bundle args = new Bundle();
        args.putSerializable("bean",bean);
        RecyclerFragment fragment = new RecyclerFragment();
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onLazyInitView(@Nullable Bundle savedInstanceState) {
        super.onLazyInitView(savedInstanceState);
        HttpCreate.getServer().getSystematicDetail(0,mBean.getId())
                .compose(RxUtils.<BaseResponse<PageDataInfo<List<ArticleData>>>>rxScheduers())
                .subscribe(new Observer<BaseResponse<PageDataInfo<List<ArticleData>>>>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(BaseResponse<PageDataInfo<List<ArticleData>>> pageDataInfoBaseResponse) {
                        PageDataInfo<List<ArticleData>> data = pageDataInfoBaseResponse.getData();
                        List<ArticleData> datas = data.getDatas();
                        mAdapter.setNewData(datas);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }

    private void initView(View view) {
        Bundle arguments = getArguments();
        mBean = (NaviChildrenBean) arguments.getSerializable("bean");

        RecyclerView recyclerView = view.findViewById(R.id.recycler);
        LinearLayoutManager manager = new LinearLayoutManager(getContext());
        recyclerView.setLayoutManager(manager);
        mAdapter = new ArticleAdapter(R.layout.item_article_recy_layout, mArticleBeans);
        recyclerView.setAdapter(mAdapter);




    }

    public class ArticleAdapter extends BaseQuickAdapter<ArticleData, BaseViewHolder> {

        private boolean isCollected = false;

        public ArticleAdapter(int layoutResId, @Nullable List<ArticleData> data) {
            super(layoutResId, data);
        }

        public void setCollected(boolean collected) {
            isCollected = collected;
        }



        @Override
        protected void convert(BaseViewHolder helper, ArticleData item) {
            String msg;
            if (!TextUtils.isEmpty(item.getSuperChapterName())){
                msg = item.getSuperChapterName()+"/"+item.getChapterName();
            }else{
                msg = item.getChapterName();
            }
            String author = (item.getAuthor() != null && item.getAuthor().length() > 0) ? item.getAuthor():item.getShareUser();
            helper.setText(R.id.item_article_author,author)
                    .setText(R.id.item_article_chapat, msg)
                    .setText(R.id.item_article_title,item.getTitle())
                    .setText(R.id.item_article_time,item.getNiceDate());

        }


    }
}