From be847b4600c118d712d92445309113ea0e77dcd8 Mon Sep 17 00:00:00 2001 From: klaus Date: Mon, 14 Sep 2026 22:04:57 +0900 Subject: [PATCH] =?UTF-8?q?feat(dm):=20=EC=88=98=EC=8B=A0=EC=9E=90=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20=ED=96=89=EC=9D=84=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/chat/recipient/DmRecipientAdapter.kt | 36 +++++++++++++++++++ app/src/main/res/layout/item_dm_recipient.xml | 31 ++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/recipient/DmRecipientAdapter.kt create mode 100644 app/src/main/res/layout/item_dm_recipient.xml diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/recipient/DmRecipientAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/recipient/DmRecipientAdapter.kt new file mode 100644 index 00000000..4fd5c5ef --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/recipient/DmRecipientAdapter.kt @@ -0,0 +1,36 @@ +package kr.co.vividnext.sodalive.v2.main.chat.recipient + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import kr.co.vividnext.sodalive.databinding.ItemDmRecipientBinding +import kr.co.vividnext.sodalive.v2.main.home.ui.loadHomeCreatorProfileImage + +class DmRecipientAdapter( + private val onClick: (DmRecipientUiModel) -> Unit +) : RecyclerView.Adapter() { + private var items: List = emptyList() + + fun submitItems(items: List) { + this.items = items + notifyDataSetChanged() + } + + override fun getItemCount(): Int = items.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecipientViewHolder = + RecipientViewHolder(ItemDmRecipientBinding.inflate(LayoutInflater.from(parent.context), parent, false)) + + override fun onBindViewHolder(holder: RecipientViewHolder, position: Int) { + holder.bind(items[position]) + } + + inner class RecipientViewHolder(private val binding: ItemDmRecipientBinding) : + RecyclerView.ViewHolder(binding.root) { + fun bind(item: DmRecipientUiModel) { + binding.ivProfile.loadHomeCreatorProfileImage(item.profileImageUrl) + binding.tvNickname.text = item.nickname + binding.root.setOnClickListener { onClick(item) } + } + } +} diff --git a/app/src/main/res/layout/item_dm_recipient.xml b/app/src/main/res/layout/item_dm_recipient.xml new file mode 100644 index 00000000..1469f7b2 --- /dev/null +++ b/app/src/main/res/layout/item_dm_recipient.xml @@ -0,0 +1,31 @@ + + + + + + +