From 11a42bf8a1c9c0cb9df5b967f1b25c710a957c5b Mon Sep 17 00:00:00 2001 From: klaus Date: Sat, 11 Jul 2026 22:03:24 +0900 Subject: [PATCH] =?UTF-8?q?feat(dm):=20=EB=A9=94=EC=8B=9C=EC=A7=80=20?= =?UTF-8?q?=EC=8B=9C=EA=B0=84=EC=9D=84=20=ED=91=9C=EC=8B=9C=ED=95=9C?= =?UTF-8?q?=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/chat/dm/ui/DmChatMessageAdapter.kt | 5 +++++ .../res/layout/item_dm_chat_my_message.xml | 20 +++++++++++++++++-- .../layout/item_dm_chat_opponent_message.xml | 13 ++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/dm/ui/DmChatMessageAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/dm/ui/DmChatMessageAdapter.kt index 247ed48d..e9189c8b 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/dm/ui/DmChatMessageAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/dm/ui/DmChatMessageAdapter.kt @@ -10,6 +10,7 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView import coil.transform.CircleCropTransformation import kr.co.vividnext.sodalive.R +import kr.co.vividnext.sodalive.chat.talk.room.formatMessageTime import kr.co.vividnext.sodalive.extensions.loadUrl import kr.co.vividnext.sodalive.v2.main.chat.dm.model.DmChatMessageStatus import kr.co.vividnext.sodalive.v2.main.chat.dm.model.DmChatMessageUiItem @@ -84,11 +85,13 @@ class DmChatMessageAdapter( ) : RecyclerView.ViewHolder(itemView) { private val tvMessage = itemView.findViewById(R.id.tv_message) private val tvStatus = itemView.findViewById(R.id.tv_status) + private val tvTime = itemView.findViewById(R.id.tv_time) private val ivRetry = itemView.findViewById(R.id.iv_retry) private val messageContainer = itemView.findViewById(R.id.message_container) fun bind(item: DmChatMessageUiItem) { tvMessage.text = item.textMessage + tvTime.text = formatMessageTime(item.createdAt) tvMessage.maxWidth = (itemView.resources.displayMetrics.widthPixels * MESSAGE_MAX_WIDTH_RATIO).toInt() val statusText = when (item.status) { @@ -119,10 +122,12 @@ class DmChatMessageAdapter( private val ivProfile = itemView.findViewById(R.id.iv_profile) private val tvName = itemView.findViewById(R.id.tv_name) private val tvMessage = itemView.findViewById(R.id.tv_message) + private val tvTime = itemView.findViewById(R.id.tv_time) fun bind(item: DmChatMessageUiItem) { tvName.text = item.senderNickname tvMessage.text = item.textMessage + tvTime.text = formatMessageTime(item.createdAt) tvMessage.maxWidth = (itemView.resources.displayMetrics.widthPixels * MESSAGE_MAX_WIDTH_RATIO).toInt() ivProfile.loadUrl(item.senderProfileImageUrl) { placeholder(R.drawable.ic_placeholder_profile) diff --git a/app/src/main/res/layout/item_dm_chat_my_message.xml b/app/src/main/res/layout/item_dm_chat_my_message.xml index ff2adf60..65569ac0 100644 --- a/app/src/main/res/layout/item_dm_chat_my_message.xml +++ b/app/src/main/res/layout/item_dm_chat_my_message.xml @@ -18,9 +18,25 @@ android:includeFontPadding="false" android:textColor="@color/color_777777" android:textSize="12sp" + app:layout_constraintBottom_toTopOf="@id/tv_time" + app:layout_constraintEnd_toEndOf="@id/tv_time" + tools:text="전송 중" /> + + + app:layout_constraintHorizontal_bias="1" + app:layout_constraintHorizontal_chainStyle="packed" + app:layout_constraintStart_toStartOf="parent" + tools:text="오후 11:03" /> + +