package com.lukouguoji.aerologic.page.uld.list

import android.view.View
import com.lukouguoji.aerologic.databinding.ItemUldListBinding
import com.lukouguoji.module_base.base.BaseViewHolder
import com.lukouguoji.module_base.bean.ULDBean
import com.lukouguoji.module_base.common.ConstantEvent
import com.lukouguoji.module_base.impl.FlowBus

/**
 * ULD管理列表项 ViewHolder。
 *
 * 平板 / 手机共用：布局按资源限定符切换，本类不做设备判断。
 * 平板独有 id（tv_modify / tv_delete 侧滑按钮）与手机独有 id（iv_check 勾选框）
 * 在 Binding 基类中为 @Nullable，各自判空使用。
 */
class UldListViewHolder(view: View) : BaseViewHolder<ULDBean, ItemUldListBinding>(view) {
    override fun onBind(item: Any?, position: Int) {
        val itemBean = getItemBean(item)!!
        binding.bean = itemBean

        // 点卡片进详情（两端共用，走 ViewModel.onItemClick 的 R.id.ll_content 分支）
        notifyItemClick(position, binding.llContent)

        // 平板侧滑按钮（手机变体无此控件）
        binding.tvModify?.let { notifyItemClick(position, it) }
        binding.tvDelete?.let { notifyItemClick(position, it) }

        // 手机版勾选框（平板变体无此控件）：切换选中态并通知页面刷新全选/已选统计
        binding.ivCheck?.setOnClickListener {
            itemBean.checked.set(!itemBean.checked.get())
            FlowBus.with<String>(ConstantEvent.EVENT_CHECK_CHANGED).tryEmit("check_changed")
            binding.executePendingBindings()
        }

        binding.executePendingBindings()
    }
}
