diff --git a/common/extension/src/main/java/com/idiotfrogs/extension/LocalDateTimeExtension.kt b/common/extension/src/main/java/com/idiotfrogs/extension/LocalDateExtension.kt similarity index 57% rename from common/extension/src/main/java/com/idiotfrogs/extension/LocalDateTimeExtension.kt rename to common/extension/src/main/java/com/idiotfrogs/extension/LocalDateExtension.kt index 831489b0..5a5fef0f 100644 --- a/common/extension/src/main/java/com/idiotfrogs/extension/LocalDateTimeExtension.kt +++ b/common/extension/src/main/java/com/idiotfrogs/extension/LocalDateExtension.kt @@ -2,45 +2,18 @@ package com.idiotfrogs.extension import kotlinx.datetime.DayOfWeek import kotlinx.datetime.LocalDate -import kotlinx.datetime.LocalDateTime import kotlinx.datetime.TimeZone import kotlinx.datetime.number import kotlinx.datetime.todayIn import kotlin.time.Clock import kotlin.time.ExperimentalTime -fun LocalDateTime?.toYearMonthDay(): String = +fun LocalDate?.toYearMonthDay(): String = "${this?.year}. ${this?.month?.number.toString().padStart(2, '0')}. ${this?.day.toString().padStart(2, '0')}" -fun LocalDateTime?.toYearMonthDayWeek(): String = - "${this?.year}. ${this?.month?.number.toString().padStart(2, '0')}. ${this?.day.toString().padStart(2, '0')}. ${this?.dayOfWeek?.toKoreanShort()}" - fun LocalDate?.toYearMonthDayWeek(): String = "${this?.year}. ${this?.month?.number.toString().padStart(2, '0')}. ${this?.day.toString().padStart(2, '0')}. ${this?.dayOfWeek?.toKoreanShort()}" -@OptIn(ExperimentalTime::class) -fun LocalDateTime?.toDday(): String { - val today = Clock.System.todayIn(TimeZone.of("Asia/Seoul")) - val targetDate = this?.date - val diff = targetDate?.toEpochDays()?.minus(today.toEpochDays()) - - return "D-$diff" -} - -@OptIn(ExperimentalTime::class) -fun LocalDateTime?.toOpenRemainingText(): String { - if (this == null) return "묻기 전" - - val today = Clock.System.todayIn(TimeZone.of("Asia/Seoul")) - val diff = date.toEpochDays() - today.toEpochDays() - - return when { - diff > 0 -> "오픈까지 ${diff}일 남음" - diff.toInt() == 0 -> "오픈 당일" - else -> "오픈" - } -} - private fun DayOfWeek.toKoreanShort(): String = when (this) { DayOfWeek.MONDAY -> "(월)" DayOfWeek.TUESDAY -> "(화)" diff --git a/core/designsystem/src/main/java/com/idiotfrogs/designsystem/component/MSCalender.kt b/core/designsystem/src/main/java/com/idiotfrogs/designsystem/component/MSCalender.kt index 0ab98942..b75d5fa7 100644 --- a/core/designsystem/src/main/java/com/idiotfrogs/designsystem/component/MSCalender.kt +++ b/core/designsystem/src/main/java/com/idiotfrogs/designsystem/component/MSCalender.kt @@ -33,13 +33,12 @@ import com.idiotfrogs.designsystem.util.DevicePreview import com.idiotfrogs.designsystem.util.noRippleClickable import com.idiotfrogs.designsystem.util.wavyStroke import com.idiotfrogs.resource.R -import kotlinx.datetime.LocalDateTime +import kotlinx.datetime.LocalDate import kotlinx.datetime.TimeZone import kotlinx.datetime.DateTimeUnit import kotlinx.datetime.plus import kotlinx.datetime.todayIn import kotlinx.datetime.YearMonth -import kotlinx.datetime.atTime import kotlinx.datetime.isoDayNumber import kotlinx.datetime.minusMonth import kotlinx.datetime.number @@ -54,7 +53,7 @@ import kotlin.time.ExperimentalTime @Composable fun MSCalender( showSealDate: Boolean = false, - onDateSelected: (LocalDateTime) -> Unit + onDateSelected: (LocalDate) -> Unit ) { val today = Clock.System.todayIn(TimeZone.of("Asia/Seoul")) val initialSelectedDate = if (showSealDate) { @@ -210,7 +209,7 @@ fun MSCalender( currentYearMonth = selectedMonth } - onDateSelected(date.atTime(0, 0, 0, 0)) + onDateSelected(date) } }, contentAlignment = Alignment.Center diff --git a/core/designsystem/stability/designsystem-debug.stability b/core/designsystem/stability/designsystem-debug.stability index a54a393f..d4323f69 100644 --- a/core/designsystem/stability/designsystem-debug.stability +++ b/core/designsystem/stability/designsystem-debug.stability @@ -61,7 +61,7 @@ public fun com.idiotfrogs.designsystem.component.MSAnnotatedText(text: androidx. - style: STABLE (marked @Stable or @Immutable) @Composable -public fun com.idiotfrogs.designsystem.component.MSCalender(showSealDate: kotlin.Boolean, onDateSelected: kotlin.Function1): kotlin.Unit +public fun com.idiotfrogs.designsystem.component.MSCalender(showSealDate: kotlin.Boolean, onDateSelected: kotlin.Function1): kotlin.Unit skippable: true restartable: true params: diff --git a/core/designsystem/stability/designsystem-release.stability b/core/designsystem/stability/designsystem-release.stability index a54a393f..d4323f69 100644 --- a/core/designsystem/stability/designsystem-release.stability +++ b/core/designsystem/stability/designsystem-release.stability @@ -61,7 +61,7 @@ public fun com.idiotfrogs.designsystem.component.MSAnnotatedText(text: androidx. - style: STABLE (marked @Stable or @Immutable) @Composable -public fun com.idiotfrogs.designsystem.component.MSCalender(showSealDate: kotlin.Boolean, onDateSelected: kotlin.Function1): kotlin.Unit +public fun com.idiotfrogs.designsystem.component.MSCalender(showSealDate: kotlin.Boolean, onDateSelected: kotlin.Function1): kotlin.Unit skippable: true restartable: true params: diff --git a/core/model/src/main/java/com/idiotfrogs/model/timecapsule/MyTimeCapsuleResponse.kt b/core/model/src/main/java/com/idiotfrogs/model/timecapsule/MyTimeCapsuleResponse.kt index 2db5c7ed..ef139ac3 100644 --- a/core/model/src/main/java/com/idiotfrogs/model/timecapsule/MyTimeCapsuleResponse.kt +++ b/core/model/src/main/java/com/idiotfrogs/model/timecapsule/MyTimeCapsuleResponse.kt @@ -1,7 +1,6 @@ package com.idiotfrogs.model.timecapsule import kotlinx.datetime.LocalDate -import kotlinx.datetime.LocalDateTime import kotlinx.serialization.Serializable @Serializable @@ -9,7 +8,7 @@ data class MyTimeCapsuleResponse( val timeCapsuleId: Long, val title: String, val openedAt: LocalDate? = null, - val createdAt: LocalDateTime, + val createdAt: LocalDate, val mainImageUrl: String, val timeCapsuleStatus: TimeCapsuleStatus, val role: TimeCapsuleRole diff --git a/core/model/src/main/java/com/idiotfrogs/model/timecapsule/TimeCapsuleInviteCodeResponse.kt b/core/model/src/main/java/com/idiotfrogs/model/timecapsule/TimeCapsuleInviteCodeResponse.kt index 87963570..a2999ed4 100644 --- a/core/model/src/main/java/com/idiotfrogs/model/timecapsule/TimeCapsuleInviteCodeResponse.kt +++ b/core/model/src/main/java/com/idiotfrogs/model/timecapsule/TimeCapsuleInviteCodeResponse.kt @@ -1,6 +1,5 @@ package com.idiotfrogs.model.timecapsule -import kotlinx.datetime.LocalDateTime import kotlinx.serialization.Serializable @Serializable diff --git a/core/model/src/main/java/com/idiotfrogs/model/timecapsule/TimeCapsuleResponse.kt b/core/model/src/main/java/com/idiotfrogs/model/timecapsule/TimeCapsuleResponse.kt index d294b938..183af780 100644 --- a/core/model/src/main/java/com/idiotfrogs/model/timecapsule/TimeCapsuleResponse.kt +++ b/core/model/src/main/java/com/idiotfrogs/model/timecapsule/TimeCapsuleResponse.kt @@ -1,7 +1,6 @@ package com.idiotfrogs.model.timecapsule import kotlinx.datetime.LocalDate -import kotlinx.datetime.LocalDateTime import kotlinx.serialization.Serializable @Serializable @@ -9,7 +8,7 @@ data class TimeCapsuleResponse( val title: String, val description: String?, val buriedAt: LocalDate?, - val createdAt: LocalDateTime, + val createdAt: LocalDate, val openedAt: LocalDate?, val mainImageUrl: String, val timeCapsuleStatus: TimeCapsuleStatus, diff --git a/feature/detail/src/main/java/com/idiotfrogs/detail/DetailScreen.kt b/feature/detail/src/main/java/com/idiotfrogs/detail/DetailScreen.kt index 6d56ccbc..d717fbd5 100644 --- a/feature/detail/src/main/java/com/idiotfrogs/detail/DetailScreen.kt +++ b/feature/detail/src/main/java/com/idiotfrogs/detail/DetailScreen.kt @@ -72,7 +72,6 @@ import org.orbitmvi.orbit.compose.collectAsState import org.orbitmvi.orbit.compose.collectSideEffect import kotlinx.datetime.DateTimeUnit import kotlinx.datetime.TimeZone -import kotlinx.datetime.atTime import kotlinx.datetime.plus import kotlinx.datetime.todayIn import kotlin.time.Clock @@ -144,7 +143,6 @@ fun DetailScreen( Clock.System .todayIn(TimeZone.of("Asia/Seoul")) .plus(1, DateTimeUnit.DAY) - .atTime(0, 0, 0, 0) } var selectedOpenAt by remember { mutableStateOf(defaultOpenAt) } @@ -167,7 +165,7 @@ fun DetailScreen( confirmText = "묻기", cancelText = "취소", onConfirm = { - onAction(DetailAction.BuryConfirmClicked(selectedOpenAt.date)) + onAction(DetailAction.BuryConfirmClicked(selectedOpenAt)) showBuryDialog = false }, onCancel = { showBuryDialog = false }, diff --git a/feature/profile/src/main/java/com/idiotfrogs/profile/profile/ProfileScreen.kt b/feature/profile/src/main/java/com/idiotfrogs/profile/profile/ProfileScreen.kt index c6c6ac6a..d9f59c9a 100644 --- a/feature/profile/src/main/java/com/idiotfrogs/profile/profile/ProfileScreen.kt +++ b/feature/profile/src/main/java/com/idiotfrogs/profile/profile/ProfileScreen.kt @@ -36,7 +36,6 @@ import com.idiotfrogs.profile.component.ProfileCard import com.idiotfrogs.profile.component.ProfileHeader import com.idiotfrogs.profile.component.ProfileTicketCard import kotlinx.datetime.TimeZone -import kotlinx.datetime.atTime import kotlinx.datetime.todayIn import org.orbitmvi.orbit.compose.collectAsState import org.orbitmvi.orbit.compose.collectSideEffect @@ -158,9 +157,7 @@ private fun ProfileScreenPreview() { MyTimeCapsuleResponse( timeCapsuleId = 0L, title = "제목입니다. 제목입니다.", - createdAt = Clock.System - .todayIn(TimeZone.currentSystemDefault()) - .atTime(0, 0, 0, 0), + createdAt = Clock.System.todayIn(TimeZone.currentSystemDefault()), mainImageUrl = "", role = TimeCapsuleRole.CONTRIBUTOR, timeCapsuleStatus = TimeCapsuleStatus.BURIED