feat(content): 전체 탭 요일 매핑을 추가한다

This commit is contained in:
2026-06-25 01:54:52 +09:00
parent d47e90d340
commit ee74519f6f
2 changed files with 79 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
package kr.co.vividnext.sodalive.v2.main.content.model
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.home.SeriesPublishedDaysOfWeek
import java.util.Calendar
val contentAllDayOfWeekOptions: List<SeriesPublishedDaysOfWeek> = listOf(
SeriesPublishedDaysOfWeek.MON,
SeriesPublishedDaysOfWeek.TUE,
SeriesPublishedDaysOfWeek.WED,
SeriesPublishedDaysOfWeek.THU,
SeriesPublishedDaysOfWeek.FRI,
SeriesPublishedDaysOfWeek.SAT,
SeriesPublishedDaysOfWeek.SUN,
SeriesPublishedDaysOfWeek.RANDOM
)
fun currentDeviceDayOfWeek(calendar: Calendar = Calendar.getInstance()): SeriesPublishedDaysOfWeek {
return when (calendar.get(Calendar.DAY_OF_WEEK)) {
Calendar.MONDAY -> SeriesPublishedDaysOfWeek.MON
Calendar.TUESDAY -> SeriesPublishedDaysOfWeek.TUE
Calendar.WEDNESDAY -> SeriesPublishedDaysOfWeek.WED
Calendar.THURSDAY -> SeriesPublishedDaysOfWeek.THU
Calendar.FRIDAY -> SeriesPublishedDaysOfWeek.FRI
Calendar.SATURDAY -> SeriesPublishedDaysOfWeek.SAT
Calendar.SUNDAY -> SeriesPublishedDaysOfWeek.SUN
else -> SeriesPublishedDaysOfWeek.RANDOM
}
}
fun SeriesPublishedDaysOfWeek.toContentAllDayLabelResId(): Int = when (this) {
SeriesPublishedDaysOfWeek.MON -> R.string.day_mon_short
SeriesPublishedDaysOfWeek.TUE -> R.string.day_tue_short
SeriesPublishedDaysOfWeek.WED -> R.string.day_wed_short
SeriesPublishedDaysOfWeek.THU -> R.string.day_thu_short
SeriesPublishedDaysOfWeek.FRI -> R.string.day_fri_short
SeriesPublishedDaysOfWeek.SAT -> R.string.day_sat_short
SeriesPublishedDaysOfWeek.SUN -> R.string.day_sun_short
SeriesPublishedDaysOfWeek.RANDOM -> R.string.screen_content_all_day_other
}

View File

@@ -0,0 +1,39 @@
package kr.co.vividnext.sodalive.v2.main.content
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.home.SeriesPublishedDaysOfWeek
import kr.co.vividnext.sodalive.v2.main.content.model.currentDeviceDayOfWeek
import kr.co.vividnext.sodalive.v2.main.content.model.toContentAllDayLabelResId
import org.junit.Assert.assertEquals
import org.junit.Test
import java.util.Calendar
class MainContentAllDayOfWeekMapperTest {
@Test
fun `Calendar 요일은 SeriesPublishedDaysOfWeek로 매핑된다`() {
assertEquals(SeriesPublishedDaysOfWeek.MON, mappedDay(Calendar.MONDAY))
assertEquals(SeriesPublishedDaysOfWeek.TUE, mappedDay(Calendar.TUESDAY))
assertEquals(SeriesPublishedDaysOfWeek.WED, mappedDay(Calendar.WEDNESDAY))
assertEquals(SeriesPublishedDaysOfWeek.THU, mappedDay(Calendar.THURSDAY))
assertEquals(SeriesPublishedDaysOfWeek.FRI, mappedDay(Calendar.FRIDAY))
assertEquals(SeriesPublishedDaysOfWeek.SAT, mappedDay(Calendar.SATURDAY))
assertEquals(SeriesPublishedDaysOfWeek.SUN, mappedDay(Calendar.SUNDAY))
}
@Test
fun `RANDOM 요일 라벨은 전체 탭 기타 문자열을 사용한다`() {
assertEquals(
R.string.screen_content_all_day_other,
SeriesPublishedDaysOfWeek.RANDOM.toContentAllDayLabelResId()
)
}
private fun mappedDay(dayOfWeek: Int): SeriesPublishedDaysOfWeek {
return currentDeviceDayOfWeek(
Calendar.getInstance().apply {
set(Calendar.DAY_OF_WEEK, dayOfWeek)
}
)
}
}