fix(content-ranking): 텍스트 크기 기준을 추가한다
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
package kr.co.vividnext.sodalive.v2.widget.contentranking
|
||||
|
||||
data class ContentRankingTextStyle(
|
||||
val rankTextSizeSp: Float,
|
||||
val titleTextSizeSp: Float,
|
||||
val creatorTextSizeSp: Float,
|
||||
val deltaTextSizeSp: Float
|
||||
) {
|
||||
companion object {
|
||||
fun large(scale: Float): ContentRankingTextStyle = baseline(96f, 22f, 12f, scale)
|
||||
|
||||
fun mediumGrid(scale: Float): ContentRankingTextStyle = baseline(54f, 22f, 12f, scale)
|
||||
|
||||
fun smallGrid(scale: Float): ContentRankingTextStyle = baseline(36f, 14f, 12f, scale)
|
||||
|
||||
fun horizontal(scale: Float): ContentRankingTextStyle = baseline(40f, 18f, 14f, scale)
|
||||
|
||||
private fun baseline(
|
||||
rankTextSizeSp: Float,
|
||||
titleTextSizeSp: Float,
|
||||
creatorTextSizeSp: Float,
|
||||
scale: Float
|
||||
) = ContentRankingTextStyle(
|
||||
rankTextSizeSp = rankTextSizeSp * scale,
|
||||
titleTextSizeSp = titleTextSizeSp * scale,
|
||||
creatorTextSizeSp = creatorTextSizeSp * scale,
|
||||
deltaTextSizeSp = 16f * scale
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package kr.co.vividnext.sodalive.v2.widget.contentranking
|
||||
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
|
||||
class ContentRankingResponsiveSizeTest {
|
||||
|
||||
@Test
|
||||
fun `402dp 이상 scale에서는 large baseline text size를 유지한다`() {
|
||||
val size = ContentRankingTextStyle.large(scale = 1f)
|
||||
|
||||
assertEquals(96f, size.rankTextSizeSp, 0.0001f)
|
||||
assertEquals(22f, size.titleTextSizeSp, 0.0001f)
|
||||
assertEquals(12f, size.creatorTextSizeSp, 0.0001f)
|
||||
assertEquals(16f, size.deltaTextSizeSp, 0.0001f)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `402dp 이상 scale에서는 medium grid baseline text size를 유지한다`() {
|
||||
val size = ContentRankingTextStyle.mediumGrid(scale = 1f)
|
||||
|
||||
assertEquals(54f, size.rankTextSizeSp, 0.0001f)
|
||||
assertEquals(22f, size.titleTextSizeSp, 0.0001f)
|
||||
assertEquals(12f, size.creatorTextSizeSp, 0.0001f)
|
||||
assertEquals(16f, size.deltaTextSizeSp, 0.0001f)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `402dp 이상 scale에서는 small grid baseline text size를 유지한다`() {
|
||||
val size = ContentRankingTextStyle.smallGrid(scale = 1f)
|
||||
|
||||
assertEquals(36f, size.rankTextSizeSp, 0.0001f)
|
||||
assertEquals(14f, size.titleTextSizeSp, 0.0001f)
|
||||
assertEquals(12f, size.creatorTextSizeSp, 0.0001f)
|
||||
assertEquals(16f, size.deltaTextSizeSp, 0.0001f)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `402dp 이상 scale에서는 horizontal baseline text size를 유지한다`() {
|
||||
val size = ContentRankingTextStyle.horizontal(scale = 1f)
|
||||
|
||||
assertEquals(40f, size.rankTextSizeSp, 0.0001f)
|
||||
assertEquals(18f, size.titleTextSizeSp, 0.0001f)
|
||||
assertEquals(14f, size.creatorTextSizeSp, 0.0001f)
|
||||
assertEquals(16f, size.deltaTextSizeSp, 0.0001f)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `402dp 미만 scale에서는 baseline text size에 scale을 곱한다`() {
|
||||
val scale = 360f / 402f
|
||||
val large = ContentRankingTextStyle.large(scale)
|
||||
val small = ContentRankingTextStyle.smallGrid(scale)
|
||||
|
||||
assertEquals(96f * scale, large.rankTextSizeSp, 0.0001f)
|
||||
assertEquals(22f * scale, large.titleTextSizeSp, 0.0001f)
|
||||
assertEquals(12f * scale, large.creatorTextSizeSp, 0.0001f)
|
||||
assertEquals(36f * scale, small.rankTextSizeSp, 0.0001f)
|
||||
assertEquals(14f * scale, small.titleTextSizeSp, 0.0001f)
|
||||
assertEquals(12f * scale, small.creatorTextSizeSp, 0.0001f)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user