From ee74519f6f46ed89e9a262e96b88097c97d078b3 Mon Sep 17 00:00:00 2001 From: klaus Date: Thu, 25 Jun 2026 01:54:52 +0900 Subject: [PATCH] =?UTF-8?q?feat(content):=20=EC=A0=84=EC=B2=B4=20=ED=83=AD?= =?UTF-8?q?=20=EC=9A=94=EC=9D=BC=20=EB=A7=A4=ED=95=91=EC=9D=84=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/MainContentAllDayOfWeekMapper.kt | 40 +++++++++++++++++++ .../MainContentAllDayOfWeekMapperTest.kt | 39 ++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/model/MainContentAllDayOfWeekMapper.kt create mode 100644 app/src/test/java/kr/co/vividnext/sodalive/v2/main/content/MainContentAllDayOfWeekMapperTest.kt diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/model/MainContentAllDayOfWeekMapper.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/model/MainContentAllDayOfWeekMapper.kt new file mode 100644 index 00000000..6ac3aba4 --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/model/MainContentAllDayOfWeekMapper.kt @@ -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 = 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 +} diff --git a/app/src/test/java/kr/co/vividnext/sodalive/v2/main/content/MainContentAllDayOfWeekMapperTest.kt b/app/src/test/java/kr/co/vividnext/sodalive/v2/main/content/MainContentAllDayOfWeekMapperTest.kt new file mode 100644 index 00000000..d3af27fd --- /dev/null +++ b/app/src/test/java/kr/co/vividnext/sodalive/v2/main/content/MainContentAllDayOfWeekMapperTest.kt @@ -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) + } + ) + } +}