package com.hi.music.player.adapter;

import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.Target;
import com.hi.music.player.MusicApplication;
import com.hi.music.player.R;
import com.hi.music.player.databinding.ItemCategoryBinding;
import com.hi.music.player.helper.CommonUtils;
import com.hi.music.player.helper.MyValue;
import com.hi.music.player.javabean.response.child.ResponseCategory;

public class AdapterCategory extends BaseAdapter<ResponseCategory, ItemCategoryBinding>{

    @Override
    protected ItemCategoryBinding getViewBinding(ViewGroup parent) {
        return ItemCategoryBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
    }

    @Override
    public void onBindViewHolder(@NonNull  RecyclerView.ViewHolder holder, int position) {

        int itemViewType = getItemViewType(position);
        if (itemViewType == TYPE_ITEM) {
            VHolder<ItemCategoryBinding> itemHolder = (VHolder<ItemCategoryBinding>) holder;
            ItemCategoryBinding vb = itemHolder.getVb();
            ResponseCategory responseCategory = data.get(position);
            String pageType = responseCategory.getPageType();

            if(pageType.equals(MyValue.PAGE_TYPE_MV)){
                ViewGroup.LayoutParams layoutParams = vb.header.getLayoutParams();
                layoutParams.width = CommonUtils.dpToPx(260);
                vb.header.setLayoutParams(layoutParams);
            }else {
                ViewGroup.LayoutParams layoutParams = vb.header.getLayoutParams();
                layoutParams.width = CommonUtils.dpToPx(170);
                vb.header.setLayoutParams(layoutParams);
            }


            Glide.with(MusicApplication.myApplication)
                    .asDrawable()
                    .apply(RequestOptions.bitmapTransform(new RoundedCorners(CommonUtils.dpToPx(13))))
                    .load(responseCategory.getCovert())
                    .placeholder(R.drawable.placeholder)
                    .listener(new RequestListener<Drawable>() {
                        @Override
                        public boolean onLoadFailed(@Nullable GlideException e, @Nullable Object model, @NonNull Target<Drawable> target, boolean isFirstResource) {
                            CommonUtils.LogMsg(e.getMessage());
                            return false;
                        }

                        @Override
                        public boolean onResourceReady(@NonNull Drawable resource, @NonNull Object model, Target<Drawable> target, @NonNull DataSource dataSource, boolean isFirstResource) {
                            return false;
                        }
                    })
                    .into(vb.header);
            vb.tvTitle.setText(responseCategory.getTwoTitle());
            vb.tvSubtitle.setText(responseCategory.getTwoSubtitle());
            vb.header.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (homeItemClickListener != null) {
                        homeItemClickListener.onClickItemCategory(responseCategory);
                    }
                }
            });
        }
    }
}
