From bd475d1c879ee66c27ade3c92e10638dd58e879a Mon Sep 17 00:00:00 2001 From: klaus Date: Tue, 2 Jun 2026 18:59:57 +0900 Subject: [PATCH] =?UTF-8?q?feat(home):=20=EC=B2=AB=20=EC=98=A4=EB=94=94?= =?UTF-8?q?=EC=98=A4=20=EC=BD=98=ED=85=90=EC=B8=A0=20=EC=B9=B4=EB=93=9C?= =?UTF-8?q?=EB=A5=BC=20=EC=A0=95=EB=A6=AC=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2/main/home/ui/HomeFirstAudioAdapter.kt | 75 +++++++++-- .../home/ui/HomeRecyclerItemLayoutParams.kt | 7 +- .../layout/item_home_first_audio_content.xml | 120 ++++++++++++++++++ 3 files changed, 190 insertions(+), 12 deletions(-) create mode 100644 app/src/main/res/layout/item_home_first_audio_content.xml diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeFirstAudioAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeFirstAudioAdapter.kt index 9ee48c36..c950e20d 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeFirstAudioAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeFirstAudioAdapter.kt @@ -1,13 +1,20 @@ package kr.co.vividnext.sodalive.v2.main.home.ui +import android.graphics.Outline import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup +import android.view.ViewOutlineProvider +import android.widget.FrameLayout +import android.widget.ImageView +import android.widget.LinearLayout +import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import kr.co.vividnext.sodalive.R +import kr.co.vividnext.sodalive.extensions.dpToPx import kr.co.vividnext.sodalive.extensions.loadUrl import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationFirstAudioContentUiModel -import kr.co.vividnext.sodalive.v2.widget.AudioContentCardSize -import kr.co.vividnext.sodalive.v2.widget.AudioContentCardView +import kr.co.vividnext.sodalive.v2.widget.AudioContentTag class HomeFirstAudioAdapter : RecyclerView.Adapter() { private var items: List = emptyList() @@ -19,11 +26,11 @@ class HomeFirstAudioAdapter : RecyclerView.Adapter) { + firstTag.visibility = if (AudioContentTag.First in tags) View.VISIBLE else View.GONE + pointTag.visibility = if (AudioContentTag.Point in tags) View.VISIBLE else View.GONE + freeTag.visibility = if (AudioContentTag.Free in tags) View.VISIBLE else View.GONE + topTagContainer.visibility = if (firstTag.visibility == View.VISIBLE) View.VISIBLE else View.GONE + bottomTagContainer.visibility = if ( + pointTag.visibility == View.VISIBLE || freeTag.visibility == View.VISIBLE + ) { + View.VISIBLE + } else { + View.GONE + } + } + + private companion object { + const val THUMBNAIL_RADIUS_DP = 14f } } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeRecyclerItemLayoutParams.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeRecyclerItemLayoutParams.kt index 2cc40c8d..99605961 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeRecyclerItemLayoutParams.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeRecyclerItemLayoutParams.kt @@ -4,9 +4,12 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import kr.co.vividnext.sodalive.R -internal fun recyclerItemLayoutParams(parent: ViewGroup): RecyclerView.LayoutParams { +internal fun recyclerItemLayoutParams( + parent: ViewGroup, + marginEndResId: Int = R.dimen.spacing_12 +): RecyclerView.LayoutParams { return RecyclerView.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT - ).apply { marginEnd = parent.resources.getDimensionPixelSize(R.dimen.spacing_12) } + ).apply { marginEnd = parent.resources.getDimensionPixelSize(marginEndResId) } } diff --git a/app/src/main/res/layout/item_home_first_audio_content.xml b/app/src/main/res/layout/item_home_first_audio_content.xml new file mode 100644 index 00000000..f346fbae --- /dev/null +++ b/app/src/main/res/layout/item_home_first_audio_content.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +