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) + } }