import android.content.Context
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.RecyclerView
import com.tongtong.feat_watch.R
import com.tongtong.feat_watch.net.repository.WatchRepository
import com.tongtong.feat_watch.ui.hall.adapter.HallAdapter
import com.tongtong.feat_watch.ui.hall.adapter.ViewModel
import com.tongtong.feat_watch.ui.hall.bean.HallBean
import com.tongtong.feat_watch.ui.hall.viewmodel.HallViewModel
import com.tongtong.feat_watch.ui.paly.view.scroll.ViewHolder
import com.tongtong.lib_net.onFailedSuspend
import com.tongtong.lib_net.onSucceedSuspend
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.launch
import javax.inject.Inject
/**
* @author: shuhuai
* @desc:
* @date: 2025/1/15
* @version:
* @remark
*/
class MyAdapter(context: Context?, data: MutableList<HallBean> = mutableListOf()) :
RecyclerView.Adapter<ViewHolder?>() {
var context: Context? = context
var viewModel: ViewModel? = null
var mies: MutableList<HallBean> = data
init {
setHasStableIds(true)
}
open fun set(fragment: Fragment): MyAdapter {
viewModel = ViewModelProvider(fragment).get(ViewModel::class.java)
return this
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
TODO("Not yet implemented")
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(
LayoutInflater.from(context).inflate(getLayoutId(), parent, false)
)
}
open fun getLayoutId(): Int = R.layout.layout_hall_item
override fun getItemCount(): Int {
return if (mies.isEmpty()) 0 else mies.size
}
override fun getItemId(position: Int): Long {
return mies[position % mies.size].hashCode().toLong()
}
//使用接口回调点击事件
private var mItemClickListener: ItemClickListener? = null
fun setOnItemClickListener(itemClickListener: ItemClickListener?) {
this.mItemClickListener = itemClickListener
}
interface ItemClickListener {
fun onItemClick(obj: Any?, position: Int)
}
override fun onViewRecycled(holder: ViewHolder) {
holder.destoryDown()
}
}
@HiltViewModel
class ViewModel @Inject constructor(private val repository: WatchRepository) :
HallViewModel(repository) {
}