From f477b563a2f4cb4f1c1f822dadb0f57cc4d18e3b Mon Sep 17 00:00:00 2001 From: klaus Date: Fri, 10 Jul 2026 10:16:09 +0900 Subject: [PATCH] =?UTF-8?q?fix(creator-ranking):=20=ED=85=8D=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=ED=81=AC=EA=B8=B0=20=EA=B8=B0=EC=A4=80=EC=9D=84=20?= =?UTF-8?q?=ED=99=95=EC=9E=A5=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creatorranking/CreatorRankingTextStyle.kt | 12 ++++++++++++ .../CreatorRankingTextStyleTest.kt | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingTextStyle.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingTextStyle.kt index b0481825..dafac43f 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingTextStyle.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingTextStyle.kt @@ -5,6 +5,12 @@ data class CreatorRankingTextStyle( val nameTextSizeSp: Int, val deltaTextSizeSp: Int ) { + fun scaledBy(scale: Float): CreatorRankingScaledTextStyle = CreatorRankingScaledTextStyle( + rankTextSizeSp = rankTextSizeSp * scale, + nameTextSizeSp = nameTextSizeSp * scale, + deltaTextSizeSp = deltaTextSizeSp * scale + ) + companion object { fun fromPlacement(placement: CreatorRankingPlacement): CreatorRankingTextStyle { return when (placement.viewType) { @@ -25,3 +31,9 @@ data class CreatorRankingTextStyle( fun fromRank(rank: Int): CreatorRankingTextStyle = fromPlacement(CreatorRankingPlacement.fromRank(rank)) } } + +data class CreatorRankingScaledTextStyle( + val rankTextSizeSp: Float, + val nameTextSizeSp: Float, + val deltaTextSizeSp: Float +) diff --git a/app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingTextStyleTest.kt b/app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingTextStyleTest.kt index c37e6543..38e2647e 100644 --- a/app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingTextStyleTest.kt +++ b/app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingTextStyleTest.kt @@ -46,4 +46,23 @@ class CreatorRankingTextStyleTest { assertEquals(16, style.deltaTextSizeSp) } } + + @Test + fun `402dp 이상 scale에서는 기존 baseline text size를 유지한다`() { + val style = CreatorRankingTextStyle.fromRank(1).scaledBy(1f) + + assertEquals(96f, style.rankTextSizeSp, 0.0001f) + assertEquals(32f, style.nameTextSizeSp, 0.0001f) + assertEquals(16f, style.deltaTextSizeSp, 0.0001f) + } + + @Test + fun `402dp 미만 scale에서는 baseline text size에 scale을 곱한다`() { + val scale = 360f / 402f + val style = CreatorRankingTextStyle.fromRank(11).scaledBy(scale) + + assertEquals(40f * scale, style.rankTextSizeSp, 0.0001f) + assertEquals(18f * scale, style.nameTextSizeSp, 0.0001f) + assertEquals(16f * scale, style.deltaTextSizeSp, 0.0001f) + } }