From 9496a57b3c0932569d64ea0c6b4bc1ad459bd747 Mon Sep 17 00:00:00 2001 From: klaus Date: Tue, 3 Feb 2026 10:49:19 +0900 Subject: [PATCH] =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=B9=B4?= =?UTF-8?q?=EB=93=9C=20=ED=83=9C=EA=B7=B8=20=EC=B9=A9=20=ED=91=9C=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/live/now/LiveNowAdapter.kt | 23 ++ .../live/now/all/LiveNowAllAdapter.kt | 29 +- .../res/drawable/bg_round_corner_8_37474f.xml | 5 + app/src/main/res/layout/item_live_now.xml | 306 ++++++++++-------- 4 files changed, 233 insertions(+), 130 deletions(-) create mode 100644 app/src/main/res/drawable/bg_round_corner_8_37474f.xml diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/now/LiveNowAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/now/LiveNowAdapter.kt index 46205e89..c69ffe20 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/now/LiveNowAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/now/LiveNowAdapter.kt @@ -60,8 +60,31 @@ class LiveNowAdapter( binding.tvFree.visibility = View.VISIBLE } + bindTags(item) + binding.root.setOnClickListener { onClick(item) } } + + private fun bindTags(item: GetRoomListResponse) { + val tags = item.tags.filter { it.isNotBlank() }.take(2) + if (tags.isEmpty()) { + binding.llTags.visibility = View.GONE + binding.tvTag1.visibility = View.GONE + binding.tvTag2.visibility = View.GONE + return + } + + binding.llTags.visibility = View.VISIBLE + binding.tvTag1.text = tags[0] + binding.tvTag1.visibility = View.VISIBLE + + if (tags.size > 1) { + binding.tvTag2.text = tags[1] + binding.tvTag2.visibility = View.VISIBLE + } else { + binding.tvTag2.visibility = View.GONE + } + } } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ViewHolder( diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/now/all/LiveNowAllAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/now/all/LiveNowAllAdapter.kt index 4c20dde0..8ebf1f98 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/now/all/LiveNowAllAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/now/all/LiveNowAllAdapter.kt @@ -34,9 +34,14 @@ class LiveNowAllAdapter( val rootLayoutParams = binding.root.layoutParams rootLayoutParams.width = itemWidth - rootLayoutParams.height = (baseCardHeight * scale).roundToInt() + rootLayoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT binding.root.layoutParams = rootLayoutParams + val cardLayoutParams = binding.cardLiveNow.layoutParams + cardLayoutParams.width = itemWidth + cardLayoutParams.height = (baseCardHeight * scale).roundToInt() + binding.cardLiveNow.layoutParams = cardLayoutParams + val profileLayoutParams = binding.flProfile.layoutParams profileLayoutParams.width = (84.dpToPx() * scale).roundToInt() profileLayoutParams.height = (84.dpToPx() * scale).roundToInt() @@ -80,9 +85,31 @@ class LiveNowAllAdapter( binding.tvTitle.text = item.title binding.tvNickname.text = item.creatorNickname + bindTags(item) binding.root.setOnClickListener { onClick(item) } } + + private fun bindTags(item: GetRoomListResponse) { + val tags = item.tags.filter { it.isNotBlank() }.take(2) + if (tags.isEmpty()) { + binding.llTags.visibility = View.GONE + binding.tvTag1.visibility = View.GONE + binding.tvTag2.visibility = View.GONE + return + } + + binding.llTags.visibility = View.VISIBLE + binding.tvTag1.text = tags[0] + binding.tvTag1.visibility = View.VISIBLE + + if (tags.size > 1) { + binding.tvTag2.text = tags[1] + binding.tvTag2.visibility = View.VISIBLE + } else { + binding.tvTag2.visibility = View.GONE + } + } } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ViewHolder( diff --git a/app/src/main/res/drawable/bg_round_corner_8_37474f.xml b/app/src/main/res/drawable/bg_round_corner_8_37474f.xml new file mode 100644 index 00000000..dccd4ea3 --- /dev/null +++ b/app/src/main/res/drawable/bg_round_corner_8_37474f.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/layout/item_live_now.xml b/app/src/main/res/layout/item_live_now.xml index 4487951d..9d717389 100644 --- a/app/src/main/res/layout/item_live_now.xml +++ b/app/src/main/res/layout/item_live_now.xml @@ -1,152 +1,200 @@ - + android:layout_height="wrap_content" + android:orientation="vertical"> - + android:layout_height="204dp" + app:cardBackgroundColor="#263238" + app:cardCornerRadius="16dp"> - + - - - - - - + android:src="@drawable/ic_lock" + android:visibility="gone" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - - + android:src="@drawable/ic_shield" + android:visibility="gone" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - + + - + + - - - - - - + + + - - + android:layout_width="0dp" + android:layout_height="0dp" + android:layout_marginHorizontal="2dp" + android:layout_marginVertical="8dp" + android:orientation="vertical" + app:layout_constraintBottom_toTopOf="@+id/fl_can" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/fl_profile"> + android:gravity="center" + android:textColor="@color/white" + android:textSize="16sp" + tools:text="도화" /> + + - - - + + + + + + + + + + + + + + + + + + + + + +