diff --git a/app/src/main/res/layout/view_creator_ranking_compact_card.xml b/app/src/main/res/layout/view_creator_ranking_compact_card.xml index 95ac5790..d1b35767 100644 --- a/app/src/main/res/layout/view_creator_ranking_compact_card.xml +++ b/app/src/main/res/layout/view_creator_ranking_compact_card.xml @@ -23,6 +23,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/pattaya_regular" + android:gravity="center" android:includeFontPadding="false" android:shadowColor="#7A000000" android:shadowRadius="4" diff --git a/app/src/main/res/layout/view_creator_ranking_horizontal_card.xml b/app/src/main/res/layout/view_creator_ranking_horizontal_card.xml index 825f1d7c..96d5e723 100644 --- a/app/src/main/res/layout/view_creator_ranking_horizontal_card.xml +++ b/app/src/main/res/layout/view_creator_ranking_horizontal_card.xml @@ -16,6 +16,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/pattaya_regular" + android:gravity="center" android:includeFontPadding="false" android:shadowColor="#7A000000" android:shadowRadius="4" diff --git a/app/src/main/res/layout/view_creator_ranking_large_card.xml b/app/src/main/res/layout/view_creator_ranking_large_card.xml index 50bf5c4e..735bc59c 100644 --- a/app/src/main/res/layout/view_creator_ranking_large_card.xml +++ b/app/src/main/res/layout/view_creator_ranking_large_card.xml @@ -23,6 +23,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/pattaya_regular" + android:gravity="center" android:includeFontPadding="false" android:shadowColor="#7A000000" android:shadowRadius="4" diff --git a/app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingAdapterLayoutTest.kt b/app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingAdapterLayoutTest.kt index b8afb1b2..0cf08969 100644 --- a/app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingAdapterLayoutTest.kt +++ b/app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingAdapterLayoutTest.kt @@ -2,8 +2,11 @@ package kr.co.vividnext.sodalive.v2.widget.creatorranking import android.app.Application import android.content.Context +import android.view.Gravity import android.view.LayoutInflater import android.view.View +import android.view.ViewGroup +import android.widget.TextView import androidx.test.core.app.ApplicationProvider import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.v2.widget.ranking.RankingChangeType.Increase @@ -38,6 +41,65 @@ class CreatorRankingAdapterLayoutTest { } } + @Test + fun `large card 순위 숫자는 Figma 고정 박스 안에서 중앙 정렬된다`() { + val view = inflateView(R.layout.view_creator_ranking_large_card) + + view.setCardSize(CreatorRankingCardSize(widthPx = 374, heightPx = 374)) + + assertRankTextBox( + view = view.findViewById(R.id.tv_creator_ranking_rank), + expectedWidth = 112, + expectedHeight = 124, + expectedLeft = 0, + expectedTop = 0 + ) + } + + @Test + fun `compact medium card 순위 숫자는 Figma 고정 박스 안에서 중앙 정렬된다`() { + val view = inflateView(R.layout.view_creator_ranking_compact_card) + + view.setCardSize(CreatorRankingCardSize(widthPx = 185, heightPx = 185)) + + assertRankTextBox( + view = view.findViewById(R.id.tv_creator_ranking_rank), + expectedWidth = 55, + expectedHeight = 75, + expectedLeft = 0, + expectedTop = 0 + ) + } + + @Test + fun `compact small card 순위 숫자는 Figma 고정 박스 안에서 중앙 정렬된다`() { + val view = inflateView(R.layout.view_creator_ranking_compact_card) + + view.setCardSize(CreatorRankingCardSize(widthPx = 122, heightPx = 122)) + + assertRankTextBox( + view = view.findViewById(R.id.tv_creator_ranking_rank), + expectedWidth = 42, + expectedHeight = 56, + expectedLeft = 8, + expectedTop = 0 + ) + } + + @Test + fun `horizontal card 순위 그룹은 Figma 고정 박스 위치를 유지한다`() { + val view = inflateView(R.layout.view_creator_ranking_horizontal_card) + + view.setCardSize(CreatorRankingCardSize(widthPx = 374, heightPx = 100)) + + val rankGroup = view.findViewById(R.id.ll_creator_ranking_rank_group) + val params = rankGroup.layoutParams as ViewGroup.MarginLayoutParams + assertEquals(49, params.width) + assertEquals(ViewGroup.LayoutParams.WRAP_CONTENT, params.height) + assertEquals(14, params.leftMargin) + assertEquals(14, params.topMargin) + } + @Test fun `large card는 순위 변동 숨김이면 delta를 숨긴다`() { val view = inflateView(R.layout.view_creator_ranking_large_card) @@ -92,6 +154,21 @@ class CreatorRankingAdapterLayoutTest { assertEquals(View.VISIBLE, view.findViewById(R.id.ll_creator_ranking_delta).visibility) } + private fun assertRankTextBox( + view: TextView, + expectedWidth: Int, + expectedHeight: Int, + expectedLeft: Int, + expectedTop: Int + ) { + val params = view.layoutParams as ViewGroup.MarginLayoutParams + assertEquals(expectedWidth, params.width) + assertEquals(expectedHeight, params.height) + assertEquals(expectedLeft, params.leftMargin) + assertEquals(expectedTop, params.topMargin) + assertEquals(Gravity.CENTER, view.gravity) + } + private inline fun inflateView(layoutResId: Int): T { val context = ApplicationProvider.getApplicationContext() return LayoutInflater.from(context).inflate(layoutResId, null, false) as T