From b3553f80c6f278fa82b985e6c4e0788da7e25675 Mon Sep 17 00:00:00 2001 From: klaus Date: Tue, 26 Aug 2025 12:11:43 +0900 Subject: [PATCH] =?UTF-8?q?feat(chat):=20=EC=B1=84=ED=8C=85=EB=B0=A9=20?= =?UTF-8?q?=EC=83=81=EB=8B=A8=20=EC=BA=94=20=EB=B0=B0=EC=A7=80=20=EB=B0=8F?= =?UTF-8?q?=20=EB=8D=94=EB=B3=B4=EA=B8=B0=20=EC=A0=84=EC=B2=B4=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=EB=8B=A4=EC=9D=B4=EC=96=BC=EB=A1=9C=EA=B7=B8=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 헤더 우측에 캔 배지(tv_can_badge)와 더보기(iv_more) 추가 - 캔 배지 스타일 적용(배경 #263238, 텍스트 white, v5/h8 패딩, can 아이콘) - 더보기 클릭 시 전체화면 다이얼로그 표시(플레이스홀더 UI) --- .../chat/talk/room/ChatRoomActivity.kt | 8 +++ .../talk/room/ChatRoomMoreDialogFragment.kt | 29 +++++++++++ app/src/main/res/drawable/bg_can_badge.xml | 6 +++ .../main/res/layout/activity_chat_room.xml | 50 +++++++++++++++++-- .../layout/fragment_chat_room_more_dialog.xml | 20 ++++++++ 5 files changed, 110 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatRoomMoreDialogFragment.kt create mode 100644 app/src/main/res/drawable/bg_can_badge.xml create mode 100644 app/src/main/res/layout/fragment_chat_room_more_dialog.xml diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatRoomActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatRoomActivity.kt index a2529112..8e8233af 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatRoomActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatRoomActivity.kt @@ -22,6 +22,7 @@ import kr.co.vividnext.sodalive.chat.character.detail.detail.CharacterType import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.databinding.ActivityChatRoomBinding import kr.co.vividnext.sodalive.extensions.dpToPx +import kr.co.vividnext.sodalive.extensions.moneyFormat import org.koin.android.ext.android.inject class ChatRoomActivity : BaseActivity( @@ -73,6 +74,13 @@ class ChatRoomActivity : BaseActivity( // 뒤로가기 버튼 동작 binding.ivBack.setOnClickListener { finish() } + binding.tvCanBadge.text = SharedPreferenceManager.can.moneyFormat() + + // 더보기 클릭 시 전체화면 다이얼로그 표시 + binding.ivMore.setOnClickListener { + ChatRoomMoreDialogFragment().show(supportFragmentManager, "ChatRoomMoreDialog") + } + // 5.3: characterInfo가 있으면 헤더 바인딩, 없으면 기본 플레이스홀더 유지 characterInfo?.let { bindHeader(it) } ?: run { // 기본값: 이름 숨김 또는 플레이스 홀더 표시 diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatRoomMoreDialogFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatRoomMoreDialogFragment.kt new file mode 100644 index 00000000..8a522622 --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatRoomMoreDialogFragment.kt @@ -0,0 +1,29 @@ +package kr.co.vividnext.sodalive.chat.talk.room + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.DialogFragment +import kr.co.vividnext.sodalive.R + +/** + * 채팅방 우측 상단 더보기 버튼 클릭 시 표시되는 전체화면 다이얼로그. + * 내용은 추후 구성 예정이며 현재는 플레이스홀더 UI만 표시합니다. + */ +class ChatRoomMoreDialogFragment : DialogFragment() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + // 기본 전체 화면 테마 사용 (타이틀 없음, 전체화면) + setStyle(STYLE_NO_TITLE, android.R.style.Theme_Black_NoTitleBar_Fullscreen) + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + return inflater.inflate(R.layout.fragment_chat_room_more_dialog, container, false) + } +} diff --git a/app/src/main/res/drawable/bg_can_badge.xml b/app/src/main/res/drawable/bg_can_badge.xml new file mode 100644 index 00000000..091cdbb2 --- /dev/null +++ b/app/src/main/res/drawable/bg_can_badge.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/layout/activity_chat_room.xml b/app/src/main/res/layout/activity_chat_room.xml index 9e95076a..bfd9a722 100644 --- a/app/src/main/res/layout/activity_chat_room.xml +++ b/app/src/main/res/layout/activity_chat_room.xml @@ -34,10 +34,10 @@ android:id="@+id/header_container" android:layout_width="0dp" android:layout_height="60dp" - android:paddingTop="4dp" android:background="@android:color/transparent" android:paddingHorizontal="16dp" android:paddingVertical="8dp" + android:paddingTop="4dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> @@ -69,7 +69,7 @@ android:layout_marginStart="12dp" android:orientation="vertical" app:layout_constraintBottom_toBottomOf="@+id/iv_profile" - app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintEnd_toStartOf="@+id/ll_can_badge" app:layout_constraintStart_toEndOf="@id/iv_profile" app:layout_constraintTop_toTopOf="@id/iv_profile"> @@ -98,11 +98,55 @@ android:textColor="#FFFFFFFF" android:textSize="10sp" app:layout_constraintBottom_toBottomOf="@id/iv_profile" - app:layout_constraintEnd_toEndOf="parent" tools:ignore="SmallSp" tools:text="Clone" /> + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_chat_room_more_dialog.xml b/app/src/main/res/layout/fragment_chat_room_more_dialog.xml new file mode 100644 index 00000000..3a215e66 --- /dev/null +++ b/app/src/main/res/layout/fragment_chat_room_more_dialog.xml @@ -0,0 +1,20 @@ + + + + + +