feat(home): 팔로잉 라이브 카드를 추가한다

This commit is contained in:
2026-06-25 23:33:51 +09:00
parent 34ac433247
commit 8f5012fe2a
2 changed files with 156 additions and 0 deletions
@@ -0,0 +1,55 @@
package kr.co.vividnext.sodalive.v2.main.home.ui
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.common.formatUtcRelativeTimeText
import kr.co.vividnext.sodalive.extensions.loadUrl
import kr.co.vividnext.sodalive.v2.main.home.model.HomeFollowingLiveUiItem
class HomeFollowingLiveAdapter(
private val onClickItem: (HomeFollowingLiveUiItem) -> Unit = {}
) : RecyclerView.Adapter<HomeFollowingLiveAdapter.LiveViewHolder>() {
private var items: List<HomeFollowingLiveUiItem> = emptyList()
fun submitItems(items: List<HomeFollowingLiveUiItem>) {
this.items = items
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): LiveViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_home_following_live, parent, false)
view.layoutParams = recyclerItemLayoutParams(parent)
return LiveViewHolder(view, onClickItem)
}
override fun onBindViewHolder(holder: LiveViewHolder, position: Int) {
holder.bind(items[position])
}
override fun getItemCount(): Int = items.size
class LiveViewHolder(
itemView: View,
private val onClickItem: (HomeFollowingLiveUiItem) -> Unit
) : RecyclerView.ViewHolder(itemView) {
private val thumbnailImage = itemView.findViewById<ImageView>(R.id.iv_home_following_live_thumbnail)
private val profileImage = itemView.findViewById<ImageView>(R.id.iv_home_following_live_creator_profile)
private val titleText = itemView.findViewById<TextView>(R.id.tv_home_following_live_title)
private val nicknameText = itemView.findViewById<TextView>(R.id.tv_home_following_live_creator_nickname)
private val startedAtText = itemView.findViewById<TextView>(R.id.tv_home_following_live_started_at)
fun bind(item: HomeFollowingLiveUiItem) {
thumbnailImage.loadUrl(item.creatorProfileImageUrl)
profileImage.loadHomeCreatorProfileImage(item.creatorProfileImageUrl)
titleText.text = item.title
nicknameText.text = item.creatorNickname
startedAtText.text = formatUtcRelativeTimeText(itemView.context, item.startedAtUtc)
itemView.setOnClickListener { onClickItem(item) }
}
}
}