package com.aries.library.fast.demo.adapter;

import android.view.ViewGroup;

import com.aries.library.fast.demo.App;
import com.aries.library.fast.demo.R;
import com.aries.library.fast.demo.entity.WebAppEntity;
import com.aries.library.fast.util.SizeUtil;
import com.aries.ui.view.radius.RadiusTextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;

/**
 * @Author: AriesHoo on 2019/4/24 14:43
 * @E-Mail: [email protected]
 * @Function: WebApp适配器
 * @Description:
 */
public class WebAppAdapter extends BaseQuickAdapter<WebAppEntity, BaseViewHolder> {
    private int mPadding;
    private int mPaddingTop;


    public WebAppAdapter() {
        super(R.layout.item_web_app);
        mPadding = App.getContext().getResources().getDimensionPixelSize(R.dimen.dp_margin_item);
        mPaddingTop = (((SizeUtil.getScreenWidth() - 4 * mPadding) / 3) - SizeUtil.dp2px(36 + 18) - mPadding) / 2;
    }

    @Override
    protected void convert(BaseViewHolder helper, WebAppEntity item) {
        int index = helper.getAdapterPosition() % 3;
        int size = getData().size();
        int percent = size % 3;

        RadiusTextView text = (RadiusTextView) helper.itemView;
        text.setText(item.title);
        text.getDelegate()
                .setTopDrawable(item.icon)
                .init();

        ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) helper.itemView.getLayoutParams();
        if (params != null) {
            params.topMargin = mPadding;
            params.leftMargin = index == 0 ? mPadding : mPadding / 2;
            params.rightMargin = index == 2 ? mPadding : mPadding / 2;
            params.bottomMargin =
                    helper.getAdapterPosition() == size - 1
                            || percent != 1 && helper.getAdapterPosition() == getData().size() - 2
                            || percent == 0 && helper.getAdapterPosition() == getData().size() - 3 ? mPadding : 0;
        }
        helper.itemView.setPadding(mPadding, mPaddingTop, mPadding, mPaddingTop);
    }
}