diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeRecentDebutCreatorAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeRecentDebutCreatorAdapter.kt index 773ca16e..2f5928b5 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeRecentDebutCreatorAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeRecentDebutCreatorAdapter.kt @@ -1,8 +1,10 @@ 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.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView @@ -22,7 +24,7 @@ class HomeRecentDebutCreatorAdapter( override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CreatorViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.item_home_recent_debut_creator, parent, false) - view.layoutParams = recentDebutItemLayoutParams(parent) + view.layoutParams = view.layoutParams.recentDebutItemLayoutParams(parent) return CreatorViewHolder(view, onClickItem) } @@ -39,6 +41,16 @@ class HomeRecentDebutCreatorAdapter( private val profileImage = itemView.findViewById(R.id.iv_home_recent_debut_creator_profile) private val nicknameText = itemView.findViewById(R.id.tv_home_recent_debut_creator_nickname) + init { + itemView.clipToOutline = true + itemView.outlineProvider = object : ViewOutlineProvider() { + override fun getOutline(view: View, outline: Outline) { + val radius = view.resources.getDimension(R.dimen.radius_14) + outline.setRoundRect(0, 0, view.width, view.height, radius) + } + } + } + fun bind(item: HomeRecommendationCreatorUiModel) { profileImage.loadUrl(item.profileImage) nicknameText.text = item.nickname @@ -46,10 +58,9 @@ class HomeRecentDebutCreatorAdapter( } } - private fun recentDebutItemLayoutParams(parent: ViewGroup): RecyclerView.LayoutParams { - return RecyclerView.LayoutParams( - ViewGroup.LayoutParams.WRAP_CONTENT, - ViewGroup.LayoutParams.WRAP_CONTENT - ).apply { marginEnd = parent.resources.getDimensionPixelSize(R.dimen.spacing_4) } + private fun ViewGroup.LayoutParams.recentDebutItemLayoutParams(parent: ViewGroup): RecyclerView.LayoutParams { + return RecyclerView.LayoutParams(this).apply { + marginEnd = parent.resources.getDimensionPixelSize(R.dimen.spacing_4) + } } } diff --git a/app/src/main/res/layout/item_home_recent_debut_creator.xml b/app/src/main/res/layout/item_home_recent_debut_creator.xml index 922bccc9..007d0a71 100644 --- a/app/src/main/res/layout/item_home_recent_debut_creator.xml +++ b/app/src/main/res/layout/item_home_recent_debut_creator.xml @@ -1,15 +1,14 @@ + android:layout_width="185dp" + android:layout_height="234dp" + android:background="@drawable/bg_home_recent_debut_card"> diff --git a/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentLayoutTest.kt b/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentLayoutTest.kt index b153aa80..cfb8d51c 100644 --- a/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentLayoutTest.kt +++ b/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentLayoutTest.kt @@ -229,10 +229,11 @@ class HomeMainFragmentLayoutTest { val profileImage = recentDebut.findViewById(R.id.iv_home_recent_debut_creator_profile) val nicknameText = recentDebut.findViewById(R.id.tv_home_recent_debut_creator_nickname) - assertEquals(205.dpToPx(), recentDebut.layoutParams.width) - assertEquals(259.dpToPx(), recentDebut.layoutParams.height) - assertEquals(205.dpToPx(), profileImage.layoutParams.width) - assertEquals(259.dpToPx(), profileImage.layoutParams.height) + assertEquals(185.dpToPx(), recentDebut.layoutParams.width) + assertEquals(234.dpToPx(), recentDebut.layoutParams.height) + assertEquals(R.drawable.bg_home_recent_debut_card, shadowOf(recentDebut.background).createdFromResId) + assertEquals(ViewGroup.LayoutParams.MATCH_PARENT, profileImage.layoutParams.width) + assertEquals(ViewGroup.LayoutParams.MATCH_PARENT, profileImage.layoutParams.height) assertEquals(24f, nicknameText.textSize / nicknameText.resources.displayMetrics.scaledDensity) assertEquals(Gravity.CENTER, nicknameText.gravity) } @@ -248,7 +249,11 @@ class HomeMainFragmentLayoutTest { val layoutParams = viewHolder.itemView.layoutParams as ViewGroup.MarginLayoutParams assertEquals(14.dpToPx(), recentDebutList.paddingStart) + assertEquals(185.dpToPx(), layoutParams.width) + assertEquals(234.dpToPx(), layoutParams.height) assertEquals(4.dpToPx(), layoutParams.marginEnd) + assertTrue(viewHolder.itemView.clipToOutline) + assertNotNull(viewHolder.itemView.outlineProvider) } @Test