From bdbf213d77e255c3993b5614149806e0287317af Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Mon, 14 Jul 2025 21:07:56 +0900 Subject: [PATCH 01/41] =?UTF-8?q?[UI/#226]=20OrbitPicker=20=EC=82=AC?= =?UTF-8?q?=EC=9D=B4=EC=A6=88=20=EC=B6=95=EC=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yapp/ui/component/timepicker/OrbitPicker.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPicker.kt b/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPicker.kt index ee48f71d..ef23820f 100644 --- a/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPicker.kt +++ b/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPicker.kt @@ -71,7 +71,7 @@ fun OrbitPicker( .fillMaxWidth() .align(Alignment.Center) .padding(horizontal = 20.dp) - .height(50.dp) + .height(45.dp) .background(OrbitTheme.colors.gray_700, shape = RoundedCornerShape(12.dp)), ) @@ -86,7 +86,7 @@ fun OrbitPicker( items = amPmItems, visibleItemsCount = 3, itemSpacing = itemSpacing, - textStyle = OrbitTheme.typography.title2Medium, + textStyle = OrbitTheme.typography.heading1SemiBold, modifier = Modifier.weight(1f), textModifier = Modifier.padding(8.dp), infiniteScroll = false, @@ -105,7 +105,7 @@ fun OrbitPicker( items = hourItems, visibleItemsCount = 5, itemSpacing = itemSpacing, - textStyle = OrbitTheme.typography.title2Medium, + textStyle = OrbitTheme.typography.heading1SemiBold, modifier = Modifier.weight(1f), textModifier = Modifier.padding(8.dp), infiniteScroll = true, @@ -131,7 +131,7 @@ fun OrbitPicker( items = minuteItems, visibleItemsCount = 5, itemSpacing = itemSpacing, - textStyle = OrbitTheme.typography.title2Medium, + textStyle = OrbitTheme.typography.heading1SemiBold, modifier = Modifier.weight(1f), textModifier = Modifier.padding(8.dp), infiniteScroll = true, From 3705c85e3e546f8d5ffb60dc6e119a5adc3faab8 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Mon, 14 Jul 2025 21:08:26 +0900 Subject: [PATCH 02/41] =?UTF-8?q?[UI/#226]=20=EB=AF=B8=EC=85=98=20?= =?UTF-8?q?=EC=84=A0=ED=83=9D=20=EC=84=B9=EC=85=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alarm/addedit/AlarmAddEditContract.kt | 7 + .../yapp/alarm/addedit/AlarmAddEditScreen.kt | 196 +++++++++++------- feature/home/src/main/res/values/strings.xml | 5 + 3 files changed, 131 insertions(+), 77 deletions(-) diff --git a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditContract.kt b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditContract.kt index de6da472..047085c5 100644 --- a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditContract.kt +++ b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditContract.kt @@ -5,6 +5,7 @@ import androidx.compose.ui.unit.dp import com.yapp.domain.model.Alarm import com.yapp.domain.model.AlarmDay import com.yapp.domain.model.AlarmSound +import com.yapp.domain.model.MissionType import com.yapp.domain.model.toRepeatDays import com.yapp.ui.base.UiState @@ -16,6 +17,7 @@ sealed class AlarmAddEditContract { val timeState: AlarmTimeState = AlarmTimeState(), val daySelectionState: AlarmDaySelectionState = AlarmDaySelectionState(), val holidayState: AlarmHolidayState = AlarmHolidayState(), + val missionState: AlarmMissionState = AlarmMissionState(), val snoozeState: AlarmSnoozeState = AlarmSnoozeState(), val soundState: AlarmSoundState = AlarmSoundState(), val bottomSheetState: BottomSheetType? = null, @@ -45,6 +47,11 @@ sealed class AlarmAddEditContract { val isDisableHolidayChecked: Boolean = false, ) + data class AlarmMissionState( + val isMissionEnabled: Boolean = false, + val missionType: MissionType = MissionType.TAP, + ) + data class AlarmSnoozeState( val isSnoozeEnabled: Boolean = true, val snoozeIntervalIndex: Int = 2, diff --git a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditScreen.kt b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditScreen.kt index ebcaec50..83d06a22 100644 --- a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditScreen.kt +++ b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditScreen.kt @@ -57,6 +57,7 @@ import com.yapp.common.navigation.OrbitNavigator import com.yapp.designsystem.theme.OrbitTheme import com.yapp.domain.model.AlarmDay import com.yapp.domain.model.AlarmSound +import com.yapp.domain.model.MissionType import com.yapp.home.ADD_ALARM_RESULT_KEY import com.yapp.home.DELETE_ALARM_RESULT_KEY import com.yapp.home.UPDATE_ALARM_RESULT_KEY @@ -192,6 +193,13 @@ fun AlarmAddEditContent( eventDispatcher(AlarmAddEditContract.Action.SetAlarmTime(amPm, hour, minute)) } } + AlarmAddEditSelectDaysSection( + modifier = Modifier.padding(horizontal = 20.dp), + daysSelectionState = state.daySelectionState, + holidayState = state.holidayState, + processAction = eventDispatcher, + ) + Spacer(modifier = Modifier.height(12.dp)) AlarmAddEditSettingsSection( modifier = Modifier.padding(horizontal = 20.dp), state = state, @@ -409,13 +417,22 @@ private fun AlarmAddEditSettingsSection( shape = RoundedCornerShape(12.dp), ), ) { - AlarmAddEditSelectDaysSection( - state = state.daySelectionState, - processAction = processAction, - ) - AlarmAddEditDisableHolidaySwitch( - state = state.holidayState, - processAction = processAction, + AlarmAddEditSettingItem( + label = stringResource(id = R.string.alarm_add_edit_mission), + description = if (state.missionState.isMissionEnabled) { + when (state.missionState.missionType) { + MissionType.TAP -> { + stringResource(id = R.string.alarm_add_edit_selected_mission_tap) + } + MissionType.SHAKE -> { + stringResource(id = R.string.alarm_add_edit_selected_mission_shake) + } + } + } else { + stringResource(id = R.string.alarm_add_edit_selected_mission_none) + }, + onClick = { + }, ) Spacer( modifier = Modifier @@ -424,7 +441,6 @@ private fun AlarmAddEditSettingsSection( .padding(horizontal = 20.dp) .background(OrbitTheme.colors.gray_700), ) - AlarmAddEditSettingItem( label = stringResource(id = R.string.alarm_add_edit_alarm_snooze), description = if (state.snoozeState.isSnoozeEnabled) { @@ -545,79 +561,96 @@ private fun AlarmAddEditSettingItem( @Composable private fun AlarmAddEditSelectDaysSection( - state: AlarmAddEditContract.AlarmDaySelectionState, + modifier: Modifier = Modifier, + daysSelectionState: AlarmAddEditContract.AlarmDaySelectionState, + holidayState: AlarmAddEditContract.AlarmHolidayState, processAction: (AlarmAddEditContract.Action) -> Unit, ) { val configuration = LocalConfiguration.current val screenWidthDp = configuration.screenWidthDp.dp Column( - modifier = Modifier.padding(horizontal = 20.dp, vertical = 16.dp), + modifier = modifier + .fillMaxWidth() + .background( + color = OrbitTheme.colors.gray_800, + shape = RoundedCornerShape(12.dp), + ) + .clip( + shape = RoundedCornerShape(12.dp), + ), + verticalArrangement = Arrangement.spacedBy(20.dp), ) { - Row( - modifier = Modifier.fillMaxWidth(), - verticalAlignment = Alignment.CenterVertically, + Column( + modifier = Modifier.padding(horizontal = 20.dp, vertical = 16.dp), ) { - Text( - text = stringResource(id = R.string.alarm_add_edit_repeat), - style = OrbitTheme.typography.body1SemiBold, - color = OrbitTheme.colors.white, - ) - - Spacer(modifier = Modifier.weight(1f)) - - AlarmCheckItem( - label = stringResource(id = R.string.alarm_add_edit_weekdays), - isPressed = state.isWeekdaysChecked, - onClick = { - processAction(AlarmAddEditContract.Action.ToggleWeekdaysSelection) - }, - ) - Spacer(modifier = Modifier.width(2.dp)) - AlarmCheckItem( - label = stringResource(id = R.string.alarm_add_edit_weekends), - isPressed = state.isWeekendsChecked, - onClick = { - processAction(AlarmAddEditContract.Action.ToggleWeekendsSelection) - }, - ) - } + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = stringResource(id = R.string.alarm_add_edit_repeat), + style = OrbitTheme.typography.body1SemiBold, + color = OrbitTheme.colors.white, + ) - Spacer(modifier = Modifier.height(12.dp)) + Spacer(modifier = Modifier.weight(1f)) - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween, - ) { - state.days.forEach { day -> - AlarmDayButton( - modifier = Modifier.size( - if (screenWidthDp > 360.dp) 36.dp else 34.dp, - ), - label = stringResource(id = day.getLabelStringRes()), - isPressed = state.selectedDays.contains(day), + AlarmCheckItem( + label = stringResource(id = R.string.alarm_add_edit_weekdays), + isPressed = daysSelectionState.isWeekdaysChecked, + onClick = { + processAction(AlarmAddEditContract.Action.ToggleWeekdaysSelection) + }, + ) + Spacer(modifier = Modifier.width(2.dp)) + AlarmCheckItem( + label = stringResource(id = R.string.alarm_add_edit_weekends), + isPressed = daysSelectionState.isWeekendsChecked, onClick = { - processAction(AlarmAddEditContract.Action.ToggleSpecificDaySelection(day)) + processAction(AlarmAddEditContract.Action.ToggleWeekendsSelection) }, ) } + + Spacer(modifier = Modifier.height(12.dp)) + + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + ) { + daysSelectionState.days.forEach { day -> + AlarmDayButton( + modifier = Modifier.size( + if (screenWidthDp > 360.dp) 36.dp else 34.dp, + ), + label = stringResource(id = day.getLabelStringRes()), + isPressed = daysSelectionState.selectedDays.contains(day), + onClick = { + processAction(AlarmAddEditContract.Action.ToggleSpecificDaySelection(day)) + }, + ) + } + } + + Spacer(modifier = Modifier.height(20.dp)) + + AlarmAddEditDisableHolidaySwitch( + state = holidayState, + processAction = processAction, + ) } } } @Composable private fun AlarmAddEditDisableHolidaySwitch( + modifier: Modifier = Modifier, state: AlarmAddEditContract.AlarmHolidayState, processAction: (AlarmAddEditContract.Action) -> Unit, ) { Row( - modifier = Modifier - .fillMaxWidth() - .padding( - start = 20.dp, - end = 20.dp, - bottom = 16.dp, - ), + modifier = modifier, verticalAlignment = Alignment.CenterVertically, ) { Icon( @@ -681,25 +714,34 @@ fun AlarmAddEditSettingItemPreview() { @Preview @Composable fun AlarmAddEditScreenPreview() { - AlarmAddEditScreen( - stateProvider = { - AlarmAddEditContract.State( - timeState = AlarmAddEditContract.AlarmTimeState( - currentAmPm = "AM", - currentHour = 9, - currentMinute = 30, - ), - daySelectionState = AlarmAddEditContract.AlarmDaySelectionState( - isWeekdaysChecked = true, - isWeekendsChecked = false, - selectedDays = setOf(AlarmDay.MON, AlarmDay.TUE), - days = AlarmDay.entries.toSet(), - ), - holidayState = AlarmAddEditContract.AlarmHolidayState( - isDisableHolidayChecked = false, - ), + OrbitTheme { + Box( + modifier = Modifier.background( + color = OrbitTheme.colors.gray_900, + ), + ) { + AlarmAddEditScreen( + stateProvider = { + AlarmAddEditContract.State( + initialLoading = false, + timeState = AlarmAddEditContract.AlarmTimeState( + currentAmPm = "AM", + currentHour = 9, + currentMinute = 30, + ), + daySelectionState = AlarmAddEditContract.AlarmDaySelectionState( + isWeekdaysChecked = true, + isWeekendsChecked = false, + selectedDays = setOf(AlarmDay.MON, AlarmDay.TUE), + days = AlarmDay.entries.toSet(), + ), + holidayState = AlarmAddEditContract.AlarmHolidayState( + isDisableHolidayChecked = false, + ), + ) + }, + eventDispatcher = { }, ) - }, - eventDispatcher = { }, - ) + } + } } diff --git a/feature/home/src/main/res/values/strings.xml b/feature/home/src/main/res/values/strings.xml index cfe4c73c..1110ff31 100644 --- a/feature/home/src/main/res/values/strings.xml +++ b/feature/home/src/main/res/values/strings.xml @@ -32,6 +32,11 @@ 공휴일 알람 끄기 + 미션 + 흔들기 + 터치하기 + 없음 + %s, %s 안 함 From 0d281bd15d61b3ec64d70a0d1278ce35c7bf3009 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Mon, 14 Jul 2025 21:49:53 +0900 Subject: [PATCH 03/41] =?UTF-8?q?[REFACTOR/#226]=20Type=20=EC=95=88?= =?UTF-8?q?=EC=A0=95=EC=84=B1=EA=B3=BC=20=EC=9E=AC=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EC=84=B1=EC=9D=84=20=EC=9C=84=ED=95=B4=20PickeState=EB=A5=BC?= =?UTF-8?q?=20generic=EC=9C=BC=EB=A1=9C=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/ui/build.gradle.kts | 1 + .../ui/component/timepicker/OrbitPicker.kt | 81 ++++++++---- .../component/timepicker/OrbitPickerItem.kt | 119 +++++++++--------- .../timepicker/OrbitYearMonthPicker.kt | 51 ++++---- .../ui/component/timepicker/PickerState.kt | 29 +++-- gradle/libs.versions.toml | 2 +- 6 files changed, 158 insertions(+), 125 deletions(-) diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts index b4250dc6..e852090f 100644 --- a/core/ui/build.gradle.kts +++ b/core/ui/build.gradle.kts @@ -18,4 +18,5 @@ dependencies { implementation(libs.orbit.viewmodel) implementation(libs.lottie.compose) implementation(libs.play.services.ads) + implementation(libs.kotlinx.datetime) } diff --git a/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPicker.kt b/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPicker.kt index ef23820f..71d1f0b8 100644 --- a/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPicker.kt +++ b/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPicker.kt @@ -14,8 +14,11 @@ import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Surface import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview @@ -23,16 +26,25 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.yapp.designsystem.theme.OrbitTheme import kotlinx.coroutines.launch -import java.util.Locale +import kotlinx.datetime.Clock +import kotlinx.datetime.LocalTime +import kotlinx.datetime.TimeZone +import kotlinx.datetime.toLocalDateTime + +enum class TimePeriod(val displayName: String) { + AM("오전"), + PM("오후"), + ; + + override fun toString(): String = displayName +} @Composable fun OrbitPicker( modifier: Modifier = Modifier, itemSpacing: Dp = 2.dp, - initialAmPm: String = "오전", - initialHour: String = "1", - initialMinute: String = "00", - onValueChange: (String, Int, Int) -> Unit, + initialTime: LocalTime = Clock.System.now().toLocalDateTime(TimeZone.currentSystemDefault()).time, + onValueChange: (LocalTime) -> Unit, ) { Surface( modifier = modifier @@ -46,23 +58,24 @@ fun OrbitPicker( .wrapContentSize() .background(OrbitTheme.colors.gray_900), ) { - val amPmItems = remember { listOf("오후", "오전") } - val hourItems = remember { (1..12).map { it.toString() } } - val minuteItems = remember { (0..59).map { String.format(Locale.ROOT, "%02d", it) } } + val amPmItems = remember { TimePeriod.entries.toList().map { it.displayName } } + val hourItems = remember { (1..12).toList() } + val minuteItems = remember { (0..59).toList() } val amPmPickerState = rememberPickerState( - selectedItem = amPmItems.indexOf(initialAmPm).toString(), - startIndex = amPmItems.indexOf(initialAmPm), + initialIndex = if (initialTime.hour < 12) 0 else 1, + items = amPmItems, ) val hourPickerState = rememberPickerState( - selectedItem = hourItems.indexOf(initialHour).toString(), - startIndex = hourItems.indexOf(initialHour), + initialIndex = hourItems.indexOf(if (initialTime.hour % 12 == 0) 12 else initialTime.hour % 12), + items = hourItems, ) val minutePickerState = rememberPickerState( - selectedItem = minuteItems.indexOf(initialMinute).toString(), - startIndex = minuteItems.indexOf(initialMinute), + initialIndex = minuteItems.indexOf(initialTime.minute), + items = minuteItems, ) + var previousHour by remember { mutableIntStateOf(initialTime.hour) } val scope = rememberCoroutineScope() Box(modifier = Modifier.fillMaxWidth()) { @@ -116,12 +129,17 @@ fun OrbitPicker( minutePickerState, onValueChange, ) - }, - onScrollCompleted = { scope.launch { + val currentHour = hourPickerState.selectedItem val currentIndex = amPmPickerState.lazyListState.firstVisibleItemIndex % amPmItems.size val nextIndex = (currentIndex + 1) % amPmItems.size - amPmPickerState.lazyListState.animateScrollToItem(nextIndex) + + if ((currentHour == 12 && previousHour == 11) || + (currentHour == 11 && previousHour == 12) + ) { + amPmPickerState.lazyListState.animateScrollToItem(nextIndex) + } + previousHour = currentHour } }, ) @@ -151,21 +169,32 @@ fun OrbitPicker( } private fun onPickerValueChange( - amPmState: PickerState, - hourState: PickerState, - minuteState: PickerState, - onValueChange: (String, Int, Int) -> Unit, + amPmState: PickerState, + hourState: PickerState, + minuteState: PickerState, + onValueChange: (LocalTime) -> Unit, ) { val amPm = amPmState.selectedItem - val hour = hourState.selectedItem.toIntOrNull() ?: 0 - val minute = minuteState.selectedItem.toIntOrNull() ?: 0 - onValueChange(amPm, hour, minute) + val hour = hourState.selectedItem + val minute = minuteState.selectedItem + + val adjustedHour = if (amPm == TimePeriod.AM.displayName && hour == 12) { + 0 + } else if (amPm == TimePeriod.PM.displayName && hour != 12) { + hour + 12 + } else { + hour + } + + val newTime = LocalTime(adjustedHour, minute) + + onValueChange(newTime) } @Preview(showBackground = true) @Composable fun OrbitPickerPreview() { - OrbitPicker { amPm, hour, minute -> - Log.d("OrbitPicker", "selectedAmPm: $amPm, selectedHour: $hour, selectedMinute: $minute") + OrbitPicker() { newTime -> + Log.d("OrbitPicker", "selectedTime: $newTime") } } diff --git a/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPickerItem.kt b/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPickerItem.kt index 76ba98d8..729421a2 100644 --- a/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPickerItem.kt +++ b/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPickerItem.kt @@ -10,8 +10,11 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.derivedStateOf +import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.runtime.snapshotFlow import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -30,17 +33,17 @@ import kotlinx.coroutines.flow.map import kotlin.math.abs @Composable -fun OrbitPickerItem( +fun OrbitPickerItem( modifier: Modifier = Modifier, - items: List, - state: PickerState = rememberPickerState(), + items: List, + state: PickerState = rememberPickerState(items = items), visibleItemsCount: Int, textModifier: Modifier = Modifier, + itemFormatter: (T) -> String = { it.toString() }, infiniteScroll: Boolean = true, textStyle: TextStyle, itemSpacing: Dp, - onValueChange: (String) -> Unit, - onScrollCompleted: () -> Unit = {}, + onValueChange: (T) -> Unit, ) { val visibleItemsMiddle = visibleItemsCount / 2 val listScrollCount = if (infiniteScroll) Int.MAX_VALUE else items.size + visibleItemsMiddle * 2 @@ -48,31 +51,28 @@ fun OrbitPickerItem( val listState = state.lazyListState val flingBehavior = rememberSnapFlingBehavior(lazyListState = listState) - val itemHeightPixels = remember { mutableIntStateOf(0) } - val itemHeightDp = with(LocalDensity.current) { itemHeightPixels.intValue.toDp() } + var itemHeightPixels by remember { mutableIntStateOf(0) } + val itemHeightDp = with(LocalDensity.current) { itemHeightPixels.toDp() } - LaunchedEffect(key1 = state.startIndex) { - val safeStartIndex = state.startIndex.takeIf { it >= 0 } ?: 0 + LaunchedEffect(state.initialIndex) { + val safeStartIndex = state.initialIndex val listStartIndex = if (infiniteScroll) { - calculateStartIndex(infiniteScroll, items.size, listScrollMiddle, visibleItemsMiddle, safeStartIndex) + getStartIndexForInfiniteScroll(itemHeightPixels, listScrollMiddle, visibleItemsMiddle, safeStartIndex) } else { safeStartIndex } - listState.scrollToItem(listStartIndex, 0) if (!infiniteScroll) { - val selectedItem = items.getOrNull(safeStartIndex) ?: "" - if (selectedItem != state.selectedItem) { - state.selectedItem = selectedItem - onValueChange(selectedItem) + val selectedItem = items.getOrNull(listStartIndex) ?: items.first() + if (listStartIndex != state.selectedIndex.value) { + state.updateSelectedIndex(listStartIndex) } + onValueChange(selectedItem) } } LaunchedEffect(listState) { - var previousAdjustedIndex = -1 - snapshotFlow { listState.layoutInfo } .map { layoutInfo -> val centerOffset = layoutInfo.viewportStartOffset + @@ -82,30 +82,20 @@ fun OrbitPickerItem( abs(itemCenter - centerOffset) }?.index } - .distinctUntilChanged() - .collect { centerIndex -> - if (centerIndex != null) { - val adjustedIndex = if (infiniteScroll) { - centerIndex % items.size - } else { - centerIndex - visibleItemsMiddle - }.coerceIn(0, items.size - 1) - - val newValue = items[adjustedIndex] - + .map { centerIndex -> + centerIndex?.let { index -> if (infiniteScroll) { - val lastIndex = items.size - 1 - if ((previousAdjustedIndex == 0 && adjustedIndex == lastIndex) || - (previousAdjustedIndex == lastIndex && adjustedIndex == 0) - ) { - onScrollCompleted() - } - } - if (newValue != state.selectedItem) { - state.selectedItem = newValue - onValueChange(newValue) + index % items.size + } else { + (index - visibleItemsMiddle).coerceIn(0, items.size - 1) } - previousAdjustedIndex = adjustedIndex + } + } + .distinctUntilChanged() + .collect { adjustedIndex -> + if (adjustedIndex != null && adjustedIndex != state.selectedIndex.value) { + state.updateSelectedIndex(adjustedIndex) + onValueChange(items[adjustedIndex]) } } } @@ -122,8 +112,9 @@ fun OrbitPickerItem( .height(totalItemHeight * visibleItemsCount) .pointerInput(Unit) { detectVerticalDragGestures { change, _ -> change.consume() } }, ) { - items(listScrollCount) { index -> - val layoutInfo = listState.layoutInfo + items(listScrollCount, key = { index -> index }) { index -> + val layoutInfo by remember { derivedStateOf { listState.layoutInfo } } + val viewportCenterOffset = layoutInfo.viewportStartOffset + (layoutInfo.viewportEndOffset - layoutInfo.viewportStartOffset) / 2 @@ -141,15 +132,22 @@ fun OrbitPickerItem( val scaleY = 1f - (0.2f * (distanceFromCenter / maxDistance)).coerceIn(0f, 0.4f) + val item = getItemForIndex( + index = index, + items = items, + infiniteScroll = infiniteScroll, + visibleItemsMiddle = visibleItemsMiddle, + ) + Text( - text = getItemForIndex(index, items, infiniteScroll, visibleItemsMiddle), + text = item?.let { itemFormatter(it) } ?: "", maxLines = 1, style = textStyle, color = OrbitTheme.colors.white.copy(alpha = alpha), modifier = Modifier .padding(vertical = itemSpacing / 2) .graphicsLayer(scaleY = scaleY) - .onSizeChanged { size -> itemHeightPixels.intValue = size.height } + .onSizeChanged { size -> itemHeightPixels = size.height } .then(textModifier), ) } @@ -157,37 +155,31 @@ fun OrbitPickerItem( } } -/** - * 무한 스크롤과 초기 시작 인덱스를 기반으로 리스트의 시작 인덱스를 계산합니다. - */ -private fun calculateStartIndex( - infiniteScroll: Boolean, +private fun getStartIndexForInfiniteScroll( itemSize: Int, listScrollMiddle: Int, visibleItemsMiddle: Int, startIndex: Int, ): Int { - return if (infiniteScroll) { - listScrollMiddle - listScrollMiddle % itemSize - visibleItemsMiddle + startIndex - } else { - startIndex + visibleItemsMiddle + if (itemSize == 0) { + return listScrollMiddle - visibleItemsMiddle + startIndex } + + return listScrollMiddle - listScrollMiddle % itemSize - visibleItemsMiddle + startIndex } -/** - * 주어진 인덱스에 해당하는 항목을 반환합니다. - * 무한 스크롤과 보이는 항목의 개수를 고려합니다. - */ -private fun getItemForIndex( +private fun getItemForIndex( index: Int, - items: List, + items: List, infiniteScroll: Boolean, visibleItemsMiddle: Int, -): String { +): T? { + require(items.isNotEmpty()) { "Items list cannot be empty." } + return if (!infiniteScroll) { - items.getOrNull(index - visibleItemsMiddle) ?: "" + items.getOrNull(index - visibleItemsMiddle) } else { - items.getOrNull(index % items.size) ?: "" + items.getOrNull(index % items.size) } } @@ -197,7 +189,10 @@ fun OrbitPickerItemPreview() { OrbitTheme { OrbitPickerItem( items = (0..100).map { it.toString() }, - state = rememberPickerState(), + state = rememberPickerState( + initialIndex = 50, + items = (0..100).map { it.toString() }, + ), visibleItemsCount = 5, textStyle = TextStyle.Default, itemSpacing = 8.dp, diff --git a/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitYearMonthPicker.kt b/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitYearMonthPicker.kt index 7d90d39b..012623e5 100644 --- a/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitYearMonthPicker.kt +++ b/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitYearMonthPicker.kt @@ -37,23 +37,29 @@ fun OrbitYearMonthPicker( ) { val screenWidth = LocalConfiguration.current.screenWidthDp.dp + val lunarItems = remember { listOf("양력", "음력") } + val yearItems = remember { (1900..2024).map { it.toString() } } + val monthItems = remember { (1..12).map { it.toString() } } + + val startIndexYear = yearItems.indexOf(initialYear).coerceAtLeast(0) + val startIndexMonth = monthItems.indexOf(initialMonth).coerceAtLeast(0) + val lunarState = remember { mutableStateOf(initialLunar) } val yearState = remember { mutableIntStateOf(initialYear.toInt()) } val monthState = remember { mutableIntStateOf(initialMonth.toInt()) } - - val maxDay = getMaxDaysInMonth(yearState.intValue, monthState.intValue) - val dayItems = (1..maxDay).map { it.toString() } - - val startIndexYear = (1900..2024).map { it.toString() }.indexOf(initialYear).takeIf { it >= 0 } ?: 0 - val startIndexMonth = (1..12).map { it.toString() }.indexOf(initialMonth).takeIf { it >= 0 } ?: 0 - val startIndexDay = dayItems.indexOf(initialDay).takeIf { it >= 0 } ?: 0 - val dayState = remember { mutableIntStateOf(initialDay.toInt()) } - val yearPickerState = rememberPickerState(startIndex = startIndexYear) - val monthPickerState = rememberPickerState(startIndex = startIndexMonth) - val dayPickerState = rememberPickerState(startIndex = startIndexDay) + val yearPickerState = rememberPickerState(initialIndex = startIndexYear, items = yearItems) + val monthPickerState = rememberPickerState(initialIndex = startIndexMonth, items = monthItems) + // dayItems는 year/month 변경 시마다 동기화 + val dayItems = remember(yearState.intValue, monthState.intValue) { + (1..getMaxDaysInMonth(yearState.intValue, monthState.intValue)).map { it.toString() } + } + val startIndexDay = dayItems.indexOf(initialDay).coerceAtLeast(0) + val dayPickerState = rememberPickerState(initialIndex = startIndexDay, items = dayItems) + + // 일 수 넘어가는 경우 조정 LaunchedEffect(yearState.intValue, monthState.intValue) { val newMaxDay = getMaxDaysInMonth(yearState.intValue, monthState.intValue) if (dayState.intValue > newMaxDay) { @@ -61,25 +67,18 @@ fun OrbitYearMonthPicker( } } + // 변경 콜백 LaunchedEffect(lunarState.value, yearState.intValue, monthState.intValue, dayState.intValue) { onValueChange(lunarState.value, yearState.intValue, monthState.intValue, dayState.intValue) } - Surface( - modifier = modifier.fillMaxWidth(), - ) { + Surface(modifier = modifier.fillMaxWidth()) { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Bottom, modifier = Modifier.background(OrbitTheme.colors.gray_900), ) { - val lunarItems = listOf("양력", "음력") - val yearItems = (1900..2024).map { it.toString() } - val monthItems = (1..12).map { it.toString() } - - Box( - modifier = Modifier.fillMaxWidth(), - ) { + Box(modifier = Modifier.fillMaxWidth()) { Box( modifier = Modifier .fillMaxWidth() @@ -90,7 +89,9 @@ fun OrbitYearMonthPicker( ) Row( - modifier = Modifier.fillMaxWidth().padding(horizontal = screenWidth * 0.1f), + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = screenWidth * 0.1f), verticalAlignment = Alignment.CenterVertically, ) { OrbitPickerItem( @@ -142,9 +143,6 @@ fun OrbitYearMonthPicker( } } -/** - * 특정 연도와 월에 따른 최대 일 수를 반환. - */ private fun getMaxDaysInMonth(year: Int, month: Int): Int { return when (month) { 1, 3, 5, 7, 8, 10, 12 -> 31 @@ -154,9 +152,6 @@ private fun getMaxDaysInMonth(year: Int, month: Int): Int { } } -/** - * 윤년 계산 - */ private fun isLeapYear(year: Int): Boolean { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) } diff --git a/core/ui/src/main/java/com/yapp/ui/component/timepicker/PickerState.kt b/core/ui/src/main/java/com/yapp/ui/component/timepicker/PickerState.kt index 120e3398..2e8b9793 100644 --- a/core/ui/src/main/java/com/yapp/ui/component/timepicker/PickerState.kt +++ b/core/ui/src/main/java/com/yapp/ui/component/timepicker/PickerState.kt @@ -4,16 +4,29 @@ import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.runtime.Composable import androidx.compose.runtime.remember +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow -class PickerState( +class PickerState( val lazyListState: LazyListState, - var selectedItem: String, - var startIndex: Int, -) + val initialIndex: Int, + private val items: List, +) { + private val _selectedIndex = MutableStateFlow(initialIndex) + val selectedIndex: StateFlow + get() = _selectedIndex + + val selectedItem: T + get() = items.getOrElse(_selectedIndex.value) { items.first() } + + fun updateSelectedIndex(newIndex: Int) { + _selectedIndex.value = newIndex.coerceIn(0, items.size - 1) + } +} @Composable -fun rememberPickerState( +fun rememberPickerState( lazyListState: LazyListState = rememberLazyListState(), - selectedItem: String = "", - startIndex: Int = 0, -): PickerState = remember { PickerState(lazyListState, selectedItem, startIndex) } + initialIndex: Int = 0, + items: List, +): PickerState = remember { PickerState(lazyListState, initialIndex, items) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 855c60e8..1a2d0d69 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -22,7 +22,7 @@ ktlint = "11.5.1" kotlin = "2.0.0" kotlinx-serialization-json = "1.7.0" kotlinx-coroutines = "1.9.0-RC" -kotlinx-datetime = "0.4.0" +kotlinx-datetime = "0.6.2" kotlinx-collections = "0.3.7" ## AndroidX From 1b3a951f792310e33ca88c436ef58b97e23248c3 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Tue, 15 Jul 2025 10:20:28 +0900 Subject: [PATCH 04/41] =?UTF-8?q?[FEAT/#226]=20=EB=AF=B8=EC=85=98=20?= =?UTF-8?q?=EC=A2=85=EB=A5=98=EC=97=90=20=EC=97=86=EC=9D=8C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/yapp/domain/model/MissionType.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/domain/src/main/java/com/yapp/domain/model/MissionType.kt b/domain/src/main/java/com/yapp/domain/model/MissionType.kt index 3146d233..bcfdff3c 100644 --- a/domain/src/main/java/com/yapp/domain/model/MissionType.kt +++ b/domain/src/main/java/com/yapp/domain/model/MissionType.kt @@ -1,22 +1,21 @@ package com.yapp.domain.model enum class MissionType(val value: Int) { - TAP(0), - SHAKE(1), + NONE(0), + TAP(1), + SHAKE(2), ; companion object { fun fromInt(value: Int): MissionType { - return MissionType.entries.find { it.value == value } ?: TAP + return MissionType.entries.find { it.value == value } ?: NONE } fun fromRemoteValue(value: String): MissionType { return when (value) { "tap_mission" -> TAP "shake_mission" -> SHAKE - else -> { - TAP - } + else -> NONE } } } From e6b9872e6d0021555e1097048163f8e7d3b44572 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Tue, 15 Jul 2025 11:05:39 +0900 Subject: [PATCH 05/41] =?UTF-8?q?[REMOVE/#226]=20JUnit4=EB=A5=BC=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=ED=95=98=EB=AF=80=EB=A1=9C=20useJUnitPlatfor?= =?UTF-8?q?m=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build-logic/src/main/java/com/yapp/convention/TestAndroid.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/build-logic/src/main/java/com/yapp/convention/TestAndroid.kt b/build-logic/src/main/java/com/yapp/convention/TestAndroid.kt index 4e6afa62..e4fcee6b 100644 --- a/build-logic/src/main/java/com/yapp/convention/TestAndroid.kt +++ b/build-logic/src/main/java/com/yapp/convention/TestAndroid.kt @@ -22,7 +22,6 @@ internal fun Project.configureComposeUiTest() { @Suppress("UnstableApiUsage") internal fun Project.configureJUnitAndroid() { androidExtension.apply { - testOptions { unitTests.all { it.useJUnitPlatform() } } defaultConfig { testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } val libs = extensions.libs From 747487164d37e272cc4408739ee481e36d54eeac Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Tue, 15 Jul 2025 11:17:44 +0900 Subject: [PATCH 06/41] =?UTF-8?q?[FEAT/#226]=20AlarmEntity=20isAm=20?= =?UTF-8?q?=EC=BB=AC=EB=9F=BC=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com.yapp.database.AlarmDatabase/2.json | 18 +++---- .../java/com/yapp/database/MigrationTest.kt | 6 ++- .../main/java/com/yapp/database/AlarmDao.kt | 8 +-- .../java/com/yapp/database/AlarmEntity.kt | 6 +-- .../com/yapp/database/DatabaseMigrations.kt | 49 ++++++++++++++++++- 5 files changed, 65 insertions(+), 22 deletions(-) diff --git a/core/database/schemas/com.yapp.database.AlarmDatabase/2.json b/core/database/schemas/com.yapp.database.AlarmDatabase/2.json index 6e6e50a1..9d84a14a 100644 --- a/core/database/schemas/com.yapp.database.AlarmDatabase/2.json +++ b/core/database/schemas/com.yapp.database.AlarmDatabase/2.json @@ -2,11 +2,11 @@ "formatVersion": 1, "database": { "version": 2, - "identityHash": "557f9b1e0c2913a691c2aed7587e243c", + "identityHash": "3d2a568f32fed54188f8a57463eddcf1", "entities": [ { "tableName": "alarm_database", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `isAm` INTEGER NOT NULL, `hour` INTEGER NOT NULL, `minute` INTEGER NOT NULL, `second` INTEGER NOT NULL, `repeatDays` INTEGER NOT NULL, `isHolidayAlarmOff` INTEGER NOT NULL, `isSnoozeEnabled` INTEGER NOT NULL, `snoozeInterval` INTEGER NOT NULL, `snoozeCount` INTEGER NOT NULL, `isVibrationEnabled` INTEGER NOT NULL, `isSoundEnabled` INTEGER NOT NULL, `soundUri` TEXT NOT NULL, `soundVolume` INTEGER NOT NULL, `isAlarmActive` INTEGER NOT NULL, `missionType` INTEGER NOT NULL, `missionCount` INTEGER NOT NULL)", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `hour` INTEGER NOT NULL, `minute` INTEGER NOT NULL, `second` INTEGER NOT NULL, `repeatDays` INTEGER NOT NULL, `isHolidayAlarmOff` INTEGER NOT NULL, `isSnoozeEnabled` INTEGER NOT NULL, `snoozeInterval` INTEGER NOT NULL, `snoozeCount` INTEGER NOT NULL, `isVibrationEnabled` INTEGER NOT NULL, `isSoundEnabled` INTEGER NOT NULL, `soundUri` TEXT NOT NULL, `soundVolume` INTEGER NOT NULL, `isAlarmActive` INTEGER NOT NULL, `missionType` INTEGER NOT NULL DEFAULT 1, `missionCount` INTEGER NOT NULL DEFAULT 10)", "fields": [ { "fieldPath": "id", @@ -14,12 +14,6 @@ "affinity": "INTEGER", "notNull": true }, - { - "fieldPath": "isAm", - "columnName": "isAm", - "affinity": "INTEGER", - "notNull": true - }, { "fieldPath": "hour", "columnName": "hour", @@ -102,13 +96,15 @@ "fieldPath": "missionType", "columnName": "missionType", "affinity": "INTEGER", - "notNull": true + "notNull": true, + "defaultValue": "1" }, { "fieldPath": "missionCount", "columnName": "missionCount", "affinity": "INTEGER", - "notNull": true + "notNull": true, + "defaultValue": "10" } ], "primaryKey": { @@ -121,7 +117,7 @@ ], "setupQueries": [ "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", - "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '557f9b1e0c2913a691c2aed7587e243c')" + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '3d2a568f32fed54188f8a57463eddcf1')" ] } } \ No newline at end of file diff --git a/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt b/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt index 8f9a76a1..9f6146c7 100644 --- a/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt +++ b/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt @@ -47,7 +47,7 @@ class MigrationTest { isAlarmActive ) VALUES ( null, -- id (autoGenerate) - 1, -- isAm = true + 0, -- isAm = false 7, -- hour 30, -- minute 0, -- second @@ -73,8 +73,10 @@ class MigrationTest { cursor.use { assertEquals(1, it.count) it.moveToFirst() - assertEquals("TAP", it.getString(it.getColumnIndexOrThrow("missionType"))) + assertEquals(1, it.getInt(it.getColumnIndexOrThrow("missionType"))) assertEquals(10, it.getInt(it.getColumnIndexOrThrow("missionCount"))) + // assertEquals(19, it.getInt(it.getColumnIndexOrThrow("hour"))) } + db.close() } } diff --git a/core/database/src/main/java/com/yapp/database/AlarmDao.kt b/core/database/src/main/java/com/yapp/database/AlarmDao.kt index 6bb80174..cbef1789 100644 --- a/core/database/src/main/java/com/yapp/database/AlarmDao.kt +++ b/core/database/src/main/java/com/yapp/database/AlarmDao.kt @@ -22,14 +22,14 @@ interface AlarmDao { @Query("SELECT * FROM ${AlarmDatabase.DATABASE_NAME} WHERE id = :id") suspend fun getAlarm(id: Long): AlarmEntity? - @Query("SELECT * FROM ${AlarmDatabase.DATABASE_NAME} ORDER BY isAm DESC, hour ASC, minute ASC LIMIT :limit OFFSET :offset") + @Query("SELECT * FROM ${AlarmDatabase.DATABASE_NAME} ORDER BY hour ASC, minute ASC LIMIT :limit OFFSET :offset") fun getPagedAlarms(limit: Int, offset: Int): Flow> - @Query("SELECT * FROM ${AlarmDatabase.DATABASE_NAME} ORDER BY isAm DESC, hour ASC, minute ASC") + @Query("SELECT * FROM ${AlarmDatabase.DATABASE_NAME} ORDER BY hour ASC, minute ASC") fun getAllAlarms(): Flow> - @Query("SELECT * FROM ${AlarmDatabase.DATABASE_NAME} WHERE hour = :hour AND minute = :minute AND isAm = :isAm") - fun getAlarmsByTime(hour: Int, minute: Int, isAm: Boolean): Flow> + @Query("SELECT * FROM ${AlarmDatabase.DATABASE_NAME} WHERE hour = :hour AND minute = :minute") + fun getAlarmsByTime(hour: Int, minute: Int): Flow> @Query("SELECT COUNT(*) FROM ${AlarmDatabase.DATABASE_NAME}") fun getAlarmCount(): Flow diff --git a/core/database/src/main/java/com/yapp/database/AlarmEntity.kt b/core/database/src/main/java/com/yapp/database/AlarmEntity.kt index f8bc636e..2000fff5 100644 --- a/core/database/src/main/java/com/yapp/database/AlarmEntity.kt +++ b/core/database/src/main/java/com/yapp/database/AlarmEntity.kt @@ -1,5 +1,6 @@ package com.yapp.database +import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey import com.yapp.domain.model.Alarm @@ -10,7 +11,6 @@ data class AlarmEntity( @PrimaryKey(autoGenerate = true) val id: Long = 0, - val isAm: Boolean = true, val hour: Int = 6, val minute: Int = 0, val second: Int = 0, @@ -32,13 +32,14 @@ data class AlarmEntity( val isAlarmActive: Boolean = true, + @ColumnInfo(defaultValue = "1") val missionType: MissionType = MissionType.TAP, + @ColumnInfo(defaultValue = "10") val missionCount: Int = 10, ) fun AlarmEntity.toDomain() = Alarm( id = id, - isAm = isAm, hour = hour, minute = minute, second = second, @@ -56,7 +57,6 @@ fun AlarmEntity.toDomain() = Alarm( fun Alarm.toEntity() = AlarmEntity( id = id, - isAm = isAm, hour = hour, minute = minute, second = second, diff --git a/core/database/src/main/java/com/yapp/database/DatabaseMigrations.kt b/core/database/src/main/java/com/yapp/database/DatabaseMigrations.kt index 60209b5d..37473888 100644 --- a/core/database/src/main/java/com/yapp/database/DatabaseMigrations.kt +++ b/core/database/src/main/java/com/yapp/database/DatabaseMigrations.kt @@ -2,13 +2,58 @@ package com.yapp.database import androidx.room.migration.Migration import androidx.sqlite.db.SupportSQLiteDatabase +import com.yapp.database.AlarmDatabase.Companion.DATABASE_NAME internal object DatabaseMigrations { val MIGRATION_1_2 = object : Migration(1, 2) { override fun migrate(database: SupportSQLiteDatabase) { - database.execSQL("ALTER TABLE ${AlarmDatabase.DATABASE_NAME} ADD COLUMN missionType TEXT NOT NULL DEFAULT 'TAP'") - database.execSQL("ALTER TABLE ${AlarmDatabase.DATABASE_NAME} ADD COLUMN missionCount INTEGER NOT NULL DEFAULT 10") + // 1. 새 스키마로 임시 테이블 생성 (isAm 컬럼 제외, missionType, missionCount 추가 및 기본값 변경) + database.execSQL( + """ + CREATE TABLE ${DATABASE_NAME}_new ( + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + hour INTEGER NOT NULL, + minute INTEGER NOT NULL, + second INTEGER NOT NULL, + repeatDays INTEGER NOT NULL, + isHolidayAlarmOff INTEGER NOT NULL, + isSnoozeEnabled INTEGER NOT NULL, + snoozeInterval INTEGER NOT NULL, + snoozeCount INTEGER NOT NULL, + isVibrationEnabled INTEGER NOT NULL, + isSoundEnabled INTEGER NOT NULL, + soundUri TEXT NOT NULL, + soundVolume INTEGER NOT NULL, + isAlarmActive INTEGER NOT NULL, + missionType INTEGER NOT NULL DEFAULT 1, -- 타입 INTEGER, 기본값 1 + missionCount INTEGER NOT NULL DEFAULT 10 -- 타입 INTEGER, 기본값 10 + ) + """.trimIndent(), + ) + + // 2. 기존 테이블에서 새 임시 테이블로 데이터 복사 (isAm 컬럼은 복사하지 않음) + database.execSQL( + """ + INSERT INTO ${DATABASE_NAME}_new ( + id, hour, minute, second, repeatDays, isHolidayAlarmOff, + isSnoozeEnabled, snoozeInterval, snoozeCount, isVibrationEnabled, + isSoundEnabled, soundUri, soundVolume, isAlarmActive + -- missionType, missionCount는 CREATE TABLE에서 정의된 기본값으로 자동 채워짐 + ) + SELECT + id, hour, minute, second, repeatDays, isHolidayAlarmOff, + isSnoozeEnabled, snoozeInterval, snoozeCount, isVibrationEnabled, + isSoundEnabled, soundUri, soundVolume, isAlarmActive + FROM $DATABASE_NAME + """.trimIndent(), + ) + + // 3. 기존 테이블 삭제 + database.execSQL("DROP TABLE $DATABASE_NAME") + + // 4. 임시 테이블의 이름을 기존 테이블 이름으로 변경 + database.execSQL("ALTER TABLE ${DATABASE_NAME}_new RENAME TO $DATABASE_NAME") } } } From 153cca5bf3cb00dfd928ff3d9e2db9e3a9b880e1 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Tue, 15 Jul 2025 13:55:29 +0900 Subject: [PATCH 07/41] =?UTF-8?q?[FEAT/#226]=20OrbitPicker=EA=B0=80=20java?= =?UTF-8?q?.time.LocalTime=EC=9D=84=20=EC=82=AC=EC=9A=A9=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/ui/build.gradle.kts | 1 - .../com/yapp/ui/component/timepicker/OrbitPicker.kt | 10 ++++------ gradle/libs.versions.toml | 2 -- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts index e852090f..b4250dc6 100644 --- a/core/ui/build.gradle.kts +++ b/core/ui/build.gradle.kts @@ -18,5 +18,4 @@ dependencies { implementation(libs.orbit.viewmodel) implementation(libs.lottie.compose) implementation(libs.play.services.ads) - implementation(libs.kotlinx.datetime) } diff --git a/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPicker.kt b/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPicker.kt index 71d1f0b8..6b379cb3 100644 --- a/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPicker.kt +++ b/core/ui/src/main/java/com/yapp/ui/component/timepicker/OrbitPicker.kt @@ -26,10 +26,7 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.yapp.designsystem.theme.OrbitTheme import kotlinx.coroutines.launch -import kotlinx.datetime.Clock -import kotlinx.datetime.LocalTime -import kotlinx.datetime.TimeZone -import kotlinx.datetime.toLocalDateTime +import java.time.LocalTime enum class TimePeriod(val displayName: String) { AM("오전"), @@ -43,7 +40,7 @@ enum class TimePeriod(val displayName: String) { fun OrbitPicker( modifier: Modifier = Modifier, itemSpacing: Dp = 2.dp, - initialTime: LocalTime = Clock.System.now().toLocalDateTime(TimeZone.currentSystemDefault()).time, + initialTime: LocalTime = LocalTime.now(), onValueChange: (LocalTime) -> Unit, ) { Surface( @@ -153,6 +150,7 @@ fun OrbitPicker( modifier = Modifier.weight(1f), textModifier = Modifier.padding(8.dp), infiniteScroll = true, + itemFormatter = { it.toString().padStart(2, '0') }, onValueChange = { onPickerValueChange( amPmPickerState, @@ -186,7 +184,7 @@ private fun onPickerValueChange( hour } - val newTime = LocalTime(adjustedHour, minute) + val newTime = LocalTime.of(adjustedHour, minute) onValueChange(newTime) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1a2d0d69..c10bb87c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -22,7 +22,6 @@ ktlint = "11.5.1" kotlin = "2.0.0" kotlinx-serialization-json = "1.7.0" kotlinx-coroutines = "1.9.0-RC" -kotlinx-datetime = "0.6.2" kotlinx-collections = "0.3.7" ## AndroidX @@ -88,7 +87,6 @@ ksp-gradle-plugin = { group = "com.google.devtools.ksp", name = "com.google.devt ## Kotlin Libraries kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinx-serialization-json" } -kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinx-datetime" } kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinx-coroutines" } kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" } From aa761eccb4f7ee2c662a8b0f7007857d12bdf203 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Tue, 15 Jul 2025 14:00:44 +0900 Subject: [PATCH 08/41] =?UTF-8?q?[FEAT/#226]=20=EC=95=8C=EB=9E=8C=20?= =?UTF-8?q?=EC=8B=9C=EA=B0=84=20=ED=91=9C=ED=98=84=EC=9D=84=20LocalTime?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yapp/alarm/AndroidAlarmScheduler.kt | 8 +- .../com/yapp/alarm/receivers/AlarmReceiver.kt | 3 +- .../local/datasource/AlarmLocalDataSource.kt | 2 +- .../datasource/AlarmLocalDataSourceImpl.kt | 4 +- .../repositoryimpl/AlarmRepositoryImpl.kt | 4 +- .../main/java/com/yapp/domain/model/Alarm.kt | 14 +--- .../yapp/domain/repository/AlarmRepository.kt | 2 +- .../com/yapp/domain/usecase/AlarmUseCase.kt | 2 +- .../alarm/addedit/AlarmAddEditContract.kt | 17 ++--- .../yapp/alarm/addedit/AlarmAddEditScreen.kt | 35 +++------ .../alarm/addedit/AlarmAddEditViewModel.kt | 76 ++++++++----------- .../com/yapp/alarm/component/AlarmListItem.kt | 15 ++-- .../src/main/java/com/yapp/home/HomeScreen.kt | 1 - .../main/java/com/yapp/home/HomeViewModel.kt | 15 +--- .../bottomsheet/AlarmListBottomSheet.kt | 1 - .../OnboardingAlarmTimeSelectionScreen.kt | 13 ++-- .../com/yapp/onboarding/OnboardingContract.kt | 11 +-- .../yapp/onboarding/OnboardingViewModel.kt | 21 ++--- 18 files changed, 90 insertions(+), 154 deletions(-) diff --git a/core/alarm/src/main/java/com/yapp/alarm/AndroidAlarmScheduler.kt b/core/alarm/src/main/java/com/yapp/alarm/AndroidAlarmScheduler.kt index 88320196..e5cc9dcd 100644 --- a/core/alarm/src/main/java/com/yapp/alarm/AndroidAlarmScheduler.kt +++ b/core/alarm/src/main/java/com/yapp/alarm/AndroidAlarmScheduler.kt @@ -108,13 +108,7 @@ class AndroidAlarmScheduler @Inject constructor( private fun getNextAlarmTimeMillis(alarm: Alarm, day: AlarmDay?): Long { val now = LocalDateTime.now().withNano(0) // 밀리초 제거하여 정확한 초 기준 설정 - val alarmHour = when { - alarm.isAm && alarm.hour == 12 -> 0 - !alarm.isAm && alarm.hour != 12 -> alarm.hour + 12 - else -> alarm.hour - } - - var alarmDateTime = now.withHour(alarmHour).withMinute(alarm.minute).withSecond(alarm.second) + var alarmDateTime = now.withHour(alarm.hour).withMinute(alarm.minute).withSecond(alarm.second) if (day != null) { val targetDayOfWeek = day.toDayOfWeek() diff --git a/core/alarm/src/main/java/com/yapp/alarm/receivers/AlarmReceiver.kt b/core/alarm/src/main/java/com/yapp/alarm/receivers/AlarmReceiver.kt index c2eee35c..878cf68e 100644 --- a/core/alarm/src/main/java/com/yapp/alarm/receivers/AlarmReceiver.kt +++ b/core/alarm/src/main/java/com/yapp/alarm/receivers/AlarmReceiver.kt @@ -152,8 +152,7 @@ class AlarmReceiver : BroadcastReceiver() { .plusMinutes(alarm.snoozeInterval.toLong()) val updatedAlarm = alarm.copy( - isAm = snoozeDateTime.hour < 12, - hour = if (snoozeDateTime.hour == 0) 12 else if (snoozeDateTime.hour > 12) snoozeDateTime.hour - 12 else snoozeDateTime.hour, + hour = snoozeDateTime.hour, minute = snoozeDateTime.minute, second = snoozeDateTime.second, repeatDays = 0, diff --git a/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSource.kt b/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSource.kt index 2ff1a748..4c49a716 100644 --- a/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSource.kt +++ b/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSource.kt @@ -9,7 +9,7 @@ interface AlarmLocalDataSource { fun getAllAlarms(): Flow> fun getPagedAlarms(limit: Int, offset: Int): Flow> - fun getAlarmsByTime(hour: Int, minute: Int, isAm: Boolean): Flow> + fun getAlarmsByTime(hour: Int, minute: Int): Flow> fun getAlarmCount(): Flow suspend fun insertAlarm(alarm: AlarmEntity): Long suspend fun updateAlarm(alarm: AlarmEntity): Int diff --git a/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSourceImpl.kt b/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSourceImpl.kt index 6c109877..c156602d 100644 --- a/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSourceImpl.kt +++ b/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSourceImpl.kt @@ -28,8 +28,8 @@ class AlarmLocalDataSourceImpl @Inject constructor( .map { alarmEntities -> alarmEntities.map { it.toDomain() } } } - override fun getAlarmsByTime(hour: Int, minute: Int, isAm: Boolean): Flow> { - return alarmDao.getAlarmsByTime(hour, minute, isAm).map { alarmEntities -> + override fun getAlarmsByTime(hour: Int, minute: Int): Flow> { + return alarmDao.getAlarmsByTime(hour, minute).map { alarmEntities -> alarmEntities.map { it.toDomain() } } } diff --git a/data/src/main/java/com/yapp/data/repositoryimpl/AlarmRepositoryImpl.kt b/data/src/main/java/com/yapp/data/repositoryimpl/AlarmRepositoryImpl.kt index 112938be..396bf626 100644 --- a/data/src/main/java/com/yapp/data/repositoryimpl/AlarmRepositoryImpl.kt +++ b/data/src/main/java/com/yapp/data/repositoryimpl/AlarmRepositoryImpl.kt @@ -50,8 +50,8 @@ class AlarmRepositoryImpl @Inject constructor( override fun getPagedAlarms(limit: Int, offset: Int): Flow> = alarmLocalDataSource.getPagedAlarms(limit, offset) - override fun getAlarmsByTime(hour: Int, minute: Int, isAm: Boolean): Flow> = - alarmLocalDataSource.getAlarmsByTime(hour, minute, isAm) + override fun getAlarmsByTime(hour: Int, minute: Int): Flow> = + alarmLocalDataSource.getAlarmsByTime(hour, minute) override fun getAlarmCount(): Flow = alarmLocalDataSource.getAlarmCount() diff --git a/domain/src/main/java/com/yapp/domain/model/Alarm.kt b/domain/src/main/java/com/yapp/domain/model/Alarm.kt index f04d4148..14079633 100644 --- a/domain/src/main/java/com/yapp/domain/model/Alarm.kt +++ b/domain/src/main/java/com/yapp/domain/model/Alarm.kt @@ -12,8 +12,6 @@ import kotlinx.serialization.json.Json data class Alarm( val id: Long = 0, - val isAm: Boolean = true, - val hour: Int = 6, val minute: Int = 0, val second: Int = 0, @@ -35,6 +33,9 @@ data class Alarm( val soundVolume: Int = 70, val isAlarmActive: Boolean = true, + + val missionType: MissionType = MissionType.TAP, + val missionCount: Int = 10, ) : Parcelable { companion object { @@ -62,14 +63,7 @@ fun Alarm.copyFrom(source: Alarm): Alarm { } fun Alarm.toTimeString(): String { - val displayHour = if (isAm && hour == 12) { - 0 // 오전 12시는 0으로 표시 - } else if (!isAm && hour != 12) { - hour + 12 // 오후 1시~11시에는 12를 더함 - } else { - hour // 오전 1시~11시 및 오후 12시는 그대로 사용 - } - val formattedHour = displayHour.toString().padStart(2, '0') + val formattedHour = hour.toString().padStart(2, '0') val formattedMinute = minute.toString().padStart(2, '0') return "$formattedHour:$formattedMinute" diff --git a/domain/src/main/java/com/yapp/domain/repository/AlarmRepository.kt b/domain/src/main/java/com/yapp/domain/repository/AlarmRepository.kt index 142c1b83..91f5222d 100644 --- a/domain/src/main/java/com/yapp/domain/repository/AlarmRepository.kt +++ b/domain/src/main/java/com/yapp/domain/repository/AlarmRepository.kt @@ -16,7 +16,7 @@ interface AlarmRepository { fun releaseSoundPlayer() fun getAllAlarms(): Flow> fun getPagedAlarms(limit: Int, offset: Int): Flow> - fun getAlarmsByTime(hour: Int, minute: Int, isAm: Boolean): Flow> + fun getAlarmsByTime(hour: Int, minute: Int): Flow> fun getAlarmCount(): Flow suspend fun insertAlarm(alarm: Alarm): Result suspend fun updateAlarm(alarm: Alarm): Result diff --git a/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt b/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt index 2411beeb..f37d45f2 100644 --- a/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt +++ b/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt @@ -18,7 +18,7 @@ class AlarmUseCase @Inject constructor( fun releaseSoundPlayer() = alarmRepository.releaseSoundPlayer() fun getAllAlarms(): Flow> = alarmRepository.getAllAlarms() fun getPagedAlarms(limit: Int, offset: Int): Flow> = alarmRepository.getPagedAlarms(limit, offset) - fun getAlarmsByTime(hour: Int, minute: Int, isAm: Boolean): Flow> = alarmRepository.getAlarmsByTime(hour, minute, isAm) + fun getAlarmsByTime(hour: Int, minute: Int): Flow> = alarmRepository.getAlarmsByTime(hour, minute) fun getAlarmCount(): Flow = alarmRepository.getAlarmCount() suspend fun insertAlarm(alarm: Alarm): Result = alarmRepository.insertAlarm(alarm) suspend fun updateAlarm(alarm: Alarm): Result = alarmRepository.updateAlarm(alarm) diff --git a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditContract.kt b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditContract.kt index 047085c5..4617c685 100644 --- a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditContract.kt +++ b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditContract.kt @@ -8,6 +8,7 @@ import com.yapp.domain.model.AlarmSound import com.yapp.domain.model.MissionType import com.yapp.domain.model.toRepeatDays import com.yapp.ui.base.UiState +import java.time.LocalTime sealed class AlarmAddEditContract { @@ -26,12 +27,8 @@ sealed class AlarmAddEditContract { ) : UiState data class AlarmTimeState( - val initialAmPm: String = "오전", - val initialHour: String = "1", - val initialMinute: String = "00", - val currentAmPm: String = "오전", - val currentHour: Int = 1, - val currentMinute: Int = 0, + val initialTime: LocalTime = LocalTime.of(1, 0), + val currentTime: LocalTime = LocalTime.of(1, 0), val alarmMessage: String = "", ) @@ -48,7 +45,6 @@ sealed class AlarmAddEditContract { ) data class AlarmMissionState( - val isMissionEnabled: Boolean = false, val missionType: MissionType = MissionType.TAP, ) @@ -81,7 +77,7 @@ sealed class AlarmAddEditContract { data object ShowUnsavedChangesDialog : Action() data object HideUnsavedChangesDialog : Action() data object DeleteAlarm : Action() - data class SetAlarmTime(val amPm: String, val hour: Int, val minute: Int) : Action() + data class SetAlarmTime(val newTime: LocalTime) : Action() data object ToggleWeekdaysSelection : Action() data object ToggleWeekendsSelection : Action() data class ToggleSpecificDaySelection(val day: AlarmDay) : Action() @@ -125,9 +121,8 @@ sealed class AlarmAddEditContract { internal fun AlarmAddEditContract.State.toAlarm(id: Long = 0): Alarm { return Alarm( id = id, - isAm = timeState.currentAmPm == "오전", - hour = timeState.currentHour, - minute = timeState.currentMinute, + hour = timeState.currentTime.hour, + minute = timeState.currentTime.minute, repeatDays = daySelectionState.selectedDays.toRepeatDays(), isHolidayAlarmOff = holidayState.isDisableHolidayChecked, isSnoozeEnabled = snoozeState.isSnoozeEnabled, diff --git a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditScreen.kt b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditScreen.kt index 83d06a22..1e9a2c88 100644 --- a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditScreen.kt +++ b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditScreen.kt @@ -71,6 +71,7 @@ import feature.home.R import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import org.orbitmvi.orbit.compose.collectSideEffect +import java.time.LocalTime @Composable fun AlarmAddEditRoute( @@ -186,11 +187,9 @@ fun AlarmAddEditContent( contentAlignment = Alignment.Center, ) { OrbitPicker( - initialAmPm = state.timeState.initialAmPm, - initialHour = state.timeState.initialHour, - initialMinute = state.timeState.initialMinute, - ) { amPm, hour, minute -> - eventDispatcher(AlarmAddEditContract.Action.SetAlarmTime(amPm, hour, minute)) + initialTime = state.timeState.initialTime, + ) { newTime -> + eventDispatcher(AlarmAddEditContract.Action.SetAlarmTime(newTime)) } } AlarmAddEditSelectDaysSection( @@ -419,20 +418,12 @@ private fun AlarmAddEditSettingsSection( ) { AlarmAddEditSettingItem( label = stringResource(id = R.string.alarm_add_edit_mission), - description = if (state.missionState.isMissionEnabled) { - when (state.missionState.missionType) { - MissionType.TAP -> { - stringResource(id = R.string.alarm_add_edit_selected_mission_tap) - } - MissionType.SHAKE -> { - stringResource(id = R.string.alarm_add_edit_selected_mission_shake) - } - } - } else { - stringResource(id = R.string.alarm_add_edit_selected_mission_none) - }, - onClick = { + description = when (state.missionState.missionType) { + MissionType.TAP -> stringResource(id = R.string.alarm_add_edit_selected_mission_tap) + MissionType.SHAKE -> stringResource(id = R.string.alarm_add_edit_selected_mission_shake) + else -> stringResource(id = R.string.alarm_add_edit_selected_mission_none) }, + onClick = { }, ) Spacer( modifier = Modifier @@ -683,9 +674,7 @@ fun AlarmAddEditSettingsSectionPreview() { AlarmAddEditSettingsSection( state = AlarmAddEditContract.State( timeState = AlarmAddEditContract.AlarmTimeState( - currentAmPm = "AM", - currentHour = 9, - currentMinute = 30, + currentTime = LocalTime.of(19, 30), ), daySelectionState = AlarmAddEditContract.AlarmDaySelectionState( isWeekdaysChecked = true, @@ -725,9 +714,7 @@ fun AlarmAddEditScreenPreview() { AlarmAddEditContract.State( initialLoading = false, timeState = AlarmAddEditContract.AlarmTimeState( - currentAmPm = "AM", - currentHour = 9, - currentMinute = 30, + currentTime = LocalTime.of(19, 30), ), daySelectionState = AlarmAddEditContract.AlarmDaySelectionState( isWeekdaysChecked = true, diff --git a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt index 4690da7a..1d4da0b5 100644 --- a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt +++ b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt @@ -27,6 +27,8 @@ import org.orbitmvi.orbit.syntax.simple.intent import org.orbitmvi.orbit.syntax.simple.postSideEffect import org.orbitmvi.orbit.syntax.simple.reduce import org.orbitmvi.orbit.viewmodel.container +import java.time.Duration +import java.time.LocalDateTime import java.time.LocalTime import javax.inject.Inject @@ -68,21 +70,14 @@ class AlarmAddEditViewModel @Inject constructor( alarmUseCase.initializeSoundPlayer(defaultSound.uri) val now = LocalTime.now() - val initialAmPm = if (now.hour < 12) "오전" else "오후" - val initialHour = if (now.hour == 0 || now.hour == 12) 12 else now.hour % 12 - val initialMinute = now.minute reduce { state.copy( initialLoading = false, timeState = state.timeState.copy( - initialAmPm = initialAmPm, - initialHour = "$initialHour", - initialMinute = initialMinute.toString().padStart(2, '0'), - currentAmPm = initialAmPm, - currentHour = initialHour, - currentMinute = initialMinute, - alarmMessage = getAlarmMessage(initialAmPm, initialHour, initialMinute, emptySet()), + initialTime = now, + currentTime = now, + alarmMessage = getAlarmMessage(now, emptySet()), ), soundState = state.soundState.copy(sounds = sounds, soundIndex = defaultSoundIndex), ) @@ -92,8 +87,6 @@ class AlarmAddEditViewModel @Inject constructor( private fun loadExistingAlarm(sounds: List) = intent { alarmUseCase.getAlarm(alarmId).onSuccess { alarm -> val repeatDays = alarm.repeatDays.toAlarmDays() - val isAM = alarm.isAm - val hour = alarm.hour val selectedSoundIndex = sounds.indexOfFirst { it.uri.toString() == alarm.soundUri } val selectedSound = sounds.getOrNull(selectedSoundIndex) ?: sounds.first() @@ -103,13 +96,12 @@ class AlarmAddEditViewModel @Inject constructor( state.copy( initialLoading = false, timeState = state.timeState.copy( - initialAmPm = if (isAM) "오전" else "오후", - initialHour = "$hour", - initialMinute = alarm.minute.toString().padStart(2, '0'), - currentAmPm = if (isAM) "오전" else "오후", - currentHour = hour, - currentMinute = alarm.minute, - alarmMessage = getAlarmMessage(if (isAM) "오전" else "오후", hour, alarm.minute, repeatDays), + initialTime = LocalTime.of(alarm.hour, alarm.minute), + currentTime = LocalTime.of(alarm.hour, alarm.minute), + alarmMessage = getAlarmMessage( + LocalTime.of(alarm.hour, alarm.minute), + repeatDays, + ), ), daySelectionState = setupDaySelectionState(repeatDays, state), holidayState = state.holidayState.copy( @@ -172,7 +164,7 @@ class AlarmAddEditViewModel @Inject constructor( is AlarmAddEditContract.Action.ShowUnsavedChangesDialog -> showUnsavedChangesDialog() is AlarmAddEditContract.Action.HideUnsavedChangesDialog -> hideUnsavedChangesDialog() is AlarmAddEditContract.Action.DeleteAlarm -> deleteAlarm() - is AlarmAddEditContract.Action.SetAlarmTime -> setAlarmTime(action.amPm, action.hour, action.minute) + is AlarmAddEditContract.Action.SetAlarmTime -> setAlarmTime(action.newTime) is AlarmAddEditContract.Action.ToggleWeekdaysSelection -> toggleWeekdaysSelection() is AlarmAddEditContract.Action.ToggleWeekendsSelection -> toggleWeekendsSelection() is AlarmAddEditContract.Action.ToggleSpecificDaySelection -> toggleSpecificDaySelection(action.day) @@ -234,7 +226,7 @@ class AlarmAddEditViewModel @Inject constructor( } private suspend fun checkAndCreateAlarm(newAlarm: Alarm) { - val timeMatchedAlarms = alarmUseCase.getAlarmsByTime(newAlarm.hour, newAlarm.minute, newAlarm.isAm) + val timeMatchedAlarms = alarmUseCase.getAlarmsByTime(newAlarm.hour, newAlarm.minute) .first() when { @@ -287,12 +279,10 @@ class AlarmAddEditViewModel @Inject constructor( } } - private fun setAlarmTime(amPm: String, hour: Int, minute: Int) = intent { + private fun setAlarmTime(newTime: LocalTime) = intent { val newTimeState = state.timeState.copy( - currentAmPm = amPm, - currentHour = hour, - currentMinute = minute, - alarmMessage = getAlarmMessage(amPm, hour, minute, state.daySelectionState.selectedDays), + currentTime = newTime, + alarmMessage = getAlarmMessage(newTime, state.daySelectionState.selectedDays), ) hapticFeedbackManager.performHapticFeedback(HapticType.LIGHT_TICK) @@ -337,7 +327,7 @@ class AlarmAddEditViewModel @Inject constructor( reduce { state.copy( timeState = state.timeState.copy( - alarmMessage = getAlarmMessage(state.timeState.currentAmPm, state.timeState.currentHour, state.timeState.currentMinute, newDayState.selectedDays), + alarmMessage = getAlarmMessage(state.timeState.currentTime, newDayState.selectedDays), ), daySelectionState = newDayState, holidayState = state.holidayState.copy( @@ -363,7 +353,7 @@ class AlarmAddEditViewModel @Inject constructor( reduce { state.copy( timeState = state.timeState.copy( - alarmMessage = getAlarmMessage(state.timeState.currentAmPm, state.timeState.currentHour, state.timeState.currentMinute, newDayState.selectedDays), + alarmMessage = getAlarmMessage(state.timeState.currentTime, newDayState.selectedDays), ), daySelectionState = newDayState, holidayState = state.holidayState.copy( @@ -391,7 +381,7 @@ class AlarmAddEditViewModel @Inject constructor( reduce { state.copy( timeState = state.timeState.copy( - alarmMessage = getAlarmMessage(state.timeState.currentAmPm, state.timeState.currentHour, state.timeState.currentMinute, newDayState.selectedDays), + alarmMessage = getAlarmMessage(state.timeState.currentTime, newDayState.selectedDays), ), daySelectionState = newDayState, holidayState = state.holidayState.copy( @@ -512,12 +502,16 @@ class AlarmAddEditViewModel @Inject constructor( } } - private fun getAlarmMessage(amPm: String, hour: Int, minute: Int, selectedDays: Set): String { - val now = java.time.LocalDateTime.now() - val alarmHour = convertTo24HourFormat(amPm, hour) - val alarmTimeToday = now.toLocalDate().atTime(alarmHour, minute) - val nextAlarmDateTime = calculateNextAlarmDateTime(now, alarmTimeToday, selectedDays) - val duration = java.time.Duration.between(now, nextAlarmDateTime) + private fun getAlarmMessage(currentTime: LocalTime, selectedDays: Set): String { + val now = LocalDateTime.now() + val alarmDateTimeToday = now.toLocalDate().atTime(currentTime.hour, currentTime.minute) + + val nextAlarmDateTime: LocalDateTime = calculateNextAlarmDateTime( + now, + alarmDateTimeToday, + selectedDays, + ) + val duration = Duration.between(now, nextAlarmDateTime) val totalMinutes = duration.toMinutes() val days = totalMinutes / (24 * 60) val hours = (totalMinutes % (24 * 60)) / 60 @@ -531,17 +525,11 @@ class AlarmAddEditViewModel @Inject constructor( } } - private fun convertTo24HourFormat(amPm: String, hour: Int): Int = when { - amPm == "오후" && hour != 12 -> hour + 12 - amPm == "오전" && hour == 12 -> 0 - else -> hour - } - private fun calculateNextAlarmDateTime( - now: java.time.LocalDateTime, - alarmTimeToday: java.time.LocalDateTime, + now: LocalDateTime, + alarmTimeToday: LocalDateTime, selectedDays: Set, - ): java.time.LocalDateTime { + ): LocalDateTime { if (selectedDays.isEmpty()) { return if (alarmTimeToday.isBefore(now)) { alarmTimeToday.plusDays(1) diff --git a/feature/home/src/main/java/com/yapp/alarm/component/AlarmListItem.kt b/feature/home/src/main/java/com/yapp/alarm/component/AlarmListItem.kt index a590bd8e..b97afc44 100644 --- a/feature/home/src/main/java/com/yapp/alarm/component/AlarmListItem.kt +++ b/feature/home/src/main/java/com/yapp/alarm/component/AlarmListItem.kt @@ -76,7 +76,6 @@ internal fun AlarmListItem( onLongPress: (Long, Float, Float) -> Unit, onToggleSelect: (Long) -> Unit, onSwipe: (Long) -> Unit, - isAm: Boolean, hour: Int, minute: Int, isActive: Boolean, @@ -197,7 +196,6 @@ internal fun AlarmListItem( repeatDays = repeatDays, isActive = isActive, isHolidayAlarmOff = isHolidayAlarmOff, - isAm = isAm, hour = hour, minute = minute, ) @@ -220,7 +218,6 @@ private fun AlarmListItemContent( repeatDays: Int, isActive: Boolean, isHolidayAlarmOff: Boolean, - isAm: Boolean, hour: Int, minute: Int, ) { @@ -230,6 +227,13 @@ private fun AlarmListItemContent( OrbitTheme.colors.gray_500 to OrbitTheme.colors.gray_500 } + val isAm = hour < 12 + val displayHour = when { + hour == 0 -> 12 + hour > 12 -> hour - 12 + else -> hour + } + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { Row(verticalAlignment = Alignment.CenterVertically) { Text( @@ -260,7 +264,7 @@ private fun AlarmListItemContent( Spacer(modifier = Modifier.width(6.dp)) Text( - text = "$hour", + text = "$displayHour", style = OrbitTheme.typography.title2Medium, color = if (isActive) OrbitTheme.colors.white else OrbitTheme.colors.gray_500, ) @@ -408,7 +412,6 @@ private fun AlarmListItemPreview() { selectable = true, swipeable = false, selected = selected, - isAm = true, hour = 6, minute = 0, isActive = isActive, @@ -436,7 +439,6 @@ private fun AlarmListItemPreview() { selectable = false, selected = false, swipeable = true, - isAm = true, hour = 6, minute = 0, isActive = isActive, @@ -467,7 +469,6 @@ private fun AlarmListItemMenuPreview() { selectable = false, swipeable = false, selected = false, - isAm = true, hour = 6, minute = 0, isActive = true, diff --git a/feature/home/src/main/java/com/yapp/home/HomeScreen.kt b/feature/home/src/main/java/com/yapp/home/HomeScreen.kt index f65e1061..b9750431 100644 --- a/feature/home/src/main/java/com/yapp/home/HomeScreen.kt +++ b/feature/home/src/main/java/com/yapp/home/HomeScreen.kt @@ -905,7 +905,6 @@ private fun AlarmWithMenu( swipeable = false, selectable = false, selected = selectedAlarmIds.contains(activeItemMenu.id), - isAm = activeItemMenu.isAm, hour = activeItemMenu.hour, minute = activeItemMenu.minute, isActive = activeItemMenu.isAlarmActive, diff --git a/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt b/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt index 04944efc..2a8a4542 100644 --- a/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt +++ b/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt @@ -323,26 +323,21 @@ class HomeViewModel @Inject constructor( val earliestAlarm = alarms .filter { it.isAlarmActive } .minByOrNull { alarm -> - getNextAlarmDateWithTime(alarm.isAm, alarm.hour, alarm.minute, alarm.repeatDays) + getNextAlarmDateWithTime(alarm.hour, alarm.minute, alarm.repeatDays) } val deliveryTime = earliestAlarm?.let { alarm -> - val alarmDateTime = getNextAlarmDateWithTime(alarm.isAm, alarm.hour, alarm.minute, alarm.repeatDays) + val alarmDateTime = getNextAlarmDateWithTime(alarm.hour, alarm.minute, alarm.repeatDays) alarmDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm")) } ?: "NONE" reduce { state.copy(deliveryTime = formatDeliveryTime(deliveryTime)) } } - private fun getNextAlarmDateWithTime(isAm: Boolean, hour: Int, minute: Int, repeatDays: Int): LocalDateTime { + private fun getNextAlarmDateWithTime(hour: Int, minute: Int, repeatDays: Int): LocalDateTime { val now = LocalDateTime.now() - val alarmHour = when { - isAm && hour == 12 -> 0 - !isAm && hour != 12 -> hour + 12 - else -> hour - } - val alarmTime = LocalTime.of(alarmHour, minute) + val alarmTime = LocalTime.of(hour, minute) val todayAlarm = LocalDateTime.of(now.toLocalDate(), alarmTime) // 반복 요일이 설정되지 않은 경우 → 단일 알람 @@ -397,8 +392,6 @@ class HomeViewModel @Inject constructor( val fortuneDate = fortuneRepository.fortuneDateFlow.firstOrNull() val todayDate = LocalDate.now().format(DateTimeFormatter.ISO_DATE) - Log.d("HomeViewModel", "fortuneDate: $fortuneDate, todayDate: $todayDate") - if (fortuneDate != todayDate) { processAction(HomeContract.Action.ShowNoDailyFortuneDialog) } else { diff --git a/feature/home/src/main/java/com/yapp/home/component/bottomsheet/AlarmListBottomSheet.kt b/feature/home/src/main/java/com/yapp/home/component/bottomsheet/AlarmListBottomSheet.kt index 20b00907..ceb9088e 100644 --- a/feature/home/src/main/java/com/yapp/home/component/bottomsheet/AlarmListBottomSheet.kt +++ b/feature/home/src/main/java/com/yapp/home/component/bottomsheet/AlarmListBottomSheet.kt @@ -253,7 +253,6 @@ internal fun AlarmBottomSheetContent( onClick = onClickAlarm, onLongPress = onLongPressAlarm, onToggleSelect = onToggleSelect, - isAm = alarm.isAm, hour = alarm.hour, minute = alarm.minute, isActive = alarm.isAlarmActive, diff --git a/feature/onboarding/src/main/java/com/yapp/onboarding/OnboardingAlarmTimeSelectionScreen.kt b/feature/onboarding/src/main/java/com/yapp/onboarding/OnboardingAlarmTimeSelectionScreen.kt index 963b03ba..8ccd007f 100644 --- a/feature/onboarding/src/main/java/com/yapp/onboarding/OnboardingAlarmTimeSelectionScreen.kt +++ b/feature/onboarding/src/main/java/com/yapp/onboarding/OnboardingAlarmTimeSelectionScreen.kt @@ -20,6 +20,7 @@ import com.yapp.designsystem.theme.OrbitTheme import com.yapp.ui.component.timepicker.OrbitPicker import com.yapp.ui.utils.heightForScreenPercentage import feature.onboarding.R +import java.time.LocalTime @Composable fun OnboardingAlarmTimeSelectionRoute( @@ -57,8 +58,8 @@ fun OnboardingAlarmTimeSelectionRoute( ) }, onBackClick = { viewModel.processAction(OnboardingContract.Action.PreviousStep) }, - setAlarmTime = { isAm, hour, minute -> - viewModel.processAction(OnboardingContract.Action.SetAlarmTime(isAm, hour, minute)) + setAlarmTime = { newTime -> + viewModel.processAction(OnboardingContract.Action.SetAlarmTime(newTime)) }, ) } @@ -69,7 +70,7 @@ fun OnboardingAlarmTimeSelectionScreen( totalSteps: Int, onNextClick: () -> Unit, onBackClick: () -> Unit, - setAlarmTime: (String, Int, Int) -> Unit, + setAlarmTime: (LocalTime) -> Unit, ) { OnboardingScreen( currentStep = currentStep, @@ -100,8 +101,8 @@ fun OnboardingAlarmTimeSelectionScreen( OrbitPicker( modifier = Modifier.padding(top = 90.dp), - ) { amPm, hour, minute -> - setAlarmTime(amPm, hour, minute) + ) { newTime -> + setAlarmTime(newTime) } } } @@ -116,7 +117,7 @@ fun OnboardingAlarmTimeSelectionScreenPreview() { totalSteps = 0, onNextClick = {}, onBackClick = {}, - setAlarmTime = { _, _, _ -> }, + setAlarmTime = { _ -> }, ) } } diff --git a/feature/onboarding/src/main/java/com/yapp/onboarding/OnboardingContract.kt b/feature/onboarding/src/main/java/com/yapp/onboarding/OnboardingContract.kt index 5e8b83c2..86bf3029 100644 --- a/feature/onboarding/src/main/java/com/yapp/onboarding/OnboardingContract.kt +++ b/feature/onboarding/src/main/java/com/yapp/onboarding/OnboardingContract.kt @@ -1,12 +1,13 @@ package com.yapp.onboarding import com.yapp.ui.base.UiState +import java.time.LocalTime sealed class OnboardingContract { data class State( val currentStep: Int = 1, - val timeState: AlarmTimeState = AlarmTimeState(), + val selectedTime: LocalTime = LocalTime.of(1, 0), val textFieldValue: String = "", val showWarning: Boolean = false, val isButtonEnabled: Boolean = false, @@ -43,16 +44,10 @@ sealed class OnboardingContract { } } - data class AlarmTimeState( - val selectedAmPm: String = "오전", - val selectedHour: Int = 1, - val selectedMinute: Int = 0, - ) - sealed class Action { data object NextStep : Action() data object PreviousStep : Action() - data class SetAlarmTime(val isAm: String, val hour: Int, val minute: Int) : Action() + data class SetAlarmTime(val newTime: LocalTime) : Action() data object CreateAlarm : Action() data class UpdateField(val value: String, val fieldType: FieldType) : Action() data object Reset : Action() diff --git a/feature/onboarding/src/main/java/com/yapp/onboarding/OnboardingViewModel.kt b/feature/onboarding/src/main/java/com/yapp/onboarding/OnboardingViewModel.kt index fcfb105b..7281a9a5 100644 --- a/feature/onboarding/src/main/java/com/yapp/onboarding/OnboardingViewModel.kt +++ b/feature/onboarding/src/main/java/com/yapp/onboarding/OnboardingViewModel.kt @@ -21,6 +21,7 @@ import org.orbitmvi.orbit.syntax.simple.intent import org.orbitmvi.orbit.syntax.simple.postSideEffect import org.orbitmvi.orbit.syntax.simple.reduce import org.orbitmvi.orbit.viewmodel.container +import java.time.LocalTime import javax.inject.Inject import kotlin.reflect.KClass @@ -49,7 +50,7 @@ class OnboardingViewModel @Inject constructor( when (action) { is OnboardingContract.Action.NextStep -> moveToNextStep() is OnboardingContract.Action.PreviousStep -> moveToPreviousStep() - is OnboardingContract.Action.SetAlarmTime -> setAlarmTime(action.isAm, action.hour, action.minute) + is OnboardingContract.Action.SetAlarmTime -> setAlarmTime(action.newTime) is OnboardingContract.Action.CreateAlarm -> createAlarm() is OnboardingContract.Action.UpdateField -> updateField(action.value, action.fieldType) is OnboardingContract.Action.UpdateBirthDate -> updateBirthDate(action.lunar, action.year, action.month, action.day) @@ -123,19 +124,10 @@ class OnboardingViewModel @Inject constructor( } } - private fun setAlarmTime(amPm: String, hour: Int, minute: Int) = intent { + private fun setAlarmTime(newTime: LocalTime) = intent { hapticFeedbackManager.performHapticFeedback(HapticType.LIGHT_TICK) - val newTimeState = state.timeState.copy( - selectedAmPm = amPm, - selectedHour = hour, - selectedMinute = minute, - ) - reduce { - state.copy( - timeState = newTimeState, - ) - } + reduce { state.copy(selectedTime = newTime) } } private fun createAlarm() = intent { @@ -144,9 +136,8 @@ class OnboardingViewModel @Inject constructor( val defaultSoundUri = sounds[defaultSoundIndex] val newAlarm = Alarm( - isAm = state.timeState.selectedAmPm == "오전", - hour = state.timeState.selectedHour, - minute = state.timeState.selectedMinute, + hour = state.selectedTime.hour, + minute = state.selectedTime.minute, repeatDays = setOf(AlarmDay.MON, AlarmDay.TUE, AlarmDay.WED, AlarmDay.THU, AlarmDay.FRI).toRepeatDays(), isSnoozeEnabled = true, snoozeInterval = 5, From 1826d1e54f4fe04af3c9a09236d5b8386c443122 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Tue, 15 Jul 2025 14:04:15 +0900 Subject: [PATCH 09/41] =?UTF-8?q?[FEAT/#226]=20=EB=AF=B8=EC=85=98=20?= =?UTF-8?q?=ED=83=80=EC=9E=85=EC=9D=B4=20NONE=EC=9D=BC=20=EB=95=8C=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/yapp/mission/MissionScreen.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/feature/mission/src/main/java/com/yapp/mission/MissionScreen.kt b/feature/mission/src/main/java/com/yapp/mission/MissionScreen.kt index a958e72e..d9059532 100644 --- a/feature/mission/src/main/java/com/yapp/mission/MissionScreen.kt +++ b/feature/mission/src/main/java/com/yapp/mission/MissionScreen.kt @@ -1,5 +1,6 @@ package com.yapp.mission +import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.compose.BackHandler import androidx.compose.animation.Crossfade @@ -100,7 +101,7 @@ fun MissionScreen( } Box(modifier = Modifier.fillMaxSize()) { - if (state.isMissionTypeLoading) { + if (state.isMissionTypeLoading || state.missionType == MissionType.NONE) { MissionLoadingScreen() return } @@ -159,6 +160,10 @@ fun MissionContent( MissionType.TAP -> { MissionClickCard(state, eventDispatcher) } + + MissionType.NONE -> { + Log.e("MissionContent", "Invalid or NONE MissionType: ${state.missionType}") + } } } } @@ -211,6 +216,7 @@ fun MissionProgressBarSection(state: MissionContract.State) { currentProgress = when (state.missionType) { MissionType.SHAKE -> state.shakeCount MissionType.TAP -> state.clickCount + else -> 0 }, totalProgress = 10, modifier = Modifier @@ -318,6 +324,7 @@ fun ExitDialog( AnalyticsEvent.MissionPropertiesKeys.MISSION_TYPE to when (state.missionType) { MissionType.SHAKE -> "shake" MissionType.TAP -> "click" + else -> "" }, ), ), From 5c589620db26d08dc2cd97a1f06e07783031e013 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Tue, 15 Jul 2025 17:25:33 +0900 Subject: [PATCH 10/41] =?UTF-8?q?[REMOVE/#226]=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20DB=20=EC=97=B0?= =?UTF-8?q?=EC=82=B0=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/yapp/database/AlarmDao.kt | 6 ------ .../data/local/datasource/AlarmLocalDataSource.kt | 2 -- .../local/datasource/AlarmLocalDataSourceImpl.kt | 12 ------------ .../yapp/data/repositoryimpl/AlarmRepositoryImpl.kt | 6 ------ .../com/yapp/domain/repository/AlarmRepository.kt | 2 -- .../java/com/yapp/domain/usecase/AlarmUseCase.kt | 2 -- 6 files changed, 30 deletions(-) diff --git a/core/database/src/main/java/com/yapp/database/AlarmDao.kt b/core/database/src/main/java/com/yapp/database/AlarmDao.kt index cbef1789..9d2b4e9f 100644 --- a/core/database/src/main/java/com/yapp/database/AlarmDao.kt +++ b/core/database/src/main/java/com/yapp/database/AlarmDao.kt @@ -22,18 +22,12 @@ interface AlarmDao { @Query("SELECT * FROM ${AlarmDatabase.DATABASE_NAME} WHERE id = :id") suspend fun getAlarm(id: Long): AlarmEntity? - @Query("SELECT * FROM ${AlarmDatabase.DATABASE_NAME} ORDER BY hour ASC, minute ASC LIMIT :limit OFFSET :offset") - fun getPagedAlarms(limit: Int, offset: Int): Flow> - @Query("SELECT * FROM ${AlarmDatabase.DATABASE_NAME} ORDER BY hour ASC, minute ASC") fun getAllAlarms(): Flow> @Query("SELECT * FROM ${AlarmDatabase.DATABASE_NAME} WHERE hour = :hour AND minute = :minute") fun getAlarmsByTime(hour: Int, minute: Int): Flow> - @Query("SELECT COUNT(*) FROM ${AlarmDatabase.DATABASE_NAME}") - fun getAlarmCount(): Flow - @Query("DELETE FROM ${AlarmDatabase.DATABASE_NAME} WHERE id = :id") suspend fun deleteAlarm(id: Long): Int } diff --git a/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSource.kt b/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSource.kt index 4c49a716..eb9fb350 100644 --- a/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSource.kt +++ b/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSource.kt @@ -8,9 +8,7 @@ interface AlarmLocalDataSource { val firstDismissedAlarmIdFlow: Flow fun getAllAlarms(): Flow> - fun getPagedAlarms(limit: Int, offset: Int): Flow> fun getAlarmsByTime(hour: Int, minute: Int): Flow> - fun getAlarmCount(): Flow suspend fun insertAlarm(alarm: AlarmEntity): Long suspend fun updateAlarm(alarm: AlarmEntity): Int suspend fun updateAlarmActive(id: Long, active: Boolean): Int diff --git a/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSourceImpl.kt b/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSourceImpl.kt index c156602d..7c7425b2 100644 --- a/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSourceImpl.kt +++ b/data/src/main/java/com/yapp/data/local/datasource/AlarmLocalDataSourceImpl.kt @@ -20,24 +20,12 @@ class AlarmLocalDataSourceImpl @Inject constructor( .map { alarmEntities -> alarmEntities.map { it.toDomain() } } } - override fun getPagedAlarms( - limit: Int, - offset: Int, - ): Flow> { - return alarmDao.getPagedAlarms(limit, offset) - .map { alarmEntities -> alarmEntities.map { it.toDomain() } } - } - override fun getAlarmsByTime(hour: Int, minute: Int): Flow> { return alarmDao.getAlarmsByTime(hour, minute).map { alarmEntities -> alarmEntities.map { it.toDomain() } } } - override fun getAlarmCount(): Flow { - return alarmDao.getAlarmCount() - } - override suspend fun insertAlarm(alarm: AlarmEntity): Long { return alarmDao.insertAlarm(alarm) } diff --git a/data/src/main/java/com/yapp/data/repositoryimpl/AlarmRepositoryImpl.kt b/data/src/main/java/com/yapp/data/repositoryimpl/AlarmRepositoryImpl.kt index 396bf626..a1c72135 100644 --- a/data/src/main/java/com/yapp/data/repositoryimpl/AlarmRepositoryImpl.kt +++ b/data/src/main/java/com/yapp/data/repositoryimpl/AlarmRepositoryImpl.kt @@ -47,15 +47,9 @@ class AlarmRepositoryImpl @Inject constructor( override fun getAllAlarms(): Flow> = alarmLocalDataSource.getAllAlarms() - override fun getPagedAlarms(limit: Int, offset: Int): Flow> = - alarmLocalDataSource.getPagedAlarms(limit, offset) - override fun getAlarmsByTime(hour: Int, minute: Int): Flow> = alarmLocalDataSource.getAlarmsByTime(hour, minute) - override fun getAlarmCount(): Flow = - alarmLocalDataSource.getAlarmCount() - override suspend fun insertAlarm(alarm: Alarm): Result = runCatching { val alarmId = alarmLocalDataSource.insertAlarm(alarm.toEntity()) alarmLocalDataSource.getAlarm(alarmId) diff --git a/domain/src/main/java/com/yapp/domain/repository/AlarmRepository.kt b/domain/src/main/java/com/yapp/domain/repository/AlarmRepository.kt index 91f5222d..f7dac361 100644 --- a/domain/src/main/java/com/yapp/domain/repository/AlarmRepository.kt +++ b/domain/src/main/java/com/yapp/domain/repository/AlarmRepository.kt @@ -15,9 +15,7 @@ interface AlarmRepository { fun updateAlarmVolume(volume: Int) fun releaseSoundPlayer() fun getAllAlarms(): Flow> - fun getPagedAlarms(limit: Int, offset: Int): Flow> fun getAlarmsByTime(hour: Int, minute: Int): Flow> - fun getAlarmCount(): Flow suspend fun insertAlarm(alarm: Alarm): Result suspend fun updateAlarm(alarm: Alarm): Result suspend fun updateAlarmActive(id: Long, active: Boolean): Result diff --git a/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt b/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt index f37d45f2..200ce70b 100644 --- a/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt +++ b/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt @@ -17,9 +17,7 @@ class AlarmUseCase @Inject constructor( fun updateAlarmVolume(volume: Int) = alarmRepository.updateAlarmVolume(volume) fun releaseSoundPlayer() = alarmRepository.releaseSoundPlayer() fun getAllAlarms(): Flow> = alarmRepository.getAllAlarms() - fun getPagedAlarms(limit: Int, offset: Int): Flow> = alarmRepository.getPagedAlarms(limit, offset) fun getAlarmsByTime(hour: Int, minute: Int): Flow> = alarmRepository.getAlarmsByTime(hour, minute) - fun getAlarmCount(): Flow = alarmRepository.getAlarmCount() suspend fun insertAlarm(alarm: Alarm): Result = alarmRepository.insertAlarm(alarm) suspend fun updateAlarm(alarm: Alarm): Result = alarmRepository.updateAlarm(alarm) suspend fun updateAlarmActive(id: Long, active: Boolean): Result = alarmRepository.updateAlarmActive(id, active) From ec9ab8b7bbed84da766031d52cc554e2bb558a17 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Wed, 16 Jul 2025 15:30:02 +0900 Subject: [PATCH 11/41] =?UTF-8?q?[FEAT/#226]=20AlarmDateTimeFormatter?= =?UTF-8?q?=EC=97=90=20=EC=95=8C=EB=9E=8C=20=EC=8B=9C=EA=B0=84=20=EA=B3=84?= =?UTF-8?q?=EC=82=B0=20=EB=A1=9C=EC=A7=81=20=EC=9C=84=EC=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../formatter/AlarmDateTimeFormatter.kt | 192 ++++++++++++++++++ .../com/yapp/domain/usecase/AlarmUseCase.kt | 31 +++ .../alarm/addedit/AlarmAddEditViewModel.kt | 64 +----- .../main/java/com/yapp/home/HomeViewModel.kt | 88 ++------ feature/home/src/main/res/values/strings.xml | 5 + 5 files changed, 255 insertions(+), 125 deletions(-) create mode 100644 domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt diff --git a/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt b/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt new file mode 100644 index 00000000..b58da778 --- /dev/null +++ b/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt @@ -0,0 +1,192 @@ +package com.yapp.domain.formatter + +import android.util.Log +import com.yapp.domain.model.Alarm // 프로젝트의 Alarm 모델 경로에 맞게 수정 +import com.yapp.domain.model.toAlarmDays // domain 모듈의 확장 함수 경로 +import com.yapp.domain.model.toDayOfWeek // domain 모듈의 확장 함수 경로 +import java.time.Duration +import java.time.LocalDateTime +import java.time.LocalTime +import java.time.format.DateTimeFormatter +import java.time.format.DateTimeParseException +import javax.inject.Inject + +class AlarmDateTimeFormatter @Inject constructor() { + + data class DeliveryTimeFormats( + val noAlarm: String, + val today: String, // 예: "오늘 %s" + val tomorrow: String, // 예: "내일 %s" + val thisYear: String, // 예: "%s" (날짜와 시간만) + val otherYear: String, // 예: "%s" (년도, 날짜, 시간) + val todayTimePattern: String = "a h:mm", + val thisYearDatePattern: String = "M월 d일 a h:mm", + val otherYearDatePattern: String = "yy년 M월 d일 a h:mm", + ) + + data class TimeDifferenceFormats( + val daysHoursMinutesFormat: String, // 예: "%1$d일 %2$d시간 %3$d분 후에 울려요" + val hoursMinutesFormat: String, // 예: "%1$d시간 %2$d분 후에 울려요" + val minutesFormat: String, // 예: "%1$d분 후에 울려요" + val soonFormat: String, // 예: "곧 울려요" + ) + + fun calculateNextOccurrence( + hour: Int, + minute: Int, + repeatDays: Int, + now: LocalDateTime, + ): LocalDateTime { + val alarmTime = LocalTime.of(hour, minute) + val todayAlarmDateTime = LocalDateTime.of(now.toLocalDate(), alarmTime) + + if (repeatDays == 0) { // 단일 알람 + return if (todayAlarmDateTime.isAfter(now)) { + todayAlarmDateTime + } else { + todayAlarmDateTime.plusDays(1) + } + } + + val selectedDaysOfWeek = repeatDays.toAlarmDays() + .map { it.toDayOfWeek() } + .sortedBy { it.value } + + if (selectedDaysOfWeek.isEmpty()) { // 방어 코드: 실제로는 toAlarmDays가 빈 리스트를 반환하지 않도록 설계되어야 함 + return if (todayAlarmDateTime.isAfter(now)) todayAlarmDateTime else todayAlarmDateTime.plusDays(1) + } + + val currentDayOfWeek = now.dayOfWeek + + // 오늘 알람이 가능한지 확인 + if (selectedDaysOfWeek.contains(currentDayOfWeek) && todayAlarmDateTime.isAfter(now)) { + return todayAlarmDateTime + } + + for (dayOffset in 0..7) { + val nextPotentialDate = now.toLocalDate().plusDays(dayOffset.toLong()) + val dayOfWeekPotentialDate = nextPotentialDate.dayOfWeek + val potentialAlarmDateTime = nextPotentialDate.atTime(alarmTime) + + if (selectedDaysOfWeek.contains(dayOfWeekPotentialDate)) { + if (potentialAlarmDateTime.isAfter(now)) { + return potentialAlarmDateTime + } + } + } + + return now.toLocalDate().plusDays(1).atTime(alarmTime) // fallback: 다음 날 같은 시간 + } + + private fun formatDeliveryDateTimeString( + deliveryDateTimeString: String, // "yyyy-MM-dd'T'HH:mm" 포맷 또는 "NONE" + formats: DeliveryTimeFormats, + now: LocalDateTime, + ): String { + return try { + if (deliveryDateTimeString.equals("NONE", ignoreCase = true)) { + return formats.noAlarm + } + + val inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm") + val alarmOccurrenceDateTime = LocalDateTime.parse(deliveryDateTimeString, inputFormatter) // 변수명 inputDateTime -> alarmOccurrenceDateTime + val today = now.toLocalDate() + val tomorrow = today.plusDays(1) + val formattedTimeOrDateTime: String + + when { + // 1. 년도가 현재 년도와 다르면 'otherYear' 포맷 적용 + alarmOccurrenceDateTime.year != now.year -> { + formattedTimeOrDateTime = alarmOccurrenceDateTime.format(DateTimeFormatter.ofPattern(formats.otherYearDatePattern)) + return String.format(formats.otherYear, formattedTimeOrDateTime) + } + // 2. (년도가 같고) 날짜가 오늘이면 'today' 포맷 적용 + alarmOccurrenceDateTime.toLocalDate() == today -> { + formattedTimeOrDateTime = alarmOccurrenceDateTime.format(DateTimeFormatter.ofPattern(formats.todayTimePattern)) + return String.format(formats.today, formattedTimeOrDateTime) + } + // 3. (년도가 같고) 날짜가 내일이면 'tomorrow' 포맷 적용 + alarmOccurrenceDateTime.toLocalDate() == tomorrow -> { + // 내일은 특별히 시간만 표시 (요구사항에 따라 변경 가능) + formattedTimeOrDateTime = alarmOccurrenceDateTime.format(DateTimeFormatter.ofPattern(formats.todayTimePattern)) + return String.format(formats.tomorrow, formattedTimeOrDateTime) + } + // 4. 그 외의 경우 (년도가 같고, 오늘이나 내일이 아닌 다른 날) 'thisYear' 포맷 적용 + else -> { + formattedTimeOrDateTime = alarmOccurrenceDateTime.format(DateTimeFormatter.ofPattern(formats.thisYearDatePattern)) + return String.format(formats.thisYear, formattedTimeOrDateTime) + } + } + } catch (e: DateTimeParseException) { + Log.e("Formatter", "Failed to parse deliveryDateTimeString: $deliveryDateTimeString", e) // 로깅 고려 + formats.noAlarm + } catch (e: Exception) { + Log.e("Formatter", "Unexpected error formatting deliveryDateTimeString: $deliveryDateTimeString", e) + formats.noAlarm + } + } + + /** + * 활성화된 알람 목록에서 가장 먼저 울릴 알람 시간을 찾아, + * 지정된 포맷에 맞춰 사용자에게 보여줄 문자열로 변환합니다. + * + * @param alarms 알람 목록 + * @param formats 포맷팅 규칙을 담은 데이터 클래스 + * @param now 현재 시간 (테스트 용이성을 위해 주입받음) + * @return 포맷팅된 다음 알람 시간 문자열. 활성화된 알람이 없으면 formats.noAlarm 반환. + */ + fun getFormattedEarliestUpcomingAlarmDeliveryTime( + alarms: List, + formats: DeliveryTimeFormats, + now: LocalDateTime = LocalDateTime.now(), // 기본값으로 현재 시간 사용 + ): String { + val earliestAlarmDateTime = alarms + .filter { it.isAlarmActive } + .mapNotNull { alarm -> + try { + calculateNextOccurrence(alarm.hour, alarm.minute, alarm.repeatDays, now) + } catch (e: Exception) { + Log.e("Formatter", "Error calculating next occurrence for alarm: $alarm", e) + null // 예외 발생 시 null로 처리 + } + } + .minOrNull() + + val deliveryDateTimeString = earliestAlarmDateTime?.format( + DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm"), + ) ?: "NONE" + + return formatDeliveryDateTimeString(deliveryDateTimeString, formats, now) + } + + fun formatTimeDifference( + baseTime: LocalDateTime, + futureTime: LocalDateTime, + formats: TimeDifferenceFormats, + ): String { + if (!futureTime.isAfter(baseTime)) { + return formats.soonFormat + } + + val duration = Duration.between(baseTime, futureTime) + + if (duration.toNanos() <= 0) { + return formats.soonFormat + } + + val totalMinutes = duration.toMinutes() + if (totalMinutes < 1) { + return formats.soonFormat + } + + val days = duration.toDays() + val remainingHours = duration.toHours() % 24 + val remainingMinutes = duration.toMinutes() % 60 + + return when { + days > 0 -> String.format(formats.daysHoursMinutesFormat, days, remainingHours, remainingMinutes) + remainingHours > 0 -> String.format(formats.hoursMinutesFormat, remainingHours, remainingMinutes) + else -> String.format(formats.minutesFormat, remainingMinutes) + } + } +} diff --git a/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt b/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt index 200ce70b..a4dc7dfb 100644 --- a/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt +++ b/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt @@ -1,14 +1,20 @@ package com.yapp.domain.usecase import android.net.Uri +import com.yapp.domain.formatter.AlarmDateTimeFormatter import com.yapp.domain.model.Alarm +import com.yapp.domain.model.AlarmDay import com.yapp.domain.model.AlarmSound +import com.yapp.domain.model.toRepeatDays import com.yapp.domain.repository.AlarmRepository import kotlinx.coroutines.flow.Flow +import java.time.LocalDateTime +import java.time.LocalTime import javax.inject.Inject class AlarmUseCase @Inject constructor( private val alarmRepository: AlarmRepository, + private val alarmDateTimeFormatter: AlarmDateTimeFormatter, ) { suspend fun getAlarmSounds(): Result> = alarmRepository.getAlarmSounds() fun initializeSoundPlayer(uri: Uri) = alarmRepository.initializeSoundPlayer(uri) @@ -23,4 +29,29 @@ class AlarmUseCase @Inject constructor( suspend fun updateAlarmActive(id: Long, active: Boolean): Result = alarmRepository.updateAlarmActive(id, active) suspend fun getAlarm(id: Long): Result = alarmRepository.getAlarm(id) suspend fun deleteAlarm(id: Long): Result = alarmRepository.deleteAlarm(id) + + fun getFormattedNextAlarmMessage( + currentTime: LocalTime, + formats: AlarmDateTimeFormatter.TimeDifferenceFormats, + selectedDays: Set, + now: LocalDateTime = LocalDateTime.now(), + ): String { + val repeatDaysInt = selectedDays.toRepeatDays() // Set를 Int로 변환 + val nextOccurrence = alarmDateTimeFormatter.calculateNextOccurrence( + hour = currentTime.hour, + minute = currentTime.minute, + repeatDays = repeatDaysInt, + now = now, + ) + + return alarmDateTimeFormatter.formatTimeDifference(now, nextOccurrence, formats) + } + + fun getFormattedEarliestUpcomingAlarm( + alarms: List, + formats: AlarmDateTimeFormatter.DeliveryTimeFormats, + now: LocalDateTime = LocalDateTime.now(), + ): String { + return alarmDateTimeFormatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, formats, now) + } } diff --git a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt index 1d4da0b5..5f8bdd75 100644 --- a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt +++ b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt @@ -7,13 +7,13 @@ import androidx.lifecycle.ViewModel import com.yapp.analytics.AnalyticsEvent import com.yapp.analytics.AnalyticsHelper import com.yapp.common.util.ResourceProvider +import com.yapp.domain.formatter.AlarmDateTimeFormatter import com.yapp.domain.model.Alarm import com.yapp.domain.model.AlarmDay import com.yapp.domain.model.AlarmSound import com.yapp.domain.model.copyFrom import com.yapp.domain.model.toAlarmDayNames import com.yapp.domain.model.toAlarmDays -import com.yapp.domain.model.toDayOfWeek import com.yapp.domain.scheduler.AlarmScheduler import com.yapp.domain.usecase.AlarmUseCase import com.yapp.media.haptic.HapticFeedbackManager @@ -27,7 +27,6 @@ import org.orbitmvi.orbit.syntax.simple.intent import org.orbitmvi.orbit.syntax.simple.postSideEffect import org.orbitmvi.orbit.syntax.simple.reduce import org.orbitmvi.orbit.viewmodel.container -import java.time.Duration import java.time.LocalDateTime import java.time.LocalTime import javax.inject.Inject @@ -503,57 +502,16 @@ class AlarmAddEditViewModel @Inject constructor( } private fun getAlarmMessage(currentTime: LocalTime, selectedDays: Set): String { - val now = LocalDateTime.now() - val alarmDateTimeToday = now.toLocalDate().atTime(currentTime.hour, currentTime.minute) - - val nextAlarmDateTime: LocalDateTime = calculateNextAlarmDateTime( - now, - alarmDateTimeToday, - selectedDays, + return alarmUseCase.getFormattedNextAlarmMessage( + currentTime = currentTime, + formats = AlarmDateTimeFormatter.TimeDifferenceFormats( + daysHoursMinutesFormat = resourceProvider.getString(R.string.alarm_remaining_time_days_hours), + hoursMinutesFormat = resourceProvider.getString(R.string.alarm_remaining_time_hours_minutes), + minutesFormat = resourceProvider.getString(R.string.alarm_remaining_time_minutes_only), + soonFormat = resourceProvider.getString(R.string.alarm_remaining_time_soon), + ), + selectedDays = selectedDays, + now = LocalDateTime.now(), ) - val duration = Duration.between(now, nextAlarmDateTime) - val totalMinutes = duration.toMinutes() - val days = totalMinutes / (24 * 60) - val hours = (totalMinutes % (24 * 60)) / 60 - val minutes = totalMinutes % 60 - - return when { - days > 0 -> "${days}일 ${hours}시간 후에 울려요" - hours > 0 -> "${hours}시간 ${minutes}분 후에 울려요" - minutes == 0L -> "곧 울려요" - else -> "${minutes}분 후에 울려요" - } - } - - private fun calculateNextAlarmDateTime( - now: LocalDateTime, - alarmTimeToday: LocalDateTime, - selectedDays: Set, - ): LocalDateTime { - if (selectedDays.isEmpty()) { - return if (alarmTimeToday.isBefore(now)) { - alarmTimeToday.plusDays(1) - } else { - alarmTimeToday - } - } - - val currentDayOfWeek = now.dayOfWeek.value - val selectedDaysOfWeek = selectedDays.map { it.toDayOfWeek().value }.sorted() - - if (selectedDaysOfWeek.contains(currentDayOfWeek) && now.toLocalTime().isBefore(alarmTimeToday.toLocalTime())) { - return alarmTimeToday - } - - val nextDay = selectedDaysOfWeek.firstOrNull { it > currentDayOfWeek } - ?: selectedDaysOfWeek.first() - val daysToAdd = if (nextDay > currentDayOfWeek) { - nextDay - currentDayOfWeek - } else { - 7 - (currentDayOfWeek - nextDay) - } - - val nextAlarmDate = now.toLocalDate().plusDays(daysToAdd.toLong()) - return nextAlarmDate.atTime(alarmTimeToday.toLocalTime()) } } diff --git a/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt b/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt index 2a8a4542..6844f5a3 100644 --- a/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt +++ b/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt @@ -3,9 +3,8 @@ package com.yapp.home import android.util.Log import androidx.lifecycle.ViewModel import com.yapp.common.util.ResourceProvider +import com.yapp.domain.formatter.AlarmDateTimeFormatter import com.yapp.domain.model.Alarm -import com.yapp.domain.model.toAlarmDays -import com.yapp.domain.model.toDayOfWeek import com.yapp.domain.repository.FortuneRepository import com.yapp.domain.repository.UserInfoRepository import com.yapp.domain.scheduler.AlarmScheduler @@ -23,8 +22,6 @@ import org.orbitmvi.orbit.syntax.simple.reduce import org.orbitmvi.orbit.syntax.simple.repeatOnSubscription import org.orbitmvi.orbit.viewmodel.container import java.time.LocalDate -import java.time.LocalDateTime -import java.time.LocalTime import java.time.format.DateTimeFormatter import javax.inject.Inject @@ -304,14 +301,14 @@ class HomeViewModel @Inject constructor( private fun loadAllAlarms() = intent { reduce { state.copy(initialLoading = true) } - alarmUseCase.getAllAlarms().collect { + alarmUseCase.getAllAlarms().collect { alarms -> reduce { state.copy( - alarms = it, + alarms = alarms, initialLoading = false, ) } - updateDeliveryTime(it) + updateDeliveryTime(alarms) } } @@ -320,72 +317,19 @@ class HomeViewModel @Inject constructor( } private fun updateDeliveryTime(alarms: List) = intent { - val earliestAlarm = alarms - .filter { it.isAlarmActive } - .minByOrNull { alarm -> - getNextAlarmDateWithTime(alarm.hour, alarm.minute, alarm.repeatDays) - } - - val deliveryTime = earliestAlarm?.let { alarm -> - val alarmDateTime = getNextAlarmDateWithTime(alarm.hour, alarm.minute, alarm.repeatDays) - alarmDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm")) - } ?: "NONE" - - reduce { state.copy(deliveryTime = formatDeliveryTime(deliveryTime)) } - } - - private fun getNextAlarmDateWithTime(hour: Int, minute: Int, repeatDays: Int): LocalDateTime { - val now = LocalDateTime.now() - - val alarmTime = LocalTime.of(hour, minute) - val todayAlarm = LocalDateTime.of(now.toLocalDate(), alarmTime) - - // 반복 요일이 설정되지 않은 경우 → 단일 알람 - if (repeatDays == 0) { - return if (todayAlarm.isAfter(now)) todayAlarm else todayAlarm.plusDays(1) - } + val deliveryTimeFormats = AlarmDateTimeFormatter.DeliveryTimeFormats( + noAlarm = resourceProvider.getString(R.string.home_fortune_no_alarm), + today = resourceProvider.getString(R.string.home_fortune_delivery_today, "%s"), + tomorrow = resourceProvider.getString(R.string.home_fortune_delivery_tomorrow, "%s"), + thisYear = resourceProvider.getString(R.string.home_fortune_delivery_this_year, "%s"), + otherYear = resourceProvider.getString(R.string.home_fortune_delivery_other_year, "%s"), + ) - // 비트마스크 기반 반복 요일 추출 - val selectedDays = repeatDays.toAlarmDays().map { it.toDayOfWeek() }.sortedBy { it.value } - val currentDayOfWeek = now.dayOfWeek - - // 가장 빠른 다음 알람 날짜 계산 - val nextDayOffset = selectedDays - .map { (it.value + 7 - currentDayOfWeek.value) % 7 } - .filter { it > 0 || todayAlarm.isAfter(now) } - .minOrNull() ?: (selectedDays.first().value + 7 - currentDayOfWeek.value) - - return todayAlarm.plusDays(nextDayOffset.toLong()) - } - - private fun formatDeliveryTime(deliveryTime: String): String { - return try { - if (deliveryTime == "NONE") return resourceProvider.getString(R.string.home_fortune_no_alarm) - - val inputDateTime = LocalDateTime.parse(deliveryTime, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm")) - val now = LocalDateTime.now() - val today = now.toLocalDate() - val tomorrow = today.plusDays(1) - - return when { - inputDateTime.toLocalDate() == today -> - resourceProvider.getString(R.string.home_fortune_delivery_today, inputDateTime.format(DateTimeFormatter.ofPattern("a h:mm"))) - inputDateTime.toLocalDate() == tomorrow -> - resourceProvider.getString(R.string.home_fortune_delivery_tomorrow, inputDateTime.format(DateTimeFormatter.ofPattern("a h:mm"))) - inputDateTime.year == now.year -> - resourceProvider.getString( - R.string.home_fortune_delivery_this_year, - inputDateTime.format(DateTimeFormatter.ofPattern("M월 d일 a h:mm")), - ) - else -> - resourceProvider.getString( - R.string.home_fortune_delivery_other_year, - inputDateTime.format(DateTimeFormatter.ofPattern("yy년 M월 d일 a h:mm")), - ) - } - } catch (e: Exception) { - resourceProvider.getString(R.string.home_fortune_no_alarm) - } + val formattedTime = alarmUseCase.getFormattedEarliestUpcomingAlarm( + alarms = alarms, + formats = deliveryTimeFormats, + ) + reduce { state.copy(deliveryTime = formattedTime) } } private fun loadDailyFortune() = intent { diff --git a/feature/home/src/main/res/values/strings.xml b/feature/home/src/main/res/values/strings.xml index 1110ff31..75e74167 100644 --- a/feature/home/src/main/res/values/strings.xml +++ b/feature/home/src/main/res/values/strings.xml @@ -97,4 +97,9 @@ 알람 미루기 남은 시간 + + %1$d일 %2$d시간 후에 울려요 + %1$d시간 %2$d분 후에 울려요 + %d분 후에 울려요 + 곧 울려요 From 790faf6837c0302b03cf4771d6f4a42219764b7c Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Wed, 16 Jul 2025 15:30:34 +0900 Subject: [PATCH 12/41] =?UTF-8?q?[TEST/#226]=20AlarmDateTimeFormatter=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../formatter/AlarmDateTimeFormatterTest.kt | 167 ++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 domain/src/test/kotlin/com/yapp/domain/formatter/AlarmDateTimeFormatterTest.kt diff --git a/domain/src/test/kotlin/com/yapp/domain/formatter/AlarmDateTimeFormatterTest.kt b/domain/src/test/kotlin/com/yapp/domain/formatter/AlarmDateTimeFormatterTest.kt new file mode 100644 index 00000000..307c0bd2 --- /dev/null +++ b/domain/src/test/kotlin/com/yapp/domain/formatter/AlarmDateTimeFormatterTest.kt @@ -0,0 +1,167 @@ +package com.yapp.domain.formatter + +import com.yapp.domain.model.Alarm +import com.yapp.domain.model.AlarmDay +import org.junit.Assert.assertEquals +import org.junit.Before +import org.junit.Test +import java.time.LocalDateTime + +class AlarmDateTimeFormatterTest { + + private lateinit var formatter: AlarmDateTimeFormatter + private val fixedNow: LocalDateTime = LocalDateTime.of(2023, 10, 26, 10, 0, 0) // 목요일 + + @Before + fun `테스트_준비`() { + formatter = AlarmDateTimeFormatter() + } + + private val deliveryFormats = AlarmDateTimeFormatter.DeliveryTimeFormats( + noAlarm = "받을 수 있는 운세가 없어요", + today = "%1\$s 도착", + tomorrow = "내일 %1\$s 도착", + thisYear = "%1\$s 도착", + otherYear = "%1\$s 도착", + todayTimePattern = "a h:mm", // 예시: "오후 2:30" + thisYearDatePattern = "M월 d일 a h:mm", // 예시: "11월 20일 오후 2:30" + otherYearDatePattern = "yy년 M월 d일 a h:mm" // 예시: "24년 1월 15일 오전 9:00" + ) + + @Test + fun `가장빠른_알람시간_포맷팅_활성알람_없으면_수정된_알람없음_반환`() { + val alarms = listOf( + Alarm(id = 1, hour = 14, minute = 0, repeatDays = 0, isAlarmActive = false) + ) + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) + assertEquals("받을 수 있는 운세가 없어요", result) + } + + @Test + fun `가장빠른_알람시간_포맷팅_오늘_미래_활성알람_하나면_수정된_오늘형식_반환`() { + val alarms = listOf( + Alarm(id = 1, hour = 14, minute = 30, repeatDays = 0, isAlarmActive = true) + ) + // deliveryFormats.today = "%1$s 도착" + // deliveryFormats.todayTimePattern = "a h:mm" -> "오후 2:30" + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) + assertEquals("오후 2:30 도착", result) + } + + @Test + fun `가장빠른_알람시간_포맷팅_내일_활성알람_하나면_수정된_내일형식_반환`() { + val alarms = listOf( + Alarm(id = 1, hour = 8, minute = 0, repeatDays = 0, isAlarmActive = true) + ) + // deliveryFormats.tomorrow = "내일 %1$s 도착" + // deliveryFormats.todayTimePattern = "a h:mm" -> "오전 8:00" + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) + assertEquals("내일 오전 8:00 도착", result) + } + + @Test + fun `가장빠른_알람시간_포맷팅_올해_다른날짜면_수정된_올해형식_반환`() { + // fixedNow = 2023년 10월 26일 (목요일) 10:00 + // 목표: 11월 5일 (일요일) 14:30 에 알람이 울리도록. + // 이 날짜는 fixedNow 기준 "오늘"도 "내일"도 아님. + val alarmsForThisYearTest = listOf( + Alarm( + id = 1, + hour = 14, // 알람 시간 + minute = 30, + repeatDays = AlarmDay.SUN.bitValue, // 일요일 반복 + isAlarmActive = true, + ) + ) + + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarmsForThisYearTest, deliveryFormats, fixedNow) + assertEquals("10월 29일 오후 2:30 도착", result) // 예상 결과 수정 + } + + @Test + fun `가장빠른_알람시간_포맷팅_다른해면_수정된_다른해형식_반환`() { + // 현재 시간을 2023년 12월 31일 10:00 으로 설정 + val nowInLate2023 = LocalDateTime.of(2023, 12, 31, 10, 0, 0) + + // 알람이 다음 해인 2024년 1월 1일 9:00 에 울리도록 설정 (단일 알람) + val alarmsForNewYear = listOf( + Alarm( + id = 1, + hour = 9, + minute = 0, + repeatDays = 0, // 단일 알람 + isAlarmActive = true, + ) + ) + + // formatter.getFormattedEarliestUpcomingAlarmDeliveryTime 내부에서 + // calculateNextOccurrence(9, 0, 0, nowInLate2023)가 호출됨. + // nowInLate2023 (2023-12-31 10:00) 기준으로, 알람 시간 09:00은 과거이므로, + // 다음 날인 2024-01-01 09:00이 반환되어야 함. + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarmsForNewYear, deliveryFormats, nowInLate2023) + + // deliveryFormats.otherYear = "%1$s 도착" + // deliveryFormats.otherYearDatePattern = "yy년 M월 d일 a h:mm" + // nowInLate2023의 year (2023)와 결과 날짜의 year (2024)가 다르므로 "otherYear" 포맷 사용 + assertEquals("24년 1월 1일 오전 9:00 도착", result) + } + + @Test + fun `가장빠른_알람시간_포맷팅_여러_활성알람중_가장빠른것_정확히_포맷팅_수정된형식`() { + val alarms = listOf( + Alarm(id = 1, hour = 15, minute = 0, repeatDays = 0, isAlarmActive = true), // 오늘 15:00 + Alarm(id = 2, hour = 12, minute = 0, repeatDays = 0, isAlarmActive = true), // 오늘 12:00 (이게 더 빠름) + Alarm(id = 3, hour = 9, minute = 0, repeatDays = 0, isAlarmActive = false), + Alarm(id = 4, hour = 8, minute = 0, repeatDays = AlarmDay.FRI.bitValue, isAlarmActive = true) // 내일 08:00 + ) + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) + assertEquals("오후 12:00 도착", result) + } + + @Test + fun `날짜시간문자열_포맷팅_잘못된_날짜형식이면_수정된_알람없음_반환`() { + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(emptyList(), deliveryFormats, fixedNow) + assertEquals("받을 수 있는 운세가 없어요", result) + } + + + private val timeFormats = AlarmDateTimeFormatter.TimeDifferenceFormats( + daysHoursMinutesFormat = "%1\$d일 %2\$d시간 %3\$d분 후에 울려요", + hoursMinutesFormat = "%1\$d시간 %2\$d분 후에 울려요", + minutesFormat = "%1\$d분 후에 울려요", + soonFormat = "곧 울려요" + ) + + @Test + fun `시간차이_포맷팅_차이없거나_과거면_곧울려요_반환`() { + assertEquals(timeFormats.soonFormat, formatter.formatTimeDifference(fixedNow, fixedNow, timeFormats)) + assertEquals(timeFormats.soonFormat, formatter.formatTimeDifference(fixedNow, fixedNow.minusMinutes(1), timeFormats)) + } + + @Test + fun `시간차이_포맷팅_1분미만_차이면_곧울려요_반환`() { + val future = fixedNow.plusSeconds(30) + assertEquals(timeFormats.soonFormat, formatter.formatTimeDifference(fixedNow, future, timeFormats)) + } + + @Test + fun `시간차이_포맷팅_25분_차이면_정확한_문자열_반환`() { + val futureTime = fixedNow.plusMinutes(25) + val result = formatter.formatTimeDifference(fixedNow, futureTime, timeFormats) + assertEquals("25분 후에 울려요", result) + } + + @Test + fun `시간차이_포맷팅_70분_차이면_정확한_문자열_반환`() { + val futureTime = fixedNow.plusMinutes(70) // 1시간 10분 + val result = formatter.formatTimeDifference(fixedNow, futureTime, timeFormats) + assertEquals("1시간 10분 후에 울려요", result) + } + + @Test + fun `시간차이_포맷팅_1일_1시간_5분_차이면_정확한_문자열_반환`() { + val futureTime = fixedNow.plusDays(1).plusHours(1).plusMinutes(5) + val result = formatter.formatTimeDifference(fixedNow, futureTime, timeFormats) + assertEquals("1일 1시간 5분 후에 울려요", result) + } +} From 2fcbf3986b40b720aae95df0f8bf447698431170 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Wed, 16 Jul 2025 15:48:10 +0900 Subject: [PATCH 13/41] =?UTF-8?q?[REFACTOR/#226]=20AlarmScheduler=EB=A5=BC?= =?UTF-8?q?=20UseCase=EB=A5=BC=20=ED=86=B5=ED=95=B4=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yapp/domain/usecase/AlarmUseCase.kt | 5 +++++ .../yapp/alarm/addedit/AlarmAddEditViewModel.kt | 8 +++----- .../src/main/java/com/yapp/home/HomeViewModel.kt | 14 ++++++-------- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt b/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt index a4dc7dfb..2583abbc 100644 --- a/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt +++ b/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt @@ -7,6 +7,7 @@ import com.yapp.domain.model.AlarmDay import com.yapp.domain.model.AlarmSound import com.yapp.domain.model.toRepeatDays import com.yapp.domain.repository.AlarmRepository +import com.yapp.domain.scheduler.AlarmScheduler import kotlinx.coroutines.flow.Flow import java.time.LocalDateTime import java.time.LocalTime @@ -15,6 +16,7 @@ import javax.inject.Inject class AlarmUseCase @Inject constructor( private val alarmRepository: AlarmRepository, private val alarmDateTimeFormatter: AlarmDateTimeFormatter, + private val alarmScheduler: AlarmScheduler, ) { suspend fun getAlarmSounds(): Result> = alarmRepository.getAlarmSounds() fun initializeSoundPlayer(uri: Uri) = alarmRepository.initializeSoundPlayer(uri) @@ -30,6 +32,9 @@ class AlarmUseCase @Inject constructor( suspend fun getAlarm(id: Long): Result = alarmRepository.getAlarm(id) suspend fun deleteAlarm(id: Long): Result = alarmRepository.deleteAlarm(id) + fun scheduleAlarm(alarm: Alarm) = alarmScheduler.scheduleAlarm(alarm) + fun unScheduleAlarm(alarm: Alarm) = alarmScheduler.unScheduleAlarm(alarm) + fun getFormattedNextAlarmMessage( currentTime: LocalTime, formats: AlarmDateTimeFormatter.TimeDifferenceFormats, diff --git a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt index 5f8bdd75..7771dfce 100644 --- a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt +++ b/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt @@ -14,7 +14,6 @@ import com.yapp.domain.model.AlarmSound import com.yapp.domain.model.copyFrom import com.yapp.domain.model.toAlarmDayNames import com.yapp.domain.model.toAlarmDays -import com.yapp.domain.scheduler.AlarmScheduler import com.yapp.domain.usecase.AlarmUseCase import com.yapp.media.haptic.HapticFeedbackManager import com.yapp.media.haptic.HapticType @@ -37,7 +36,6 @@ class AlarmAddEditViewModel @Inject constructor( private val alarmUseCase: AlarmUseCase, private val resourceProvider: ResourceProvider, private val hapticFeedbackManager: HapticFeedbackManager, - private val alarmScheduler: AlarmScheduler, savedStateHandle: SavedStateHandle, ) : ViewModel(), ContainerHost { @@ -211,12 +209,12 @@ class AlarmAddEditViewModel @Inject constructor( val updatedAlarm = alarm.copy(id = alarmId) alarmUseCase.getAlarm(alarmId).onSuccess { oldAlarm -> - alarmScheduler.unScheduleAlarm(oldAlarm) + alarmUseCase.unScheduleAlarm(oldAlarm) } alarmUseCase.updateAlarm(updatedAlarm) .onSuccess { - alarmScheduler.scheduleAlarm(updatedAlarm) + alarmUseCase.scheduleAlarm(updatedAlarm) postSideEffect(AlarmAddEditContract.SideEffect.UpdateAlarm(it.id)) } .onFailure { @@ -270,7 +268,7 @@ class AlarmAddEditViewModel @Inject constructor( ), ), ) - alarmScheduler.scheduleAlarm(it) + alarmUseCase.scheduleAlarm(it) postSideEffect(AlarmAddEditContract.SideEffect.SaveAlarm(it.id)) } .onFailure { diff --git a/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt b/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt index 6844f5a3..0fdf6786 100644 --- a/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt +++ b/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt @@ -7,7 +7,6 @@ import com.yapp.domain.formatter.AlarmDateTimeFormatter import com.yapp.domain.model.Alarm import com.yapp.domain.repository.FortuneRepository import com.yapp.domain.repository.UserInfoRepository -import com.yapp.domain.scheduler.AlarmScheduler import com.yapp.domain.usecase.AlarmUseCase import dagger.hilt.android.lifecycle.HiltViewModel import feature.home.R @@ -29,7 +28,6 @@ import javax.inject.Inject class HomeViewModel @Inject constructor( private val alarmUseCase: AlarmUseCase, private val resourceProvider: ResourceProvider, - private val alarmScheduler: AlarmScheduler, private val fortuneRepository: FortuneRepository, private val userInfoRepository: UserInfoRepository, ) : ViewModel(), ContainerHost { @@ -184,9 +182,9 @@ class HomeViewModel @Inject constructor( } if (updatedAlarm.isAlarmActive) { - alarmScheduler.scheduleAlarm(updatedAlarm) + alarmUseCase.scheduleAlarm(updatedAlarm) } else { - alarmScheduler.unScheduleAlarm(updatedAlarm) + alarmUseCase.unScheduleAlarm(updatedAlarm) } }.onFailure { error -> Log.e("HomeViewModel", "Failed to update alarm state", error) @@ -246,9 +244,9 @@ class HomeViewModel @Inject constructor( } if (updatedAlarm.isAlarmActive) { - alarmScheduler.scheduleAlarm(updatedAlarm) + alarmUseCase.scheduleAlarm(updatedAlarm) } else { - alarmScheduler.unScheduleAlarm(updatedAlarm) + alarmUseCase.unScheduleAlarm(updatedAlarm) } }.onFailure { error -> Log.e("HomeViewModel", "Failed to rollback alarm state", error) @@ -267,7 +265,7 @@ class HomeViewModel @Inject constructor( alarmsToDelete.forEach { alarm -> alarmUseCase.deleteAlarm(alarm.id) - alarmScheduler.unScheduleAlarm(alarm) + alarmUseCase.unScheduleAlarm(alarm) } if (state.activeItemMenu != null) { @@ -290,7 +288,7 @@ class HomeViewModel @Inject constructor( private fun restoreDeletedAlarms(alarmsWithIndex: List) = intent { alarmsWithIndex.forEach { alarm -> alarmUseCase.insertAlarm(alarm) - alarmScheduler.scheduleAlarm(alarm) + alarmUseCase.scheduleAlarm(alarm) } } From b258571e37612780992755b0feb662845e794984 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Wed, 16 Jul 2025 20:59:57 +0900 Subject: [PATCH 14/41] =?UTF-8?q?[REFACTOR/#226]=20=EC=95=8C=EB=9E=8C=20?= =?UTF-8?q?=EC=8B=9C=EA=B0=84=20=EA=B3=84=EC=82=B0=20=EB=A1=9C=EC=A7=81?= =?UTF-8?q?=EC=9D=84=20AlarmTimeCalculator=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yapp/alarm/AlarmConstants.kt | 2 - .../com/yapp/alarm/AlarmTimeCalculator.kt | 87 ++++++++++++++ .../com/yapp/alarm/AndroidAlarmScheduler.kt | 110 ++++-------------- .../java/com/yapp/alarm/di/AlarmModule.kt | 12 ++ .../com/yapp/alarm/services/AlarmService.kt | 2 +- 5 files changed, 125 insertions(+), 88 deletions(-) create mode 100644 core/alarm/src/main/java/com/yapp/alarm/AlarmTimeCalculator.kt diff --git a/core/alarm/src/main/java/com/yapp/alarm/AlarmConstants.kt b/core/alarm/src/main/java/com/yapp/alarm/AlarmConstants.kt index 67d359f1..e007649e 100644 --- a/core/alarm/src/main/java/com/yapp/alarm/AlarmConstants.kt +++ b/core/alarm/src/main/java/com/yapp/alarm/AlarmConstants.kt @@ -16,8 +16,6 @@ object AlarmConstants { const val SNOOZE_ID_OFFSET = 10000 - const val WEEK_INTERVAL_MILLIS: Long = 7 * 24 * 60 * 60 * 1000 - val HOLIDAYS_2025 = setOf( "2025-01-01", "2025-01-27", "2025-01-28", "2025-01-29", "2025-01-30", "2025-03-01", "2025-03-03", "2025-05-05", "2025-05-06", "2025-06-06", diff --git a/core/alarm/src/main/java/com/yapp/alarm/AlarmTimeCalculator.kt b/core/alarm/src/main/java/com/yapp/alarm/AlarmTimeCalculator.kt new file mode 100644 index 00000000..4cb7f8e4 --- /dev/null +++ b/core/alarm/src/main/java/com/yapp/alarm/AlarmTimeCalculator.kt @@ -0,0 +1,87 @@ +package com.yapp.alarm + +import com.yapp.domain.model.Alarm +import com.yapp.domain.model.AlarmDay +import com.yapp.domain.model.toDayOfWeek +import java.time.Clock +import java.time.LocalDateTime +import java.time.ZoneId +import java.time.format.DateTimeFormatter +import javax.inject.Inject + +class AlarmTimeCalculator @Inject constructor( + private val clock: Clock, +) { + private val holidayDateFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd") + + private fun isHoliday(date: LocalDateTime): Boolean { + val dateString = date.format(holidayDateFormatter) + if (date.year == 2025) { + return AlarmConstants.HOLIDAYS_2025.contains(dateString) + } + return false + } + + private fun createInitialAlarmDateTime(alarm: Alarm, now: LocalDateTime): LocalDateTime { + return now + .withHour(alarm.hour) + .withMinute(alarm.minute) + .withSecond(alarm.second) + .withNano(0) + } + + fun calculateNextTriggerTimeForRepeatingDay( + alarm: Alarm, + day: AlarmDay, + zoneId: ZoneId = clock.zone, + ): Long { + val now = createInitialAlarmDateTime(alarm, LocalDateTime.now(clock)) + var alarmDateTime = now + .withHour(alarm.hour) + .withMinute(alarm.minute) + .withSecond(alarm.second) + .withNano(0) + val targetDayOfWeek = day.toDayOfWeek() + + while (alarmDateTime.dayOfWeek != targetDayOfWeek || alarmDateTime.isBefore(now)) { + alarmDateTime = alarmDateTime.plusDays(1) + } + return alarmDateTime.atZone(zoneId).toInstant().toEpochMilli() + } + + fun calculateNextTriggerTimeForNonRepeating( + alarm: Alarm, + zoneId: ZoneId = clock.zone, + ): Long { + val now = LocalDateTime.now(clock) + var alarmDateTime = createInitialAlarmDateTime(alarm, now) + + if (alarmDateTime.isBefore(now)) { + alarmDateTime = alarmDateTime.plusDays(1) + } + return alarmDateTime.atZone(zoneId).toInstant().toEpochMilli() + } + + fun calculateNextUpcomingWeeklyAlarmTime( + alarm: Alarm, + targetDay: AlarmDay, + zoneId: ZoneId = clock.zone, + ): Long { + val now = LocalDateTime.now(clock) + // 주간 알람은 'now'를 기준으로 targetDay의 alarm 시간을 찾고 그 다음 주를 계산 + var alarmDateTimeCandidate = createInitialAlarmDateTime(alarm, now) + val dayOfWeekForTarget = targetDay.toDayOfWeek() + + while (alarmDateTimeCandidate.dayOfWeek != dayOfWeekForTarget || alarmDateTimeCandidate.isBefore(now)) { + alarmDateTimeCandidate = alarmDateTimeCandidate.plusDays(1) + } + + val initialTriggerTimeCandidate = alarmDateTimeCandidate.plusWeeks(1) + var finalTriggerDateTime = initialTriggerTimeCandidate + + while (isHoliday(finalTriggerDateTime)) { + finalTriggerDateTime = finalTriggerDateTime.plusWeeks(1) + } + return finalTriggerDateTime.atZone(zoneId).toInstant().toEpochMilli() + } +} diff --git a/core/alarm/src/main/java/com/yapp/alarm/AndroidAlarmScheduler.kt b/core/alarm/src/main/java/com/yapp/alarm/AndroidAlarmScheduler.kt index e5cc9dcd..6fe43fa4 100644 --- a/core/alarm/src/main/java/com/yapp/alarm/AndroidAlarmScheduler.kt +++ b/core/alarm/src/main/java/com/yapp/alarm/AndroidAlarmScheduler.kt @@ -2,24 +2,20 @@ package com.yapp.alarm import android.app.AlarmManager import android.app.Application -import android.util.Log import com.yapp.alarm.pendingIntent.schedule.createAlarmReceiverPendingIntentForSchedule import com.yapp.alarm.pendingIntent.schedule.createAlarmReceiverPendingIntentForUnSchedule import com.yapp.domain.model.Alarm import com.yapp.domain.model.AlarmDay import com.yapp.domain.model.toAlarmDays -import com.yapp.domain.model.toDayOfWeek import com.yapp.domain.scheduler.AlarmScheduler -import java.time.Instant -import java.time.LocalDateTime -import java.time.ZoneId -import java.time.format.DateTimeFormatter import javax.inject.Inject class AndroidAlarmScheduler @Inject constructor( private val app: Application, private val alarmManager: AlarmManager, + private val alarmTimeCalculator: AlarmTimeCalculator, ) : AlarmScheduler { + override fun scheduleAlarm(alarm: Alarm) { val selectedDays = alarm.repeatDays.toAlarmDays() @@ -32,10 +28,8 @@ class AndroidAlarmScheduler @Inject constructor( } } - fun scheduleWeeklyAlarm(alarm: Alarm, day: AlarmDay) { - val initialTriggerMillis = getNextAlarmTimeMillis(alarm, day) + AlarmConstants.WEEK_INTERVAL_MILLIS - val triggerMillis = findNextNonHolidayDate(initialTriggerMillis) - + private fun setRepeatingAlarm(day: AlarmDay, alarm: Alarm) { + val triggerMillis = alarmTimeCalculator.calculateNextTriggerTimeForRepeatingDay(alarm, day) val pendingIntent = createAlarmReceiverPendingIntentForSchedule(app, alarm, day) alarmManager.setExactAndAllowWhileIdle( @@ -43,8 +37,28 @@ class AndroidAlarmScheduler @Inject constructor( triggerMillis, pendingIntent, ) + } - Log.d("AlarmHelper", "Scheduled weekly alarm for $day at: $triggerMillis") + private fun setNonRepeatingAlarm(alarm: Alarm) { + val triggerMillis = alarmTimeCalculator.calculateNextTriggerTimeForNonRepeating(alarm) + val pendingIntent = createAlarmReceiverPendingIntentForSchedule(app, alarm) + + alarmManager.setExactAndAllowWhileIdle( + AlarmManager.RTC_WAKEUP, + triggerMillis, + pendingIntent, + ) + } + + fun scheduleUpcomingWeeklyAlarm(alarm: Alarm, day: AlarmDay) { + val triggerMillis = alarmTimeCalculator.calculateNextUpcomingWeeklyAlarmTime(alarm, day) + val pendingIntent = createAlarmReceiverPendingIntentForSchedule(app, alarm, day) + + alarmManager.setExactAndAllowWhileIdle( + AlarmManager.RTC_WAKEUP, + triggerMillis, + pendingIntent, + ) } override fun unScheduleAlarm(alarm: Alarm) { @@ -73,79 +87,5 @@ class AndroidAlarmScheduler @Inject constructor( val snoozedAlarmId = alarmId + AlarmConstants.SNOOZE_ID_OFFSET val pendingIntent = createAlarmReceiverPendingIntentForUnSchedule(app, Alarm(id = snoozedAlarmId)) alarmManager.cancel(pendingIntent) - Log.d("AlarmHelper", "Canceled snoozed alarm with id: $snoozedAlarmId") - } - - private fun setRepeatingAlarm(day: AlarmDay, alarm: Alarm) { - val alarmReceiverPendingIntent = - createAlarmReceiverPendingIntentForSchedule(app, alarm, day) - val firstAlarmTriggerMillis = getNextAlarmTimeMillis(alarm, day) - - Log.d("AlarmHelper", "Setting repeating alarm id: ${alarm.id} at: $firstAlarmTriggerMillis") - - alarmManager.setExactAndAllowWhileIdle( - AlarmManager.RTC_WAKEUP, - firstAlarmTriggerMillis, - alarmReceiverPendingIntent, - ) - } - - private fun setNonRepeatingAlarm(alarm: Alarm) { - val alarmReceiverPendingIntent = - createAlarmReceiverPendingIntentForSchedule(app, alarm) - - val triggerMillis = getNextAlarmTimeMillis(alarm, null) - - Log.d("AlarmHelper", "Setting one-time alarm at: $triggerMillis") - - alarmManager.setExactAndAllowWhileIdle( - AlarmManager.RTC_WAKEUP, - triggerMillis, - alarmReceiverPendingIntent, - ) - } - - private fun getNextAlarmTimeMillis(alarm: Alarm, day: AlarmDay?): Long { - val now = LocalDateTime.now().withNano(0) // 밀리초 제거하여 정확한 초 기준 설정 - - var alarmDateTime = now.withHour(alarm.hour).withMinute(alarm.minute).withSecond(alarm.second) - - if (day != null) { - val targetDayOfWeek = day.toDayOfWeek() - while (alarmDateTime.dayOfWeek != targetDayOfWeek || alarmDateTime.isBefore(now)) { - alarmDateTime = alarmDateTime.plusDays(1) - } - } else { - if (alarmDateTime.isBefore(now)) { - alarmDateTime = alarmDateTime.plusDays(1) - } - } - - val epochMillis = alarmDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() - - Log.d("AlarmHelper", "Alarm scheduled at: $alarmDateTime (epochMillis=$epochMillis)") - - return epochMillis - } - - private fun findNextNonHolidayDate(initialMillis: Long): Long { - val dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd") - - var adjustedMillis = initialMillis - - while (true) { - val localDate = Instant.ofEpochMilli(adjustedMillis) - .atZone(ZoneId.systemDefault()) - .toLocalDate() - - val dateString = localDate.format(dateFormatter) - - if (!AlarmConstants.HOLIDAYS_2025.contains(dateString)) { - return adjustedMillis // 공휴일이 아니라면 해당 날짜 반환 - } - - // 공휴일이라면 다음 1주 뒤로 이동 - adjustedMillis += AlarmConstants.WEEK_INTERVAL_MILLIS - } } } diff --git a/core/alarm/src/main/java/com/yapp/alarm/di/AlarmModule.kt b/core/alarm/src/main/java/com/yapp/alarm/di/AlarmModule.kt index 40f44869..63fe2c6d 100644 --- a/core/alarm/src/main/java/com/yapp/alarm/di/AlarmModule.kt +++ b/core/alarm/src/main/java/com/yapp/alarm/di/AlarmModule.kt @@ -2,6 +2,7 @@ package com.yapp.alarm.di import android.app.AlarmManager import android.content.Context +import com.yapp.alarm.AlarmTimeCalculator import com.yapp.alarm.AndroidAlarmScheduler import com.yapp.domain.scheduler.AlarmScheduler import dagger.Binds @@ -10,6 +11,7 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent +import java.time.Clock import javax.inject.Singleton @Module @@ -22,6 +24,16 @@ abstract class AlarmModule { ): AlarmScheduler companion object { + @Provides + @Singleton + fun provideClock(): Clock = Clock.systemDefaultZone() + + @Provides + @Singleton + fun provideAlarmTimeCalculator(clock: Clock): AlarmTimeCalculator { + return AlarmTimeCalculator(clock) + } + @Provides @Singleton fun provideAlarmManager(@ApplicationContext context: Context): AlarmManager { diff --git a/core/alarm/src/main/java/com/yapp/alarm/services/AlarmService.kt b/core/alarm/src/main/java/com/yapp/alarm/services/AlarmService.kt index e0db3f5c..6ee5cc71 100644 --- a/core/alarm/src/main/java/com/yapp/alarm/services/AlarmService.kt +++ b/core/alarm/src/main/java/com/yapp/alarm/services/AlarmService.kt @@ -103,7 +103,7 @@ class AlarmService : Service() { // 반복 요일 알람 시, 다음 주 동일 요일 알람 예약 if (!isOneTimeAlarm) { intent.getStringExtra(AlarmConstants.EXTRA_ALARM_DAY)?.let { - androidAlarmScheduler.scheduleWeeklyAlarm(alarm, AlarmDay.valueOf(it)) + androidAlarmScheduler.scheduleUpcomingWeeklyAlarm(alarm, AlarmDay.valueOf(it)) } } From a68c9624abd049054dbcf2c7bee09d64453dfcf9 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Wed, 16 Jul 2025 22:22:29 +0900 Subject: [PATCH 15/41] =?UTF-8?q?[FIX/#226]=20=EC=95=8C=EB=9E=8C=20?= =?UTF-8?q?=EC=8A=A4=EC=BC=80=EC=A4=84=EB=A7=81=20=EC=8B=9C=20=EA=B3=B5?= =?UTF-8?q?=ED=9C=B4=EC=9D=BC=20=EA=B1=B4=EB=84=88=EB=9B=B0=EA=B8=B0=20?= =?UTF-8?q?=EC=97=AC=EB=B6=80=EC=97=90=20=EB=94=B0=EB=9D=BC=20=EA=B1=B4?= =?UTF-8?q?=EB=84=88=EB=9B=B0=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yapp/alarm/AlarmTimeCalculator.kt | 73 +++++++++++-------- .../com/yapp/alarm/AndroidAlarmScheduler.kt | 8 +- .../com/yapp/alarm/services/AlarmService.kt | 2 +- 3 files changed, 47 insertions(+), 36 deletions(-) diff --git a/core/alarm/src/main/java/com/yapp/alarm/AlarmTimeCalculator.kt b/core/alarm/src/main/java/com/yapp/alarm/AlarmTimeCalculator.kt index 4cb7f8e4..f7d6e590 100644 --- a/core/alarm/src/main/java/com/yapp/alarm/AlarmTimeCalculator.kt +++ b/core/alarm/src/main/java/com/yapp/alarm/AlarmTimeCalculator.kt @@ -14,15 +14,26 @@ class AlarmTimeCalculator @Inject constructor( ) { private val holidayDateFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd") - private fun isHoliday(date: LocalDateTime): Boolean { - val dateString = date.format(holidayDateFormatter) - if (date.year == 2025) { + private fun isHoliday(dateToCheck: LocalDateTime): Boolean { + if (dateToCheck.year == 2025) { + val dateString = dateToCheck.format(holidayDateFormatter) return AlarmConstants.HOLIDAYS_2025.contains(dateString) } return false } - private fun createInitialAlarmDateTime(alarm: Alarm, now: LocalDateTime): LocalDateTime { + private fun skipHolidaysIfEnabled(initialDateTime: LocalDateTime, alarm: Alarm): LocalDateTime { + if (!alarm.isHolidayAlarmOff) return initialDateTime + + var adjustedDateTime = initialDateTime + while (isHoliday(adjustedDateTime)) { + adjustedDateTime = adjustedDateTime.plusWeeks(1) + } + + return adjustedDateTime + } + + private fun getAlarmDateTimeOnDate(alarm: Alarm, now: LocalDateTime): LocalDateTime { return now .withHour(alarm.hour) .withMinute(alarm.minute) @@ -30,58 +41,58 @@ class AlarmTimeCalculator @Inject constructor( .withNano(0) } - fun calculateNextTriggerTimeForRepeatingDay( + fun calculateNextRepeatingTimeMillis( alarm: Alarm, - day: AlarmDay, + alarmDay: AlarmDay, zoneId: ZoneId = clock.zone, ): Long { - val now = createInitialAlarmDateTime(alarm, LocalDateTime.now(clock)) - var alarmDateTime = now - .withHour(alarm.hour) - .withMinute(alarm.minute) - .withSecond(alarm.second) - .withNano(0) - val targetDayOfWeek = day.toDayOfWeek() + val now = LocalDateTime.now(clock) + val targetDayOfWeek = alarmDay.toDayOfWeek() - while (alarmDateTime.dayOfWeek != targetDayOfWeek || alarmDateTime.isBefore(now)) { - alarmDateTime = alarmDateTime.plusDays(1) + val alarmDateTimeToday = getAlarmDateTimeOnDate(alarm, now) + + var nextAlarmDateTimeCandidate = alarmDateTimeToday + + while (nextAlarmDateTimeCandidate.dayOfWeek != targetDayOfWeek || nextAlarmDateTimeCandidate.isBefore(now)) { + nextAlarmDateTimeCandidate = nextAlarmDateTimeCandidate.plusDays(1) } - return alarmDateTime.atZone(zoneId).toInstant().toEpochMilli() + + nextAlarmDateTimeCandidate = skipHolidaysIfEnabled(nextAlarmDateTimeCandidate, alarm) + + return nextAlarmDateTimeCandidate.atZone(zoneId).toInstant().toEpochMilli() } - fun calculateNextTriggerTimeForNonRepeating( + fun calculateNonRepeatingTimeMillis( alarm: Alarm, zoneId: ZoneId = clock.zone, ): Long { val now = LocalDateTime.now(clock) - var alarmDateTime = createInitialAlarmDateTime(alarm, now) + var alarmDateTime = getAlarmDateTimeOnDate(alarm, now) if (alarmDateTime.isBefore(now)) { alarmDateTime = alarmDateTime.plusDays(1) } + return alarmDateTime.atZone(zoneId).toInstant().toEpochMilli() } - fun calculateNextUpcomingWeeklyAlarmTime( + fun calculateNextWeeklyRescheduledTimeMillis( alarm: Alarm, - targetDay: AlarmDay, + alarmTargetDay: AlarmDay, zoneId: ZoneId = clock.zone, ): Long { val now = LocalDateTime.now(clock) - // 주간 알람은 'now'를 기준으로 targetDay의 alarm 시간을 찾고 그 다음 주를 계산 - var alarmDateTimeCandidate = createInitialAlarmDateTime(alarm, now) - val dayOfWeekForTarget = targetDay.toDayOfWeek() + val targetDayOfWeek = alarmTargetDay.toDayOfWeek() - while (alarmDateTimeCandidate.dayOfWeek != dayOfWeekForTarget || alarmDateTimeCandidate.isBefore(now)) { - alarmDateTimeCandidate = alarmDateTimeCandidate.plusDays(1) + var initialAlarmDateTimeCandidate = getAlarmDateTimeOnDate(alarm, now) + + while (initialAlarmDateTimeCandidate.dayOfWeek != targetDayOfWeek || initialAlarmDateTimeCandidate.isBefore(now)) { + initialAlarmDateTimeCandidate = initialAlarmDateTimeCandidate.plusDays(1) } - val initialTriggerTimeCandidate = alarmDateTimeCandidate.plusWeeks(1) - var finalTriggerDateTime = initialTriggerTimeCandidate + val nextWeeklyAlarmDateTimeCandidate = initialAlarmDateTimeCandidate.plusWeeks(1) + val nextWeeklyAlarmDateTime = skipHolidaysIfEnabled(nextWeeklyAlarmDateTimeCandidate, alarm) - while (isHoliday(finalTriggerDateTime)) { - finalTriggerDateTime = finalTriggerDateTime.plusWeeks(1) - } - return finalTriggerDateTime.atZone(zoneId).toInstant().toEpochMilli() + return nextWeeklyAlarmDateTime.atZone(zoneId).toInstant().toEpochMilli() } } diff --git a/core/alarm/src/main/java/com/yapp/alarm/AndroidAlarmScheduler.kt b/core/alarm/src/main/java/com/yapp/alarm/AndroidAlarmScheduler.kt index 6fe43fa4..2691e78b 100644 --- a/core/alarm/src/main/java/com/yapp/alarm/AndroidAlarmScheduler.kt +++ b/core/alarm/src/main/java/com/yapp/alarm/AndroidAlarmScheduler.kt @@ -29,7 +29,7 @@ class AndroidAlarmScheduler @Inject constructor( } private fun setRepeatingAlarm(day: AlarmDay, alarm: Alarm) { - val triggerMillis = alarmTimeCalculator.calculateNextTriggerTimeForRepeatingDay(alarm, day) + val triggerMillis = alarmTimeCalculator.calculateNextRepeatingTimeMillis(alarm, day) val pendingIntent = createAlarmReceiverPendingIntentForSchedule(app, alarm, day) alarmManager.setExactAndAllowWhileIdle( @@ -40,7 +40,7 @@ class AndroidAlarmScheduler @Inject constructor( } private fun setNonRepeatingAlarm(alarm: Alarm) { - val triggerMillis = alarmTimeCalculator.calculateNextTriggerTimeForNonRepeating(alarm) + val triggerMillis = alarmTimeCalculator.calculateNonRepeatingTimeMillis(alarm) val pendingIntent = createAlarmReceiverPendingIntentForSchedule(app, alarm) alarmManager.setExactAndAllowWhileIdle( @@ -50,8 +50,8 @@ class AndroidAlarmScheduler @Inject constructor( ) } - fun scheduleUpcomingWeeklyAlarm(alarm: Alarm, day: AlarmDay) { - val triggerMillis = alarmTimeCalculator.calculateNextUpcomingWeeklyAlarmTime(alarm, day) + fun rescheduleUpcomingWeeklyAlarm(alarm: Alarm, day: AlarmDay) { + val triggerMillis = alarmTimeCalculator.calculateNextWeeklyRescheduledTimeMillis(alarm, day) val pendingIntent = createAlarmReceiverPendingIntentForSchedule(app, alarm, day) alarmManager.setExactAndAllowWhileIdle( diff --git a/core/alarm/src/main/java/com/yapp/alarm/services/AlarmService.kt b/core/alarm/src/main/java/com/yapp/alarm/services/AlarmService.kt index 6ee5cc71..96ebde07 100644 --- a/core/alarm/src/main/java/com/yapp/alarm/services/AlarmService.kt +++ b/core/alarm/src/main/java/com/yapp/alarm/services/AlarmService.kt @@ -103,7 +103,7 @@ class AlarmService : Service() { // 반복 요일 알람 시, 다음 주 동일 요일 알람 예약 if (!isOneTimeAlarm) { intent.getStringExtra(AlarmConstants.EXTRA_ALARM_DAY)?.let { - androidAlarmScheduler.scheduleUpcomingWeeklyAlarm(alarm, AlarmDay.valueOf(it)) + androidAlarmScheduler.rescheduleUpcomingWeeklyAlarm(alarm, AlarmDay.valueOf(it)) } } From d28a2ef1739b674a2cb4fbf142872333c00bf19f Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Wed, 16 Jul 2025 22:22:45 +0900 Subject: [PATCH 16/41] =?UTF-8?q?[TEST/#226]=20AlarmTimeCalculator=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yapp/alarm/AlarmTimeCalculatorTest.kt | 408 ++++++++++++++++++ 1 file changed, 408 insertions(+) create mode 100644 core/alarm/src/test/kotlin/com/yapp/alarm/AlarmTimeCalculatorTest.kt diff --git a/core/alarm/src/test/kotlin/com/yapp/alarm/AlarmTimeCalculatorTest.kt b/core/alarm/src/test/kotlin/com/yapp/alarm/AlarmTimeCalculatorTest.kt new file mode 100644 index 00000000..81f9cbaa --- /dev/null +++ b/core/alarm/src/test/kotlin/com/yapp/alarm/AlarmTimeCalculatorTest.kt @@ -0,0 +1,408 @@ +import com.yapp.alarm.AlarmTimeCalculator +import com.yapp.domain.model.Alarm +import com.yapp.domain.model.AlarmDay +import org.junit.Assert.assertEquals +import org.junit.Test +import java.time.Clock +import java.time.LocalDateTime +import java.time.LocalTime +import java.time.ZoneId + +class AlarmTimeCalculatorTest { + + private val testZoneId: ZoneId = ZoneId.of("Asia/Seoul") + + // --- 기준 시각 (Fixed Clocks) --- + private val MONDAY_2024_07_22_10AM: LocalDateTime = LocalDateTime.of(2024, 7, 22, 10, 0, 0) + private val clockMonday2024_10am: Clock = Clock.fixed( + MONDAY_2024_07_22_10AM.toInstant( + testZoneId.rules.getOffset(MONDAY_2024_07_22_10AM) + ), testZoneId + ) + + private val FRIDAY_2024_07_26_3PM: LocalDateTime = LocalDateTime.of(2024, 7, 26, 15, 0, 0) + private val clockFriday2024_3pm: Clock = Clock.fixed( + FRIDAY_2024_07_26_3PM.toInstant(testZoneId.rules.getOffset(FRIDAY_2024_07_26_3PM)), + testZoneId + ) + + private val MONDAY_2025_01_20_10AM: LocalDateTime = LocalDateTime.of(2025, 1, 20, 10, 0, 0) + private val clockMonday2025_01_20_10am: Clock = Clock.fixed( + MONDAY_2025_01_20_10AM.toInstant( + testZoneId.rules.getOffset(MONDAY_2025_01_20_10AM) + ), testZoneId + ) + + private val MONDAY_2025_01_20_2_01PM: LocalDateTime = LocalDateTime.of(2025, 1, 20, 14, 1, 0) + private val clockMonday2025_PrevHoliday_2_01pm: Clock = Clock.fixed( + MONDAY_2025_01_20_2_01PM.toInstant( + testZoneId.rules.getOffset(MONDAY_2025_01_20_2_01PM) + ), testZoneId + ) + + private val MONDAY_HOLIDAY_2025_01_27_10AM: LocalDateTime = + LocalDateTime.of(2025, 1, 27, 10, 0, 0) + private val clockMondayHoliday2025_10am: Clock = Clock.fixed( + MONDAY_HOLIDAY_2025_01_27_10AM.toInstant( + testZoneId.rules.getOffset(MONDAY_HOLIDAY_2025_01_27_10AM) + ), testZoneId + ) + + private val MONDAY_2025_02_17_10AM: LocalDateTime = LocalDateTime.of(2025, 2, 17, 10, 0, 0) + private val clockMonday2025_02_17_10am: Clock = Clock.fixed( + MONDAY_2025_02_17_10AM.toInstant( + testZoneId.rules.getOffset(MONDAY_2025_02_17_10AM) + ), testZoneId + ) + + private fun createTestAlarm( + hour: Int, + minute: Int, + second: Int = 0, + isHolidayAlarmOff: Boolean = false, + repeatDays: Int = 0, // 기본값은 비반복 + ): Alarm { + return Alarm( + hour = hour, + minute = minute, + second = second, + repeatDays = repeatDays, + isHolidayAlarmOff = isHolidayAlarmOff, + ) + } + + private fun getExpectedMillis(dateTime: LocalDateTime, zone: ZoneId = testZoneId): Long { + return dateTime.atZone(zone).toInstant().toEpochMilli() + } + + // --- 비반복 알람 시간 계산 (calculateNonRepeatingTimeMillis) 테스트 --- + @Test + fun `비반복_알람시간이_오늘_미래이면_오늘_알람시간으로_계산된다`() { + // 현재: 2024-07-22 (월) 10:00:00 + // 알람: 오늘 14:00:00, 비반복 + // 기대: 2024-07-22 (월) 14:00:00 + val calculator = AlarmTimeCalculator(clockMonday2024_10am) + val alarmTime = LocalTime.of(14, 0) + val alarm = createTestAlarm(alarmTime.hour, alarmTime.minute) // repeatDays = 0 (비반복) + + val expectedDateTime = MONDAY_2024_07_22_10AM.with(alarmTime) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = calculator.calculateNonRepeatingTimeMillis(alarm, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + @Test + fun `비반복_알람시간이_오늘_과거이면_내일_알람시간으로_계산된다`() { + // 현재: 2024-07-22 (월) 10:00:00 + // 알람: 오늘 08:00:00 (이미 지남), 비반복 + // 기대: 2024-07-23 (화) 08:00:00 + val calculator = AlarmTimeCalculator(clockMonday2024_10am) + val alarmTime = LocalTime.of(8, 0) + val alarm = createTestAlarm(alarmTime.hour, alarmTime.minute) // repeatDays = 0 (비반복) + + val expectedDateTime = MONDAY_2024_07_22_10AM.plusDays(1).with(alarmTime) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = calculator.calculateNonRepeatingTimeMillis(alarm, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + // --- 다음 반복 요일 알람 시간 계산 (calculateNextRepeatingTimeMillis) 테스트 --- + @Test + fun `반복요일알람_오늘이_대상요일이고_알람시간이_미래이며_공휴일건너뛰기_비활성시_오늘로_계산된다`() { + // 현재: 2024-07-22 (월) 10:00:00 + // 알람: 매주 월요일 14:00:00, 공휴일 건너뛰기 비활성 + // 기대: 2024-07-22 (월) 14:00:00 + val calculator = AlarmTimeCalculator(clockMonday2024_10am) + val alarmTime = LocalTime.of(14, 0) + val alarm = createTestAlarm( + hour = alarmTime.hour, + minute = alarmTime.minute, + isHolidayAlarmOff = false, + repeatDays = AlarmDay.MON.bitValue // 월요일 반복 + ) + + val expectedDateTime = MONDAY_2024_07_22_10AM.with(alarmTime) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = + calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + @Test + fun `반복요일알람_오늘이_공휴일인_울릴요일이고_알람시간이_미래이며_공휴일건너뛰기_비활성시_오늘_공휴일로_계산된다`() { + // 현재: 2025-01-27 (월, 공휴일) 10:00:00 + // 알람: 매주 월요일 14:00:00, 공휴일 건너뛰기 비활성 + // 기대: 2025-01-27 (월, 공휴일) 14:00:00 (건너뛰기 비활성이므로 오늘 공휴일이어도 울림) + val calculator = AlarmTimeCalculator(clockMondayHoliday2025_10am) + val alarmTime = LocalTime.of(14, 0) + val alarm = createTestAlarm( + hour = alarmTime.hour, + minute = alarmTime.minute, + isHolidayAlarmOff = false, + repeatDays = AlarmDay.MON.bitValue // 월요일 반복 + ) + + val expectedDateTime = MONDAY_HOLIDAY_2025_01_27_10AM.with(alarmTime) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = + calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + @Test + fun `반복요일알람_다음주_울릴요일이_공휴일이고_공휴일건너뛰기_비활성시_다음주_공휴일로_계산된다`() { + // 현재: 2025-01-20 (월) 10:00:00 (공휴일 아닌 월요일) + // 알람: 매주 월요일 09:00:00, 공휴일 건너뛰기 비활성 + // 다음 주 월요일: 2025-01-27 (공휴일) + // 기대: 2025-01-27 (월, 공휴일) 09:00:00 (건너뛰기 비활성이므로 다음 주 공휴일이어도 울림) + val calculator = AlarmTimeCalculator(clockMonday2025_01_20_10am) + val alarmTime = LocalTime.of(9, 0) + val alarm = createTestAlarm( + hour = alarmTime.hour, + minute = alarmTime.minute, + isHolidayAlarmOff = false, + repeatDays = AlarmDay.MON.bitValue // 월요일 반복 + ) + + val expectedDateTime = LocalDateTime.of(2025, 1, 27, 9, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = + calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + @Test + fun `반복요일알람_대상요일이_이번주_미래요일이고_공휴일건너뛰기_비활성시_해당요일로_계산된다`() { + // 현재: 2024-07-22 (월) 10:00:00 + // 알람: 매주 수요일 11:00:00, 공휴일 건너뛰기 비활성 + // 기대: 2024-07-24 (수) 11:00:00 + val calculator = AlarmTimeCalculator(clockMonday2024_10am) + val alarmTime = LocalTime.of(11, 0) + val alarm = createTestAlarm( + hour = alarmTime.hour, + minute = alarmTime.minute, + isHolidayAlarmOff = false, + repeatDays = AlarmDay.WED.bitValue // 수요일 반복 + ) + + val expectedDateTime = + MONDAY_2024_07_22_10AM.plusDays(2).with(alarmTime) // 2024-07-24 (수) 11:00 + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = + calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.WED, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + @Test + fun `반복요일알람_오늘이_대상요일이나_시간이_지났고_다음주_해당요일이_공휴일이며_공휴일_비활성시_다음주_공휴일로_계산된다`() { + // 현재: 2025-01-20 (월) 14:01 (월요일 14:00 알람 후) + // 알람: 매주 월요일 14:00, isHolidayAlarmOff = false + // 다음주 월요일: 2025-01-27 (공휴일) + // 기대: 2025-01-27 (월) 14:00 (옵션 Off이므로 공휴일이어도 울림) + val calculator = AlarmTimeCalculator(clockMonday2025_PrevHoliday_2_01pm) + val alarmTime = LocalTime.of(14, 0) + val alarm = createTestAlarm( + hour = alarmTime.hour, + minute = alarmTime.minute, + isHolidayAlarmOff = false, + repeatDays = AlarmDay.MON.bitValue // 월요일 반복 + ) + + val expectedDateTime = LocalDateTime.of(2025, 1, 27, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = + calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + @Test + fun `반복요일알람_오늘이_대상요일이나_시간이_지났고_다음주_해당요일이_공휴일이며_공휴일건너뛰기_활성시_다다음주_해당요일로_계산된다`() { + // 현재: 2025-01-20 (월) 14:01 (월요일 14:00 알람 후) + // 알람: 매주 월요일 14:00, isHolidayAlarmOff = true + // 다음주 월요일: 2025-01-27 (공휴일) + // 기대: 다다음주 월요일 2025-02-03 (월) 14:00 + val calculator = AlarmTimeCalculator(clockMonday2025_PrevHoliday_2_01pm) + val alarmTime = LocalTime.of(14, 0) + val alarm = createTestAlarm( + hour = alarmTime.hour, + minute = alarmTime.minute, + isHolidayAlarmOff = true, + repeatDays = AlarmDay.MON.bitValue // 월요일 반복 + ) + + val expectedDateTime = LocalDateTime.of(2025, 2, 3, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = + calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + @Test + fun `반복요일알람_오늘이_공휴일인_대상요일이고_알람시간이_미래이며_공휴일건너뛰기_활성시_다음주_해당요일로_계산된다`() { + // 현재: 2025-01-27 (월, 공휴일) 10:00 + // 알람: 매주 월요일 14:00, isHolidayAlarmOff = true + // 기대: 다음주 월요일 2025-02-03 (월) 14:00 + val calculator = AlarmTimeCalculator(clockMondayHoliday2025_10am) + val alarmTime = LocalTime.of(14, 0) + val alarm = createTestAlarm( + hour = alarmTime.hour, + minute = alarmTime.minute, + isHolidayAlarmOff = true, + repeatDays = AlarmDay.MON.bitValue // 월요일 반복 + ) + + val expectedDateTime = LocalDateTime.of(2025, 2, 3, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = + calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + @Test + fun `반복요일알람_오늘이_공휴일인_대상요일이고_알람시간이_미래이며_공휴일건너뛰기_비활성시_오늘_공휴일로_계산된다`() { + // 현재: 2025-01-27 (월, 공휴일) 10:00 + // 알람: 매주 월요일 14:00, isHolidayAlarmOff = false + // 기대: 오늘 2025-01-27 (월) 14:00 + val calculator = AlarmTimeCalculator(clockMondayHoliday2025_10am) + val alarmTime = LocalTime.of(14, 0) + val alarm = createTestAlarm( + hour = alarmTime.hour, + minute = alarmTime.minute, + isHolidayAlarmOff = false, + repeatDays = AlarmDay.MON.bitValue // 월요일 반복 + ) + + val expectedDateTime = MONDAY_HOLIDAY_2025_01_27_10AM.with(alarmTime) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = + calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + + // --- 다음 주간 재예약 알람 시간 계산 (calculateNextWeeklyRescheduledTimeMillis) 테스트 --- + @Test + fun `주간재예약_현재_월요일오전_대상도_월요일_공휴일건너뛰기_비활성_다음주_월요일이_공휴일아닐때_다음주_월요일로_계산된다`() { + // 현재: 2024-07-22 (월) 10:00 + // 알람: 매주 월요일 14:00, isHolidayAlarmOff = false + // 다음주 월요일: 2024-07-29 (공휴일 아님) + // 기대: 2024-07-29 (월) 14:00 + val calculator = AlarmTimeCalculator(clockMonday2024_10am) + val alarmTime = LocalTime.of(14, 0) + val alarm = createTestAlarm( + hour = alarmTime.hour, + minute = alarmTime.minute, + isHolidayAlarmOff = false, + repeatDays = AlarmDay.MON.bitValue // 월요일 반복 + ) + + val expectedDateTime = LocalDateTime.of(2024, 7, 29, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = + calculator.calculateNextWeeklyRescheduledTimeMillis(alarm, AlarmDay.MON, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + @Test + fun `주간재예약_다음주_울릴요일이_공휴일이고_공휴일건너뛰기_비활성시_다음주_공휴일로_계산된다`() { + // 현재: 2025-01-20 (월) 10:00:00 (설 연휴 전 주 월요일 오전) + // 알람: 매주 월요일 14:00:00, 공휴일 건너뛰기 비활성 + // 다음주 월요일: 2025-01-27 (공휴일) + // 기대: 2025-01-27 (월, 공휴일) 14:00:00 (건너뛰기 비활성이므로 다음주 공휴일이어도 울림) + val calculator = AlarmTimeCalculator(clockMonday2025_01_20_10am) + val alarmTime = LocalTime.of(14, 0) + val alarm = createTestAlarm( + hour = alarmTime.hour, + minute = alarmTime.minute, + isHolidayAlarmOff = false, + repeatDays = AlarmDay.MON.bitValue // 월요일 반복 + ) + + val expectedDateTime = LocalDateTime.of(2025, 1, 27, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = + calculator.calculateNextWeeklyRescheduledTimeMillis(alarm, AlarmDay.MON, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + @Test + fun `주간재예약_현재_금요일오후_대상은_월요일_공휴일건너뛰기_비활성시_다다음주_월요일로_계산된다`() { + // 현재: 2024-07-26 (금) 15:00 + // 알람: 매주 월요일 14:00, isHolidayAlarmOff = false + // 로직: 가장 가까운 다음 월요일(29일)의 그 다음 주 월요일(5일) + // 기대: 2024-08-05 (월) 14:00 + val calculator = AlarmTimeCalculator(clockFriday2024_3pm) + val alarmTime = LocalTime.of(14, 0) + val alarm = createTestAlarm( + hour = alarmTime.hour, + minute = alarmTime.minute, + isHolidayAlarmOff = false, + repeatDays = AlarmDay.MON.bitValue // 월요일 반복 + ) + + val expectedDateTime = LocalDateTime.of(2024, 8, 5, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = + calculator.calculateNextWeeklyRescheduledTimeMillis(alarm, AlarmDay.MON, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + @Test + fun `주간재예약_현재_월요일_대상도_월요일_공휴일건너뛰기_활성_다음주_월요일이_공휴일일때_다다음주_월요일로_계산된다`() { + // 현재: 2025-01-20 (월) 10:00 (설 연휴 전 주 월요일 오전) + // 알람: 매주 월요일 14:00, isHolidayAlarmOff = true + // 다음주 월요일: 2025-01-27 (공휴일) + // 기대: 다다음주 월요일 2025-02-03 (월) 14:00 + val calculator = AlarmTimeCalculator(clockMonday2025_01_20_10am) + val alarmTime = LocalTime.of(14, 0) + val alarm = createTestAlarm( + hour = alarmTime.hour, + minute = alarmTime.minute, + isHolidayAlarmOff = true, + repeatDays = AlarmDay.MON.bitValue // 월요일 반복 + ) + + val expectedDateTime = LocalDateTime.of(2025, 2, 3, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = + calculator.calculateNextWeeklyRescheduledTimeMillis(alarm, AlarmDay.MON, testZoneId) + assertEquals(expectedMillis, actualMillis) + } + + @Test + fun `주간재예약_현재_월요일_대상도_월요일_공휴일건너뛰기_활성_다음주_월요일이_공휴일아닐때_다음주_월요일로_계산된다`() { + // 현재: 2025-02-17 (월) 10:00 (삼일절 연휴 전전 주 월요일) + // 알람: 매주 월요일 14:00, isHolidayAlarmOff = true + // 다음주 월요일: 2025-02-24 (공휴일 아님) + // 기대: 2025-02-24 (월) 14:00 + val calculator = AlarmTimeCalculator(clockMonday2025_02_17_10am) + val alarmTime = LocalTime.of(14, 0) + val alarm = createTestAlarm( + hour = alarmTime.hour, + minute = alarmTime.minute, + isHolidayAlarmOff = true, + repeatDays = AlarmDay.MON.bitValue // 월요일 반복 + ) + + val expectedDateTime = LocalDateTime.of(2025, 2, 24, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) + + val actualMillis = + calculator.calculateNextWeeklyRescheduledTimeMillis(alarm, AlarmDay.MON, testZoneId) + assertEquals(expectedMillis, actualMillis) + } +} From 5587818653570d61af8df93d8779122abf57e982 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Wed, 16 Jul 2025 23:07:31 +0900 Subject: [PATCH 17/41] =?UTF-8?q?[FEAT/#226]=20AlarmEntity=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20=EB=A7=A4=ED=95=91=20=ED=95=A8=EC=88=98=EC=97=90=20?= =?UTF-8?q?missionType=EA=B3=BC=20missionCount=20=ED=95=84=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/database/src/main/java/com/yapp/database/AlarmEntity.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/database/src/main/java/com/yapp/database/AlarmEntity.kt b/core/database/src/main/java/com/yapp/database/AlarmEntity.kt index 2000fff5..72320fbd 100644 --- a/core/database/src/main/java/com/yapp/database/AlarmEntity.kt +++ b/core/database/src/main/java/com/yapp/database/AlarmEntity.kt @@ -53,6 +53,8 @@ fun AlarmEntity.toDomain() = Alarm( soundUri = soundUri, soundVolume = soundVolume, isAlarmActive = isAlarmActive, + missionType = missionType, + missionCount = missionCount, ) fun Alarm.toEntity() = AlarmEntity( @@ -70,4 +72,6 @@ fun Alarm.toEntity() = AlarmEntity( soundUri = soundUri, soundVolume = soundVolume, isAlarmActive = isAlarmActive, + missionType = missionType, + missionCount = missionCount, ) From e3eea36c3ba8494712c06a41cdcbf3cb9ef9616b Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Wed, 16 Jul 2025 23:26:43 +0900 Subject: [PATCH 18/41] =?UTF-8?q?[FEAT/#226]=20MIGRATION=5F1=5F2=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=EC=97=90=20isAm=20=EC=BB=AC=EB=9F=BC?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EC=8B=9C=EA=B0=84=20=EB=B3=80?= =?UTF-8?q?=ED=99=98=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yapp/database/MigrationTest.kt | 6 ++--- .../com/yapp/database/DatabaseMigrations.kt | 25 ++++++++++++++++--- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt b/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt index 9f6146c7..893ed914 100644 --- a/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt +++ b/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt @@ -48,7 +48,7 @@ class MigrationTest { ) VALUES ( null, -- id (autoGenerate) 0, -- isAm = false - 7, -- hour + 11, -- hour 30, -- minute 0, -- second 0, -- repeatDays @@ -69,13 +69,13 @@ class MigrationTest { val db = helper.runMigrationsAndValidate(testDbName, 2, true, DatabaseMigrations.MIGRATION_1_2) - val cursor = db.query("SELECT missionType, missionCount FROM ${AlarmDatabase.DATABASE_NAME}") + val cursor = db.query("SELECT hour, missionType, missionCount FROM ${AlarmDatabase.DATABASE_NAME}") cursor.use { assertEquals(1, it.count) it.moveToFirst() assertEquals(1, it.getInt(it.getColumnIndexOrThrow("missionType"))) assertEquals(10, it.getInt(it.getColumnIndexOrThrow("missionCount"))) - // assertEquals(19, it.getInt(it.getColumnIndexOrThrow("hour"))) + assertEquals(23, it.getInt(it.getColumnIndexOrThrow("hour"))) } db.close() } diff --git a/core/database/src/main/java/com/yapp/database/DatabaseMigrations.kt b/core/database/src/main/java/com/yapp/database/DatabaseMigrations.kt index 37473888..83c6642b 100644 --- a/core/database/src/main/java/com/yapp/database/DatabaseMigrations.kt +++ b/core/database/src/main/java/com/yapp/database/DatabaseMigrations.kt @@ -42,9 +42,28 @@ internal object DatabaseMigrations { -- missionType, missionCount는 CREATE TABLE에서 정의된 기본값으로 자동 채워짐 ) SELECT - id, hour, minute, second, repeatDays, isHolidayAlarmOff, - isSnoozeEnabled, snoozeInterval, snoozeCount, isVibrationEnabled, - isSoundEnabled, soundUri, soundVolume, isAlarmActive + id, + -- hour를 24시간 형식으로 변환합니다. + -- 예시: isAm 컬럼이 0 (PM)이고 hour가 12가 아니면 hour + 12 + -- 예시: isAm 컬럼이 1 (AM)이고 hour가 12 (자정)이면 0으로 변환 + -- 실제 isAm 컬럼의 의미와 값에 따라 아래 로직을 조정해야 합니다. + CASE + WHEN isAm = 0 AND hour != 12 THEN hour + 12 -- 오후 1시 ~ 11시 -> 13 ~ 23시 + WHEN isAm = 1 AND hour = 12 THEN 0 -- 오전 12시 (자정) -> 0시 + ELSE hour -- 그 외 (오전 1시 ~ 11시, 오후 12시(정오)) + END AS hour_24, + minute, + second, + repeatDays, + isHolidayAlarmOff, + isSnoozeEnabled, + snoozeInterval, + snoozeCount, + isVibrationEnabled, + isSoundEnabled, + soundUri, + soundVolume, + isAlarmActive FROM $DATABASE_NAME """.trimIndent(), ) From 955f467fef1808887f4432815242d7fecab9d499 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Wed, 16 Jul 2025 23:30:10 +0900 Subject: [PATCH 19/41] =?UTF-8?q?[REFACTOR/#226]=20AlarmDateTimeFormatter?= =?UTF-8?q?=20=EC=83=81=EC=88=98=20=EC=A0=95=EC=9D=98=20=EB=B0=8F=20?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../formatter/AlarmDateTimeFormatter.kt | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt b/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt index b58da778..6f66aa51 100644 --- a/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt +++ b/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt @@ -1,9 +1,8 @@ package com.yapp.domain.formatter -import android.util.Log -import com.yapp.domain.model.Alarm // 프로젝트의 Alarm 모델 경로에 맞게 수정 -import com.yapp.domain.model.toAlarmDays // domain 모듈의 확장 함수 경로 -import com.yapp.domain.model.toDayOfWeek // domain 모듈의 확장 함수 경로 +import com.yapp.domain.model.Alarm +import com.yapp.domain.model.toAlarmDays +import com.yapp.domain.model.toDayOfWeek import java.time.Duration import java.time.LocalDateTime import java.time.LocalTime @@ -13,6 +12,11 @@ import javax.inject.Inject class AlarmDateTimeFormatter @Inject constructor() { + companion object { + private const val NO_ALARM_STRING = "NONE" + private const val DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm" + } + data class DeliveryTimeFormats( val noAlarm: String, val today: String, // 예: "오늘 %s" @@ -84,11 +88,11 @@ class AlarmDateTimeFormatter @Inject constructor() { now: LocalDateTime, ): String { return try { - if (deliveryDateTimeString.equals("NONE", ignoreCase = true)) { + if (deliveryDateTimeString.equals(NO_ALARM_STRING, ignoreCase = true)) { return formats.noAlarm } - val inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm") + val inputFormatter = DateTimeFormatter.ofPattern(DATE_TIME_FORMAT) val alarmOccurrenceDateTime = LocalDateTime.parse(deliveryDateTimeString, inputFormatter) // 변수명 inputDateTime -> alarmOccurrenceDateTime val today = now.toLocalDate() val tomorrow = today.plusDays(1) @@ -118,23 +122,12 @@ class AlarmDateTimeFormatter @Inject constructor() { } } } catch (e: DateTimeParseException) { - Log.e("Formatter", "Failed to parse deliveryDateTimeString: $deliveryDateTimeString", e) // 로깅 고려 formats.noAlarm } catch (e: Exception) { - Log.e("Formatter", "Unexpected error formatting deliveryDateTimeString: $deliveryDateTimeString", e) formats.noAlarm } } - /** - * 활성화된 알람 목록에서 가장 먼저 울릴 알람 시간을 찾아, - * 지정된 포맷에 맞춰 사용자에게 보여줄 문자열로 변환합니다. - * - * @param alarms 알람 목록 - * @param formats 포맷팅 규칙을 담은 데이터 클래스 - * @param now 현재 시간 (테스트 용이성을 위해 주입받음) - * @return 포맷팅된 다음 알람 시간 문자열. 활성화된 알람이 없으면 formats.noAlarm 반환. - */ fun getFormattedEarliestUpcomingAlarmDeliveryTime( alarms: List, formats: DeliveryTimeFormats, @@ -146,15 +139,14 @@ class AlarmDateTimeFormatter @Inject constructor() { try { calculateNextOccurrence(alarm.hour, alarm.minute, alarm.repeatDays, now) } catch (e: Exception) { - Log.e("Formatter", "Error calculating next occurrence for alarm: $alarm", e) null // 예외 발생 시 null로 처리 } } .minOrNull() val deliveryDateTimeString = earliestAlarmDateTime?.format( - DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm"), - ) ?: "NONE" + DateTimeFormatter.ofPattern(DATE_TIME_FORMAT), + ) ?: NO_ALARM_STRING return formatDeliveryDateTimeString(deliveryDateTimeString, formats, now) } From 28d7e10bbcd5a93c73e02b10326251c4986b9d11 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 00:18:51 +0900 Subject: [PATCH 20/41] =?UTF-8?q?[FEAT/#226]=20=EB=8D=B0=EC=9D=B4=ED=84=B0?= =?UTF-8?q?=EB=B2=A0=EC=9D=B4=EC=8A=A4=20=EB=A7=88=EC=9D=B4=EA=B7=B8?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=85=98=20=EB=A1=9C=EC=A7=81=EC=97=90=20?= =?UTF-8?q?=EB=A1=A4=EB=B0=B1=20=EB=B3=B4=EC=9E=A5=EC=9D=84=20=EC=9C=84?= =?UTF-8?q?=ED=95=9C=20=ED=8A=B8=EB=9E=9C=EC=9E=AD=EC=85=98=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yapp/database/DatabaseMigrations.kt | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/core/database/src/main/java/com/yapp/database/DatabaseMigrations.kt b/core/database/src/main/java/com/yapp/database/DatabaseMigrations.kt index 83c6642b..8d163fb2 100644 --- a/core/database/src/main/java/com/yapp/database/DatabaseMigrations.kt +++ b/core/database/src/main/java/com/yapp/database/DatabaseMigrations.kt @@ -8,9 +8,11 @@ internal object DatabaseMigrations { val MIGRATION_1_2 = object : Migration(1, 2) { override fun migrate(database: SupportSQLiteDatabase) { - // 1. 새 스키마로 임시 테이블 생성 (isAm 컬럼 제외, missionType, missionCount 추가 및 기본값 변경) - database.execSQL( - """ + database.beginTransaction() + try { + // 1. 새 스키마로 임시 테이블 생성 (isAm 컬럼 제외, missionType, missionCount 추가 및 기본값 변경) + database.execSQL( + """ CREATE TABLE ${DATABASE_NAME}_new ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, hour INTEGER NOT NULL, @@ -29,12 +31,12 @@ internal object DatabaseMigrations { missionType INTEGER NOT NULL DEFAULT 1, -- 타입 INTEGER, 기본값 1 missionCount INTEGER NOT NULL DEFAULT 10 -- 타입 INTEGER, 기본값 10 ) - """.trimIndent(), - ) + """.trimIndent(), + ) - // 2. 기존 테이블에서 새 임시 테이블로 데이터 복사 (isAm 컬럼은 복사하지 않음) - database.execSQL( - """ + // 2. 기존 테이블에서 새 임시 테이블로 데이터 복사 (isAm 컬럼은 복사하지 않음) + database.execSQL( + """ INSERT INTO ${DATABASE_NAME}_new ( id, hour, minute, second, repeatDays, isHolidayAlarmOff, isSnoozeEnabled, snoozeInterval, snoozeCount, isVibrationEnabled, @@ -65,14 +67,20 @@ internal object DatabaseMigrations { soundVolume, isAlarmActive FROM $DATABASE_NAME - """.trimIndent(), - ) + """.trimIndent(), + ) + + // 3. 기존 테이블 삭제 + database.execSQL("DROP TABLE $DATABASE_NAME") - // 3. 기존 테이블 삭제 - database.execSQL("DROP TABLE $DATABASE_NAME") + // 4. 임시 테이블의 이름을 기존 테이블 이름으로 변경 + database.execSQL("ALTER TABLE ${DATABASE_NAME}_new RENAME TO $DATABASE_NAME") - // 4. 임시 테이블의 이름을 기존 테이블 이름으로 변경 - database.execSQL("ALTER TABLE ${DATABASE_NAME}_new RENAME TO $DATABASE_NAME") + // 5. 커밋 + database.setTransactionSuccessful() + } finally { + database.endTransaction() + } } } } From 05f5150702ce8a43c50db36cfda44b241ab29ef6 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 00:19:29 +0900 Subject: [PATCH 21/41] =?UTF-8?q?[TEST/#226]=2012=EC=8B=9C=EA=B0=84?= =?UTF-8?q?=EC=A0=9C=EC=97=90=EC=84=9C=2024=EC=8B=9C=EA=B0=84=EC=A0=9C?= =?UTF-8?q?=EB=A1=9C=20=EC=8B=9C=EA=B0=84=20=EB=B3=80=ED=99=98=20=EA=B2=80?= =?UTF-8?q?=EC=A6=9D=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yapp/database/MigrationTest.kt | 51 ++++++++++++++++++- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt b/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt index 893ed914..eab02b27 100644 --- a/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt +++ b/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt @@ -4,6 +4,7 @@ import androidx.room.testing.MigrationTestHelper import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry +import org.junit.After import org.junit.Assert.assertEquals import org.junit.Rule import org.junit.Test @@ -23,6 +24,12 @@ class MigrationTest { FrameworkSQLiteOpenHelperFactory(), ) + @After + fun tearDown() { + InstrumentationRegistry.getInstrumentation() + .targetContext.deleteDatabase(testDbName) + } + @Test @Throws(IOException::class) fun `버전1에서_버전2로_마이그레이션시_새_컬럼이_기본값으로_채워짐`() { @@ -75,8 +82,48 @@ class MigrationTest { it.moveToFirst() assertEquals(1, it.getInt(it.getColumnIndexOrThrow("missionType"))) assertEquals(10, it.getInt(it.getColumnIndexOrThrow("missionCount"))) - assertEquals(23, it.getInt(it.getColumnIndexOrThrow("hour"))) } - db.close() + } + + @Test + @Throws(IOException::class) + fun `버전1에서_버전2로_마이그레이션시_12시간_포맷이_24시간_포맷으로_정확히_변환되는지_확인`() { + helper.createDatabase(testDbName, 1).apply { + // 4가지 케이스 삽입 + listOf( + Triple(1, 12, 0), // 오전 12시 → 0시 + Triple(0, 12, 12), // 오후 12시 → 12시 + Triple(1, 7, 7), // 오전 7시 → 7시 + Triple(0, 7, 19), // 오후 7시 → 19시 + ).forEach { (isAm, hour12, _) -> + execSQL( + """ + INSERT INTO alarm_database ( + id, isAm, hour, minute, second, repeatDays, isHolidayAlarmOff, + isSnoozeEnabled, snoozeInterval, snoozeCount, isVibrationEnabled, + isSoundEnabled, soundUri, soundVolume, isAlarmActive + ) VALUES ( + null, $isAm, $hour12, 0, 0, 0, 0, 1, 5, 3, 1, 1, 'alarm.mp3', 70, 1 + ) + """.trimIndent(), + ) + } + close() + } + + val db = + helper.runMigrationsAndValidate(testDbName, 2, true, DatabaseMigrations.MIGRATION_1_2) + + val expected = listOf(0, 12, 7, 19) // 기대 결과: 변환된 hour 순서 + val cursor = db.query("SELECT hour FROM ${AlarmDatabase.DATABASE_NAME}") + cursor.use { + assertEquals(4, it.count) + var idx = 0 + while (it.moveToNext()) { + val actual = it.getInt(it.getColumnIndexOrThrow("hour")) + assertEquals(expected[idx], actual) + idx++ + } + } } } From 152b9936d53fad898420a6a76ff0d2fbf0847756 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 00:23:53 +0900 Subject: [PATCH 22/41] =?UTF-8?q?[REFACTOR/#226]=20=EB=B0=98=EB=B3=B5=20?= =?UTF-8?q?=EC=95=8C=EB=9E=8C=20=EC=9A=94=EC=9D=BC=EC=9D=B4=20=EB=B9=84?= =?UTF-8?q?=EC=96=B4=EC=9E=88=EC=9D=84=20=EA=B2=BD=EC=9A=B0=20=EC=98=88?= =?UTF-8?q?=EC=99=B8=20=EB=B0=9C=EC=83=9D=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EA=B2=80=EC=A6=9D=20=EB=A1=9C=EC=A7=81=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt b/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt index 6f66aa51..aa99a260 100644 --- a/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt +++ b/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt @@ -56,8 +56,8 @@ class AlarmDateTimeFormatter @Inject constructor() { .map { it.toDayOfWeek() } .sortedBy { it.value } - if (selectedDaysOfWeek.isEmpty()) { // 방어 코드: 실제로는 toAlarmDays가 빈 리스트를 반환하지 않도록 설계되어야 함 - return if (todayAlarmDateTime.isAfter(now)) todayAlarmDateTime else todayAlarmDateTime.plusDays(1) + require(selectedDaysOfWeek.isNotEmpty()) { + "반복 알람은 최소 하나 이상의 요일을 선택해야 합니다. repeatDays: $repeatDays" } val currentDayOfWeek = now.dayOfWeek From f3927984d8b279b14fade8b42cc8a71b3ffb1913 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 00:27:42 +0900 Subject: [PATCH 23/41] =?UTF-8?q?[REFACTOR/#226]=20=EB=B0=98=EB=B3=B5=20?= =?UTF-8?q?=EC=95=8C=EB=9E=8C=20=EB=A1=9C=EC=A7=81=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=9E=98=EB=AA=BB=EB=90=9C=20fallback=20=EC=A0=9C=EA=B1=B0=20?= =?UTF-8?q?=EB=B0=8F=20=EB=AA=85=EC=8B=9C=EC=A0=81=20=EC=98=88=EC=99=B8=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yapp/domain/formatter/AlarmDateTimeFormatter.kt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt b/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt index aa99a260..638876ca 100644 --- a/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt +++ b/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt @@ -67,19 +67,17 @@ class AlarmDateTimeFormatter @Inject constructor() { return todayAlarmDateTime } - for (dayOffset in 0..7) { + for (dayOffset in 1..7) { val nextPotentialDate = now.toLocalDate().plusDays(dayOffset.toLong()) val dayOfWeekPotentialDate = nextPotentialDate.dayOfWeek val potentialAlarmDateTime = nextPotentialDate.atTime(alarmTime) if (selectedDaysOfWeek.contains(dayOfWeekPotentialDate)) { - if (potentialAlarmDateTime.isAfter(now)) { - return potentialAlarmDateTime - } + return potentialAlarmDateTime } } - return now.toLocalDate().plusDays(1).atTime(alarmTime) // fallback: 다음 날 같은 시간 + error("반복 알람의 다음 발생 시간을 계산할 수 없습니다. selectedDaysOfWeek: $selectedDaysOfWeek") } private fun formatDeliveryDateTimeString( From bb9f921242f60d393ad6006546646799d468d8fb Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 00:45:19 +0900 Subject: [PATCH 24/41] =?UTF-8?q?[TEST/#226]=20AlarmDateTimeFormatterTest?= =?UTF-8?q?=EC=97=90=20Clock=20=EC=A3=BC=EC=9E=85=20=EC=A0=81=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EC=97=AC=20CI=20=ED=99=98=EA=B2=BD=20=EC=8B=9C?= =?UTF-8?q?=EA=B0=84=20=EC=98=A4=EB=A5=98=20=EB=B0=A9=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yapp/domain/formatter/AlarmDateTimeFormatter.kt | 11 +++++++---- .../domain/formatter/AlarmDateTimeFormatterTest.kt | 5 ++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt b/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt index 638876ca..c3b770e5 100644 --- a/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt +++ b/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt @@ -3,6 +3,7 @@ package com.yapp.domain.formatter import com.yapp.domain.model.Alarm import com.yapp.domain.model.toAlarmDays import com.yapp.domain.model.toDayOfWeek +import java.time.Clock import java.time.Duration import java.time.LocalDateTime import java.time.LocalTime @@ -10,7 +11,9 @@ import java.time.format.DateTimeFormatter import java.time.format.DateTimeParseException import javax.inject.Inject -class AlarmDateTimeFormatter @Inject constructor() { +class AlarmDateTimeFormatter @Inject constructor( + private val clock: Clock = Clock.systemDefaultZone(), +) { companion object { private const val NO_ALARM_STRING = "NONE" @@ -39,7 +42,7 @@ class AlarmDateTimeFormatter @Inject constructor() { hour: Int, minute: Int, repeatDays: Int, - now: LocalDateTime, + now: LocalDateTime = LocalDateTime.now(clock), ): LocalDateTime { val alarmTime = LocalTime.of(hour, minute) val todayAlarmDateTime = LocalDateTime.of(now.toLocalDate(), alarmTime) @@ -83,7 +86,7 @@ class AlarmDateTimeFormatter @Inject constructor() { private fun formatDeliveryDateTimeString( deliveryDateTimeString: String, // "yyyy-MM-dd'T'HH:mm" 포맷 또는 "NONE" formats: DeliveryTimeFormats, - now: LocalDateTime, + now: LocalDateTime = LocalDateTime.now(clock), ): String { return try { if (deliveryDateTimeString.equals(NO_ALARM_STRING, ignoreCase = true)) { @@ -129,7 +132,7 @@ class AlarmDateTimeFormatter @Inject constructor() { fun getFormattedEarliestUpcomingAlarmDeliveryTime( alarms: List, formats: DeliveryTimeFormats, - now: LocalDateTime = LocalDateTime.now(), // 기본값으로 현재 시간 사용 + now: LocalDateTime = LocalDateTime.now(clock), ): String { val earliestAlarmDateTime = alarms .filter { it.isAlarmActive } diff --git a/domain/src/test/kotlin/com/yapp/domain/formatter/AlarmDateTimeFormatterTest.kt b/domain/src/test/kotlin/com/yapp/domain/formatter/AlarmDateTimeFormatterTest.kt index 307c0bd2..3b3f13ed 100644 --- a/domain/src/test/kotlin/com/yapp/domain/formatter/AlarmDateTimeFormatterTest.kt +++ b/domain/src/test/kotlin/com/yapp/domain/formatter/AlarmDateTimeFormatterTest.kt @@ -5,16 +5,19 @@ import com.yapp.domain.model.AlarmDay import org.junit.Assert.assertEquals import org.junit.Before import org.junit.Test +import java.time.Clock import java.time.LocalDateTime +import java.time.ZoneId class AlarmDateTimeFormatterTest { private lateinit var formatter: AlarmDateTimeFormatter private val fixedNow: LocalDateTime = LocalDateTime.of(2023, 10, 26, 10, 0, 0) // 목요일 + private val fixedClock: Clock = Clock.fixed(fixedNow.atZone(ZoneId.of("Asia/Seoul")).toInstant(), ZoneId.of("Asia/Seoul")) @Before fun `테스트_준비`() { - formatter = AlarmDateTimeFormatter() + formatter = AlarmDateTimeFormatter(clock = fixedClock) } private val deliveryFormats = AlarmDateTimeFormatter.DeliveryTimeFormats( From a72dfae17e07bcc40b4fd81e1a8fddd6c7053305 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 01:09:58 +0900 Subject: [PATCH 25/41] =?UTF-8?q?[FIX/#226]=20ClockModule=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EB=B0=8F=20=EC=9D=98=EC=A1=B4=EC=84=B1=20=EC=A3=BC?= =?UTF-8?q?=EC=9E=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/yapp/alarm/di/AlarmModule.kt | 4 ---- .../main/java/com/yapp/domain/di/ClockModule.kt | 16 ++++++++++++++++ .../domain/formatter/AlarmDateTimeFormatter.kt | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 domain/src/main/java/com/yapp/domain/di/ClockModule.kt diff --git a/core/alarm/src/main/java/com/yapp/alarm/di/AlarmModule.kt b/core/alarm/src/main/java/com/yapp/alarm/di/AlarmModule.kt index 63fe2c6d..d5b5d624 100644 --- a/core/alarm/src/main/java/com/yapp/alarm/di/AlarmModule.kt +++ b/core/alarm/src/main/java/com/yapp/alarm/di/AlarmModule.kt @@ -24,10 +24,6 @@ abstract class AlarmModule { ): AlarmScheduler companion object { - @Provides - @Singleton - fun provideClock(): Clock = Clock.systemDefaultZone() - @Provides @Singleton fun provideAlarmTimeCalculator(clock: Clock): AlarmTimeCalculator { diff --git a/domain/src/main/java/com/yapp/domain/di/ClockModule.kt b/domain/src/main/java/com/yapp/domain/di/ClockModule.kt new file mode 100644 index 00000000..6463f777 --- /dev/null +++ b/domain/src/main/java/com/yapp/domain/di/ClockModule.kt @@ -0,0 +1,16 @@ +package com.yapp.domain.di + +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import java.time.Clock +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +object ClockModule { + @Provides + @Singleton + fun provideClock(): Clock = Clock.systemDefaultZone() +} diff --git a/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt b/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt index c3b770e5..6fb089f9 100644 --- a/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt +++ b/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt @@ -12,7 +12,7 @@ import java.time.format.DateTimeParseException import javax.inject.Inject class AlarmDateTimeFormatter @Inject constructor( - private val clock: Clock = Clock.systemDefaultZone(), + private val clock: Clock, ) { companion object { From 8bbaea02dd49a79dbf62d6655fa15b6308412f87 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 10:31:56 +0900 Subject: [PATCH 26/41] =?UTF-8?q?[REFACTOR/#226]=20AlarmDateTimeFormatter?= =?UTF-8?q?=20:feature:home=20=EB=AA=A8=EB=93=88=EB=A1=9C=20=EC=9D=B4?= =?UTF-8?q?=EC=A0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yapp/domain/usecase/AlarmUseCase.kt | 31 ------------------- .../yapp/home/util}/AlarmDateTimeFormatter.kt | 2 +- .../home/util}/AlarmDateTimeFormatterTest.kt | 2 +- 3 files changed, 2 insertions(+), 33 deletions(-) rename {domain/src/main/java/com/yapp/domain/formatter => feature/home/src/main/java/com/yapp/home/util}/AlarmDateTimeFormatter.kt (99%) rename {domain/src/test/kotlin/com/yapp/domain/formatter => feature/home/src/test/kotlin/com/yapp/home/util}/AlarmDateTimeFormatterTest.kt (99%) diff --git a/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt b/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt index 2583abbc..86720460 100644 --- a/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt +++ b/domain/src/main/java/com/yapp/domain/usecase/AlarmUseCase.kt @@ -1,21 +1,15 @@ package com.yapp.domain.usecase import android.net.Uri -import com.yapp.domain.formatter.AlarmDateTimeFormatter import com.yapp.domain.model.Alarm -import com.yapp.domain.model.AlarmDay import com.yapp.domain.model.AlarmSound -import com.yapp.domain.model.toRepeatDays import com.yapp.domain.repository.AlarmRepository import com.yapp.domain.scheduler.AlarmScheduler import kotlinx.coroutines.flow.Flow -import java.time.LocalDateTime -import java.time.LocalTime import javax.inject.Inject class AlarmUseCase @Inject constructor( private val alarmRepository: AlarmRepository, - private val alarmDateTimeFormatter: AlarmDateTimeFormatter, private val alarmScheduler: AlarmScheduler, ) { suspend fun getAlarmSounds(): Result> = alarmRepository.getAlarmSounds() @@ -34,29 +28,4 @@ class AlarmUseCase @Inject constructor( fun scheduleAlarm(alarm: Alarm) = alarmScheduler.scheduleAlarm(alarm) fun unScheduleAlarm(alarm: Alarm) = alarmScheduler.unScheduleAlarm(alarm) - - fun getFormattedNextAlarmMessage( - currentTime: LocalTime, - formats: AlarmDateTimeFormatter.TimeDifferenceFormats, - selectedDays: Set, - now: LocalDateTime = LocalDateTime.now(), - ): String { - val repeatDaysInt = selectedDays.toRepeatDays() // Set를 Int로 변환 - val nextOccurrence = alarmDateTimeFormatter.calculateNextOccurrence( - hour = currentTime.hour, - minute = currentTime.minute, - repeatDays = repeatDaysInt, - now = now, - ) - - return alarmDateTimeFormatter.formatTimeDifference(now, nextOccurrence, formats) - } - - fun getFormattedEarliestUpcomingAlarm( - alarms: List, - formats: AlarmDateTimeFormatter.DeliveryTimeFormats, - now: LocalDateTime = LocalDateTime.now(), - ): String { - return alarmDateTimeFormatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, formats, now) - } } diff --git a/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt b/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt similarity index 99% rename from domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt rename to feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt index 6fb089f9..72eb90bb 100644 --- a/domain/src/main/java/com/yapp/domain/formatter/AlarmDateTimeFormatter.kt +++ b/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt @@ -1,4 +1,4 @@ -package com.yapp.domain.formatter +package com.yapp.home.util import com.yapp.domain.model.Alarm import com.yapp.domain.model.toAlarmDays diff --git a/domain/src/test/kotlin/com/yapp/domain/formatter/AlarmDateTimeFormatterTest.kt b/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt similarity index 99% rename from domain/src/test/kotlin/com/yapp/domain/formatter/AlarmDateTimeFormatterTest.kt rename to feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt index 3b3f13ed..b0a43e39 100644 --- a/domain/src/test/kotlin/com/yapp/domain/formatter/AlarmDateTimeFormatterTest.kt +++ b/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt @@ -1,4 +1,4 @@ -package com.yapp.domain.formatter +package com.yapp.home.util import com.yapp.domain.model.Alarm import com.yapp.domain.model.AlarmDay From b114a1db88068cfc62fd9e7cbda363dfefbf4217 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 10:34:07 +0900 Subject: [PATCH 27/41] =?UTF-8?q?[MOVE/#226]=20=ED=99=88=20=EB=AA=A8?= =?UTF-8?q?=EB=93=88=20=EB=82=B4=20=EC=95=8C=EB=9E=8C=20=EA=B4=80=EB=A0=A8?= =?UTF-8?q?=20=ED=8C=8C=EC=9D=BC=20com.yapp.alarm=20=ED=8C=A8=ED=82=A4?= =?UTF-8?q?=EC=A7=80=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interaction/action/AlarmActionContract.kt | 1 - .../main/java/com/yapp/home/HomeContract.kt | 1 - .../main/java/com/yapp/home/HomeNavGraph.kt | 2 +- .../src/main/java/com/yapp/home/HomeScreen.kt | 4 ++-- .../main/java/com/yapp/home/HomeViewModel.kt | 5 +++-- .../yapp/{ => home}/alarm/AlarmDayLabel.kt | 2 +- .../alarm/addedit/AlarmAddEditContract.kt | 2 +- .../alarm/addedit/AlarmAddEditScreen.kt | 12 +++++------ .../alarm/addedit/AlarmAddEditViewModel.kt | 21 +++++++++++++------ .../alarm/component/AlarmCheckItem.kt | 5 +++-- .../alarm/component/AlarmDayButton.kt | 2 +- .../alarm/component/AlarmListItem.kt | 2 +- .../bottomsheet/AlarmSnoozeBottomSheet.kt | 2 +- .../bottomsheet/AlarmSoundBottomSheet.kt | 2 +- .../bottomsheet/AlarmListBottomSheet.kt | 2 +- 15 files changed, 37 insertions(+), 28 deletions(-) rename feature/home/src/main/java/com/yapp/{ => home}/alarm/AlarmDayLabel.kt (94%) rename feature/home/src/main/java/com/yapp/{ => home}/alarm/addedit/AlarmAddEditContract.kt (99%) rename feature/home/src/main/java/com/yapp/{ => home}/alarm/addedit/AlarmAddEditScreen.kt (98%) rename feature/home/src/main/java/com/yapp/{ => home}/alarm/addedit/AlarmAddEditViewModel.kt (97%) rename feature/home/src/main/java/com/yapp/{ => home}/alarm/component/AlarmCheckItem.kt (91%) rename feature/home/src/main/java/com/yapp/{ => home}/alarm/component/AlarmDayButton.kt (98%) rename feature/home/src/main/java/com/yapp/{ => home}/alarm/component/AlarmListItem.kt (99%) rename feature/home/src/main/java/com/yapp/{ => home}/alarm/component/bottomsheet/AlarmSnoozeBottomSheet.kt (99%) rename feature/home/src/main/java/com/yapp/{ => home}/alarm/component/bottomsheet/AlarmSoundBottomSheet.kt (99%) diff --git a/feature/alarm-interaction/src/main/java/com/yapp/alarm/interaction/action/AlarmActionContract.kt b/feature/alarm-interaction/src/main/java/com/yapp/alarm/interaction/action/AlarmActionContract.kt index 470f89c3..ea4d0b68 100644 --- a/feature/alarm-interaction/src/main/java/com/yapp/alarm/interaction/action/AlarmActionContract.kt +++ b/feature/alarm-interaction/src/main/java/com/yapp/alarm/interaction/action/AlarmActionContract.kt @@ -1,7 +1,6 @@ package com.yapp.alarm.interaction.action import com.yapp.domain.model.Alarm -import com.yapp.ui.base.SideEffect import com.yapp.ui.base.UiState class AlarmActionContract { diff --git a/feature/home/src/main/java/com/yapp/home/HomeContract.kt b/feature/home/src/main/java/com/yapp/home/HomeContract.kt index ee3f5dd1..dee0ecef 100644 --- a/feature/home/src/main/java/com/yapp/home/HomeContract.kt +++ b/feature/home/src/main/java/com/yapp/home/HomeContract.kt @@ -3,7 +3,6 @@ package com.yapp.home import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.yapp.domain.model.Alarm -import com.yapp.ui.base.SideEffect import com.yapp.ui.base.UiState sealed class HomeContract { diff --git a/feature/home/src/main/java/com/yapp/home/HomeNavGraph.kt b/feature/home/src/main/java/com/yapp/home/HomeNavGraph.kt index b044e9de..5e5fae4a 100644 --- a/feature/home/src/main/java/com/yapp/home/HomeNavGraph.kt +++ b/feature/home/src/main/java/com/yapp/home/HomeNavGraph.kt @@ -4,10 +4,10 @@ import androidx.compose.material3.SnackbarHostState import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.composable import androidx.navigation.compose.navigation -import com.yapp.alarm.addedit.AlarmAddEditRoute import com.yapp.common.navigation.OrbitNavigator import com.yapp.common.navigation.route.HomeBaseRoute import com.yapp.common.navigation.route.HomeDestination +import com.yapp.home.alarm.addedit.AlarmAddEditRoute const val ADD_ALARM_RESULT_KEY = "addAlarmResult" const val UPDATE_ALARM_RESULT_KEY = "updateAlarmResult" diff --git a/feature/home/src/main/java/com/yapp/home/HomeScreen.kt b/feature/home/src/main/java/com/yapp/home/HomeScreen.kt index b9750431..19d45307 100644 --- a/feature/home/src/main/java/com/yapp/home/HomeScreen.kt +++ b/feature/home/src/main/java/com/yapp/home/HomeScreen.kt @@ -64,11 +64,11 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.zIndex import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.yapp.alarm.component.AlarmListItem -import com.yapp.alarm.component.AlarmListItemMenu import com.yapp.common.navigation.OrbitNavigator import com.yapp.designsystem.theme.OrbitTheme import com.yapp.domain.model.Alarm +import com.yapp.home.alarm.component.AlarmListItem +import com.yapp.home.alarm.component.AlarmListItemMenu import com.yapp.home.component.bottomsheet.AlarmListBottomSheet import com.yapp.ui.component.dialog.OrbitDialog import com.yapp.ui.component.lottie.LottieAnimation diff --git a/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt b/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt index 0fdf6786..ae347cea 100644 --- a/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt +++ b/feature/home/src/main/java/com/yapp/home/HomeViewModel.kt @@ -3,11 +3,11 @@ package com.yapp.home import android.util.Log import androidx.lifecycle.ViewModel import com.yapp.common.util.ResourceProvider -import com.yapp.domain.formatter.AlarmDateTimeFormatter import com.yapp.domain.model.Alarm import com.yapp.domain.repository.FortuneRepository import com.yapp.domain.repository.UserInfoRepository import com.yapp.domain.usecase.AlarmUseCase +import com.yapp.home.util.AlarmDateTimeFormatter import dagger.hilt.android.lifecycle.HiltViewModel import feature.home.R import kotlinx.coroutines.flow.combine @@ -28,6 +28,7 @@ import javax.inject.Inject class HomeViewModel @Inject constructor( private val alarmUseCase: AlarmUseCase, private val resourceProvider: ResourceProvider, + private val alarmDateTimeFormatter: AlarmDateTimeFormatter, private val fortuneRepository: FortuneRepository, private val userInfoRepository: UserInfoRepository, ) : ViewModel(), ContainerHost { @@ -323,7 +324,7 @@ class HomeViewModel @Inject constructor( otherYear = resourceProvider.getString(R.string.home_fortune_delivery_other_year, "%s"), ) - val formattedTime = alarmUseCase.getFormattedEarliestUpcomingAlarm( + val formattedTime = alarmDateTimeFormatter.getFormattedEarliestUpcomingAlarmDeliveryTime( alarms = alarms, formats = deliveryTimeFormats, ) diff --git a/feature/home/src/main/java/com/yapp/alarm/AlarmDayLabel.kt b/feature/home/src/main/java/com/yapp/home/alarm/AlarmDayLabel.kt similarity index 94% rename from feature/home/src/main/java/com/yapp/alarm/AlarmDayLabel.kt rename to feature/home/src/main/java/com/yapp/home/alarm/AlarmDayLabel.kt index ee2e1b86..69acb835 100644 --- a/feature/home/src/main/java/com/yapp/alarm/AlarmDayLabel.kt +++ b/feature/home/src/main/java/com/yapp/home/alarm/AlarmDayLabel.kt @@ -1,4 +1,4 @@ -package com.yapp.alarm +package com.yapp.home.alarm import com.yapp.domain.model.AlarmDay import feature.home.R diff --git a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditContract.kt b/feature/home/src/main/java/com/yapp/home/alarm/addedit/AlarmAddEditContract.kt similarity index 99% rename from feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditContract.kt rename to feature/home/src/main/java/com/yapp/home/alarm/addedit/AlarmAddEditContract.kt index 4617c685..ac629e17 100644 --- a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditContract.kt +++ b/feature/home/src/main/java/com/yapp/home/alarm/addedit/AlarmAddEditContract.kt @@ -1,4 +1,4 @@ -package com.yapp.alarm.addedit +package com.yapp.home.alarm.addedit import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp diff --git a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditScreen.kt b/feature/home/src/main/java/com/yapp/home/alarm/addedit/AlarmAddEditScreen.kt similarity index 98% rename from feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditScreen.kt rename to feature/home/src/main/java/com/yapp/home/alarm/addedit/AlarmAddEditScreen.kt index 1e9a2c88..895d556f 100644 --- a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditScreen.kt +++ b/feature/home/src/main/java/com/yapp/home/alarm/addedit/AlarmAddEditScreen.kt @@ -1,4 +1,4 @@ -package com.yapp.alarm.addedit +package com.yapp.home.alarm.addedit import android.net.Uri import androidx.activity.compose.BackHandler @@ -48,11 +48,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.yapp.alarm.component.AlarmCheckItem -import com.yapp.alarm.component.AlarmDayButton -import com.yapp.alarm.component.bottomsheet.AlarmSnoozeBottomSheet -import com.yapp.alarm.component.bottomsheet.AlarmSoundBottomSheet -import com.yapp.alarm.getLabelStringRes import com.yapp.common.navigation.OrbitNavigator import com.yapp.designsystem.theme.OrbitTheme import com.yapp.domain.model.AlarmDay @@ -61,6 +56,11 @@ import com.yapp.domain.model.MissionType import com.yapp.home.ADD_ALARM_RESULT_KEY import com.yapp.home.DELETE_ALARM_RESULT_KEY import com.yapp.home.UPDATE_ALARM_RESULT_KEY +import com.yapp.home.alarm.component.AlarmCheckItem +import com.yapp.home.alarm.component.AlarmDayButton +import com.yapp.home.alarm.component.bottomsheet.AlarmSnoozeBottomSheet +import com.yapp.home.alarm.component.bottomsheet.AlarmSoundBottomSheet +import com.yapp.home.alarm.getLabelStringRes import com.yapp.ui.component.button.OrbitButton import com.yapp.ui.component.dialog.OrbitDialog import com.yapp.ui.component.lottie.LottieAnimation diff --git a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt b/feature/home/src/main/java/com/yapp/home/alarm/addedit/AlarmAddEditViewModel.kt similarity index 97% rename from feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt rename to feature/home/src/main/java/com/yapp/home/alarm/addedit/AlarmAddEditViewModel.kt index 7771dfce..8fa864c5 100644 --- a/feature/home/src/main/java/com/yapp/alarm/addedit/AlarmAddEditViewModel.kt +++ b/feature/home/src/main/java/com/yapp/home/alarm/addedit/AlarmAddEditViewModel.kt @@ -1,4 +1,4 @@ -package com.yapp.alarm.addedit +package com.yapp.home.alarm.addedit import android.util.Log import androidx.compose.ui.unit.dp @@ -7,14 +7,15 @@ import androidx.lifecycle.ViewModel import com.yapp.analytics.AnalyticsEvent import com.yapp.analytics.AnalyticsHelper import com.yapp.common.util.ResourceProvider -import com.yapp.domain.formatter.AlarmDateTimeFormatter import com.yapp.domain.model.Alarm import com.yapp.domain.model.AlarmDay import com.yapp.domain.model.AlarmSound import com.yapp.domain.model.copyFrom import com.yapp.domain.model.toAlarmDayNames import com.yapp.domain.model.toAlarmDays +import com.yapp.domain.model.toRepeatDays import com.yapp.domain.usecase.AlarmUseCase +import com.yapp.home.util.AlarmDateTimeFormatter import com.yapp.media.haptic.HapticFeedbackManager import com.yapp.media.haptic.HapticType import dagger.hilt.android.lifecycle.HiltViewModel @@ -35,6 +36,7 @@ class AlarmAddEditViewModel @Inject constructor( private val analyticsHelper: AnalyticsHelper, private val alarmUseCase: AlarmUseCase, private val resourceProvider: ResourceProvider, + private val alarmDateTimeFormatter: AlarmDateTimeFormatter, private val hapticFeedbackManager: HapticFeedbackManager, savedStateHandle: SavedStateHandle, ) : ViewModel(), ContainerHost { @@ -500,16 +502,23 @@ class AlarmAddEditViewModel @Inject constructor( } private fun getAlarmMessage(currentTime: LocalTime, selectedDays: Set): String { - return alarmUseCase.getFormattedNextAlarmMessage( - currentTime = currentTime, + val repeatDays = selectedDays.toRepeatDays() + val nextOccurrence = alarmDateTimeFormatter.calculateNextOccurrence( + hour = currentTime.hour, + minute = currentTime.minute, + repeatDays = repeatDays, + now = LocalDateTime.now(), + ) + + return alarmDateTimeFormatter.formatTimeDifference( + baseTime = LocalDateTime.now(), + futureTime = nextOccurrence, formats = AlarmDateTimeFormatter.TimeDifferenceFormats( daysHoursMinutesFormat = resourceProvider.getString(R.string.alarm_remaining_time_days_hours), hoursMinutesFormat = resourceProvider.getString(R.string.alarm_remaining_time_hours_minutes), minutesFormat = resourceProvider.getString(R.string.alarm_remaining_time_minutes_only), soonFormat = resourceProvider.getString(R.string.alarm_remaining_time_soon), ), - selectedDays = selectedDays, - now = LocalDateTime.now(), ) } } diff --git a/feature/home/src/main/java/com/yapp/alarm/component/AlarmCheckItem.kt b/feature/home/src/main/java/com/yapp/home/alarm/component/AlarmCheckItem.kt similarity index 91% rename from feature/home/src/main/java/com/yapp/alarm/component/AlarmCheckItem.kt rename to feature/home/src/main/java/com/yapp/home/alarm/component/AlarmCheckItem.kt index 900d7e96..905f9605 100644 --- a/feature/home/src/main/java/com/yapp/alarm/component/AlarmCheckItem.kt +++ b/feature/home/src/main/java/com/yapp/home/alarm/component/AlarmCheckItem.kt @@ -1,4 +1,4 @@ -package com.yapp.alarm.component +package com.yapp.home.alarm.component import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement @@ -13,6 +13,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.yapp.designsystem.theme.OrbitTheme +import core.designsystem.R @Composable internal fun AlarmCheckItem( @@ -30,7 +31,7 @@ internal fun AlarmCheckItem( verticalAlignment = Alignment.CenterVertically, ) { Icon( - painter = painterResource(id = core.designsystem.R.drawable.ic_check), + painter = painterResource(id = R.drawable.ic_check), contentDescription = "Check", tint = if (isPressed) OrbitTheme.colors.main else OrbitTheme.colors.gray_400, ) diff --git a/feature/home/src/main/java/com/yapp/alarm/component/AlarmDayButton.kt b/feature/home/src/main/java/com/yapp/home/alarm/component/AlarmDayButton.kt similarity index 98% rename from feature/home/src/main/java/com/yapp/alarm/component/AlarmDayButton.kt rename to feature/home/src/main/java/com/yapp/home/alarm/component/AlarmDayButton.kt index 4172b075..9e76a68c 100644 --- a/feature/home/src/main/java/com/yapp/alarm/component/AlarmDayButton.kt +++ b/feature/home/src/main/java/com/yapp/home/alarm/component/AlarmDayButton.kt @@ -1,4 +1,4 @@ -package com.yapp.alarm.component +package com.yapp.home.alarm.component import androidx.compose.foundation.background import androidx.compose.foundation.border diff --git a/feature/home/src/main/java/com/yapp/alarm/component/AlarmListItem.kt b/feature/home/src/main/java/com/yapp/home/alarm/component/AlarmListItem.kt similarity index 99% rename from feature/home/src/main/java/com/yapp/alarm/component/AlarmListItem.kt rename to feature/home/src/main/java/com/yapp/home/alarm/component/AlarmListItem.kt index b97afc44..38a13ff4 100644 --- a/feature/home/src/main/java/com/yapp/alarm/component/AlarmListItem.kt +++ b/feature/home/src/main/java/com/yapp/home/alarm/component/AlarmListItem.kt @@ -1,4 +1,4 @@ -package com.yapp.alarm.component +package com.yapp.home.alarm.component import android.os.Handler import android.os.Looper diff --git a/feature/home/src/main/java/com/yapp/alarm/component/bottomsheet/AlarmSnoozeBottomSheet.kt b/feature/home/src/main/java/com/yapp/home/alarm/component/bottomsheet/AlarmSnoozeBottomSheet.kt similarity index 99% rename from feature/home/src/main/java/com/yapp/alarm/component/bottomsheet/AlarmSnoozeBottomSheet.kt rename to feature/home/src/main/java/com/yapp/home/alarm/component/bottomsheet/AlarmSnoozeBottomSheet.kt index 8e2b9109..16c1185d 100644 --- a/feature/home/src/main/java/com/yapp/alarm/component/bottomsheet/AlarmSnoozeBottomSheet.kt +++ b/feature/home/src/main/java/com/yapp/home/alarm/component/bottomsheet/AlarmSnoozeBottomSheet.kt @@ -1,4 +1,4 @@ -package com.yapp.alarm.component.bottomsheet +package com.yapp.home.alarm.component.bottomsheet import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement diff --git a/feature/home/src/main/java/com/yapp/alarm/component/bottomsheet/AlarmSoundBottomSheet.kt b/feature/home/src/main/java/com/yapp/home/alarm/component/bottomsheet/AlarmSoundBottomSheet.kt similarity index 99% rename from feature/home/src/main/java/com/yapp/alarm/component/bottomsheet/AlarmSoundBottomSheet.kt rename to feature/home/src/main/java/com/yapp/home/alarm/component/bottomsheet/AlarmSoundBottomSheet.kt index 04049c3f..e98fe962 100644 --- a/feature/home/src/main/java/com/yapp/alarm/component/bottomsheet/AlarmSoundBottomSheet.kt +++ b/feature/home/src/main/java/com/yapp/home/alarm/component/bottomsheet/AlarmSoundBottomSheet.kt @@ -1,4 +1,4 @@ -package com.yapp.alarm.component.bottomsheet +package com.yapp.home.alarm.component.bottomsheet import android.net.Uri import androidx.compose.foundation.background diff --git a/feature/home/src/main/java/com/yapp/home/component/bottomsheet/AlarmListBottomSheet.kt b/feature/home/src/main/java/com/yapp/home/component/bottomsheet/AlarmListBottomSheet.kt index ceb9088e..9aaec0b3 100644 --- a/feature/home/src/main/java/com/yapp/home/component/bottomsheet/AlarmListBottomSheet.kt +++ b/feature/home/src/main/java/com/yapp/home/component/bottomsheet/AlarmListBottomSheet.kt @@ -48,10 +48,10 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.yapp.alarm.component.AlarmListItem import com.yapp.designsystem.theme.OrbitTheme import com.yapp.domain.model.Alarm import com.yapp.home.HomeContract +import com.yapp.home.alarm.component.AlarmListItem import com.yapp.home.component.AlarmListDropDownMenu import com.yapp.home.component.AlarmSortDropDownMenu import com.yapp.ui.component.checkbox.OrbitCheckBox From ecb5d2ad73fd904d0298883147617ce24140beba Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 10:34:29 +0900 Subject: [PATCH 28/41] =?UTF-8?q?[MOVE/#226]=20ClockModule=EC=9D=84=20comm?= =?UTF-8?q?on=20=EB=AA=A8=EB=93=88=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/alarm/build.gradle.kts | 1 + .../common/src/main/java/com/yapp/common}/di/ClockModule.kt | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) rename {domain/src/main/java/com/yapp/domain => core/common/src/main/java/com/yapp/common}/di/ClockModule.kt (92%) diff --git a/core/alarm/build.gradle.kts b/core/alarm/build.gradle.kts index 2ea1ec36..c5ab38e0 100644 --- a/core/alarm/build.gradle.kts +++ b/core/alarm/build.gradle.kts @@ -11,6 +11,7 @@ android { dependencies { implementation(projects.core.analytics) + implementation(projects.core.common) implementation(projects.core.designsystem) implementation(projects.core.media) implementation(projects.domain) diff --git a/domain/src/main/java/com/yapp/domain/di/ClockModule.kt b/core/common/src/main/java/com/yapp/common/di/ClockModule.kt similarity index 92% rename from domain/src/main/java/com/yapp/domain/di/ClockModule.kt rename to core/common/src/main/java/com/yapp/common/di/ClockModule.kt index 6463f777..50158f3a 100644 --- a/domain/src/main/java/com/yapp/domain/di/ClockModule.kt +++ b/core/common/src/main/java/com/yapp/common/di/ClockModule.kt @@ -1,4 +1,4 @@ -package com.yapp.domain.di +package com.yapp.common.di import dagger.Module import dagger.Provides @@ -10,6 +10,7 @@ import javax.inject.Singleton @Module @InstallIn(SingletonComponent::class) object ClockModule { + @Provides @Singleton fun provideClock(): Clock = Clock.systemDefaultZone() From acf0c82d38063dfeec1e47d97c789d4efe73904c Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 11:14:30 +0900 Subject: [PATCH 29/41] =?UTF-8?q?[TEST/#226]=20AlarmDateTimeFormatter=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=EC=9A=A9=20Locale=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/util/AlarmDateTimeFormatterTest.kt | 108 ++++++++++++++---- 1 file changed, 87 insertions(+), 21 deletions(-) diff --git a/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt b/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt index b0a43e39..86c3d9a4 100644 --- a/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt +++ b/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt @@ -8,6 +8,8 @@ import org.junit.Test import java.time.Clock import java.time.LocalDateTime import java.time.ZoneId +import java.time.format.DateTimeFormatter +import java.util.Locale class AlarmDateTimeFormatterTest { @@ -15,11 +17,17 @@ class AlarmDateTimeFormatterTest { private val fixedNow: LocalDateTime = LocalDateTime.of(2023, 10, 26, 10, 0, 0) // 목요일 private val fixedClock: Clock = Clock.fixed(fixedNow.atZone(ZoneId.of("Asia/Seoul")).toInstant(), ZoneId.of("Asia/Seoul")) + private val testLocale: Locale = Locale.KOREA + @Before fun `테스트_준비`() { formatter = AlarmDateTimeFormatter(clock = fixedClock) } + private fun getLocalizedFormatter(pattern: String): DateTimeFormatter { + return DateTimeFormatter.ofPattern(pattern).withLocale(testLocale) + } + private val deliveryFormats = AlarmDateTimeFormatter.DeliveryTimeFormats( noAlarm = "받을 수 있는 운세가 없어요", today = "%1\$s 도착", @@ -36,8 +44,12 @@ class AlarmDateTimeFormatterTest { val alarms = listOf( Alarm(id = 1, hour = 14, minute = 0, repeatDays = 0, isAlarmActive = false) ) - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) - assertEquals("받을 수 있는 운세가 없어요", result) + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( + alarms, + deliveryFormats, + fixedNow + ) + assertEquals(deliveryFormats.noAlarm, result) } @Test @@ -47,8 +59,16 @@ class AlarmDateTimeFormatterTest { ) // deliveryFormats.today = "%1$s 도착" // deliveryFormats.todayTimePattern = "a h:mm" -> "오후 2:30" - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) - assertEquals("오후 2:30 도착", result) + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( + alarms, + deliveryFormats, + fixedNow + ) + + val expectedAlarmTime = LocalDateTime.of(2023, 10, 26, 14, 30) + val formattedExpectedTime = + expectedAlarmTime.format(getLocalizedFormatter(deliveryFormats.todayTimePattern)) + assertEquals(String.format(deliveryFormats.today, formattedExpectedTime), result) } @Test @@ -58,8 +78,16 @@ class AlarmDateTimeFormatterTest { ) // deliveryFormats.tomorrow = "내일 %1$s 도착" // deliveryFormats.todayTimePattern = "a h:mm" -> "오전 8:00" - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) - assertEquals("내일 오전 8:00 도착", result) + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( + alarms, + deliveryFormats, + fixedNow + ) + + val expectedAlarmTime = fixedNow.toLocalDate().plusDays(1).atTime(8, 0) + val formattedExpectedTime = + expectedAlarmTime.format(getLocalizedFormatter(deliveryFormats.todayTimePattern)) // 내일이지만 시간 포맷은 todayTimePattern 사용 + assertEquals(String.format(deliveryFormats.tomorrow, formattedExpectedTime), result) } @Test @@ -77,8 +105,16 @@ class AlarmDateTimeFormatterTest { ) ) - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarmsForThisYearTest, deliveryFormats, fixedNow) - assertEquals("10월 29일 오후 2:30 도착", result) // 예상 결과 수정 + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( + alarmsForThisYearTest, + deliveryFormats, + fixedNow + ) + + val expectedAlarmTime = LocalDateTime.of(2023, 10, 29, 14, 30) + val formattedExpectedTime = + expectedAlarmTime.format(getLocalizedFormatter(deliveryFormats.thisYearDatePattern)) + assertEquals(String.format(deliveryFormats.thisYear, formattedExpectedTime), result) } @Test @@ -101,12 +137,19 @@ class AlarmDateTimeFormatterTest { // calculateNextOccurrence(9, 0, 0, nowInLate2023)가 호출됨. // nowInLate2023 (2023-12-31 10:00) 기준으로, 알람 시간 09:00은 과거이므로, // 다음 날인 2024-01-01 09:00이 반환되어야 함. - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarmsForNewYear, deliveryFormats, nowInLate2023) + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( + alarmsForNewYear, + deliveryFormats, + nowInLate2023 + ) // deliveryFormats.otherYear = "%1$s 도착" // deliveryFormats.otherYearDatePattern = "yy년 M월 d일 a h:mm" // nowInLate2023의 year (2023)와 결과 날짜의 year (2024)가 다르므로 "otherYear" 포맷 사용 - assertEquals("24년 1월 1일 오전 9:00 도착", result) + val expectedAlarmTime = LocalDateTime.of(2024, 1, 1, 9, 0) + val formattedExpectedTime = + expectedAlarmTime.format(getLocalizedFormatter(deliveryFormats.otherYearDatePattern)) + assertEquals(String.format(deliveryFormats.otherYear, formattedExpectedTime), result) } @Test @@ -117,17 +160,28 @@ class AlarmDateTimeFormatterTest { Alarm(id = 3, hour = 9, minute = 0, repeatDays = 0, isAlarmActive = false), Alarm(id = 4, hour = 8, minute = 0, repeatDays = AlarmDay.FRI.bitValue, isAlarmActive = true) // 내일 08:00 ) - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) - assertEquals("오후 12:00 도착", result) + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( + alarms, + deliveryFormats, + fixedNow + ) + + val expectedAlarmTime = LocalDateTime.of(2023, 10, 26, 12, 0) + val formattedExpectedTime = + expectedAlarmTime.format(getLocalizedFormatter(deliveryFormats.todayTimePattern)) + assertEquals(String.format(deliveryFormats.today, formattedExpectedTime), result) } @Test fun `날짜시간문자열_포맷팅_잘못된_날짜형식이면_수정된_알람없음_반환`() { - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(emptyList(), deliveryFormats, fixedNow) - assertEquals("받을 수 있는 운세가 없어요", result) + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( + emptyList(), + deliveryFormats, + fixedNow + ) + assertEquals(deliveryFormats.noAlarm, result) } - private val timeFormats = AlarmDateTimeFormatter.TimeDifferenceFormats( daysHoursMinutesFormat = "%1\$d일 %2\$d시간 %3\$d분 후에 울려요", hoursMinutesFormat = "%1\$d시간 %2\$d분 후에 울려요", @@ -137,34 +191,46 @@ class AlarmDateTimeFormatterTest { @Test fun `시간차이_포맷팅_차이없거나_과거면_곧울려요_반환`() { - assertEquals(timeFormats.soonFormat, formatter.formatTimeDifference(fixedNow, fixedNow, timeFormats)) - assertEquals(timeFormats.soonFormat, formatter.formatTimeDifference(fixedNow, fixedNow.minusMinutes(1), timeFormats)) + assertEquals( + timeFormats.soonFormat, + formatter.formatTimeDifference(fixedNow, fixedNow, timeFormats) + ) + assertEquals( + timeFormats.soonFormat, + formatter.formatTimeDifference(fixedNow, fixedNow.minusMinutes(1), timeFormats) + ) } @Test fun `시간차이_포맷팅_1분미만_차이면_곧울려요_반환`() { val future = fixedNow.plusSeconds(30) - assertEquals(timeFormats.soonFormat, formatter.formatTimeDifference(fixedNow, future, timeFormats)) + assertEquals( + timeFormats.soonFormat, + formatter.formatTimeDifference(fixedNow, future, timeFormats) + ) } @Test fun `시간차이_포맷팅_25분_차이면_정확한_문자열_반환`() { val futureTime = fixedNow.plusMinutes(25) val result = formatter.formatTimeDifference(fixedNow, futureTime, timeFormats) - assertEquals("25분 후에 울려요", result) + assertEquals(String.format(testLocale, timeFormats.minutesFormat, 25L), result) } @Test fun `시간차이_포맷팅_70분_차이면_정확한_문자열_반환`() { val futureTime = fixedNow.plusMinutes(70) // 1시간 10분 val result = formatter.formatTimeDifference(fixedNow, futureTime, timeFormats) - assertEquals("1시간 10분 후에 울려요", result) + assertEquals(String.format(testLocale, timeFormats.hoursMinutesFormat, 1L, 10L), result) } @Test fun `시간차이_포맷팅_1일_1시간_5분_차이면_정확한_문자열_반환`() { val futureTime = fixedNow.plusDays(1).plusHours(1).plusMinutes(5) val result = formatter.formatTimeDifference(fixedNow, futureTime, timeFormats) - assertEquals("1일 1시간 5분 후에 울려요", result) + assertEquals( + String.format(testLocale, timeFormats.daysHoursMinutesFormat, 1L, 1L, 5L), + result + ) } } From fc1702be6f540ed0e684ef674ba48a77787d8985 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 11:20:24 +0900 Subject: [PATCH 30/41] =?UTF-8?q?[FEAT/#226]=20AlarmDateTimeFormatter=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=20=EB=B0=9C=EC=83=9D=20=EC=8B=9C=20=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt b/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt index 72eb90bb..1e0e0134 100644 --- a/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt +++ b/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt @@ -1,5 +1,6 @@ package com.yapp.home.util +import android.util.Log import com.yapp.domain.model.Alarm import com.yapp.domain.model.toAlarmDays import com.yapp.domain.model.toDayOfWeek @@ -123,8 +124,10 @@ class AlarmDateTimeFormatter @Inject constructor( } } } catch (e: DateTimeParseException) { + Log.e("AlarmDateTimeFormatter", "Invalid date format: $deliveryDateTimeString", e) formats.noAlarm } catch (e: Exception) { + Log.e("AlarmDateTimeFormatter", "Error formatting delivery date time: $deliveryDateTimeString", e) formats.noAlarm } } @@ -140,6 +143,7 @@ class AlarmDateTimeFormatter @Inject constructor( try { calculateNextOccurrence(alarm.hour, alarm.minute, alarm.repeatDays, now) } catch (e: Exception) { + Log.e("AlarmDateTimeFormatter", "Error calculating next occurrence for alarm: $alarm", e) null // 예외 발생 시 null로 처리 } } From 06107dde9898914df75a89b5bd7e467becac8fce Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 11:26:41 +0900 Subject: [PATCH 31/41] =?UTF-8?q?[REFACTOR/#226]=20formatTimeDifference=20?= =?UTF-8?q?=EC=A4=91=EB=B3=B5=20=EA=B2=80=EC=82=AC=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt b/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt index 1e0e0134..29277e10 100644 --- a/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt +++ b/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt @@ -166,12 +166,8 @@ class AlarmDateTimeFormatter @Inject constructor( } val duration = Duration.between(baseTime, futureTime) - - if (duration.toNanos() <= 0) { - return formats.soonFormat - } - val totalMinutes = duration.toMinutes() + if (totalMinutes < 1) { return formats.soonFormat } From 36bcb485c2260b7fd5d21ab52aa4a80989b5491b Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 11:46:33 +0900 Subject: [PATCH 32/41] =?UTF-8?q?[FEAT/#226]=20AlarmDateTimeFormatter=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=9A=A9=EC=9D=B4=EC=84=B1?= =?UTF-8?q?=EC=9D=84=20=EC=9C=84=ED=95=9C=20Locale=20=EC=A3=BC=EC=9E=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yapp/common/di/LocaleModule.kt | 17 ++++++ .../yapp/home/util/AlarmDateTimeFormatter.kt | 59 +++++++++++++++---- .../home/util/AlarmDateTimeFormatterTest.kt | 5 +- 3 files changed, 69 insertions(+), 12 deletions(-) create mode 100644 core/common/src/main/java/com/yapp/common/di/LocaleModule.kt diff --git a/core/common/src/main/java/com/yapp/common/di/LocaleModule.kt b/core/common/src/main/java/com/yapp/common/di/LocaleModule.kt new file mode 100644 index 00000000..839a5a8f --- /dev/null +++ b/core/common/src/main/java/com/yapp/common/di/LocaleModule.kt @@ -0,0 +1,17 @@ +package com.yapp.common.di + +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import java.util.Locale +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +object LocaleModule { + + @Provides + @Singleton + fun provideLocale(): Locale = Locale.getDefault() +} diff --git a/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt b/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt index 29277e10..4bb7785a 100644 --- a/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt +++ b/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt @@ -10,10 +10,12 @@ import java.time.LocalDateTime import java.time.LocalTime import java.time.format.DateTimeFormatter import java.time.format.DateTimeParseException +import java.util.Locale import javax.inject.Inject class AlarmDateTimeFormatter @Inject constructor( private val clock: Clock, + private val displayLocale: Locale, ) { companion object { @@ -94,8 +96,12 @@ class AlarmDateTimeFormatter @Inject constructor( return formats.noAlarm } - val inputFormatter = DateTimeFormatter.ofPattern(DATE_TIME_FORMAT) - val alarmOccurrenceDateTime = LocalDateTime.parse(deliveryDateTimeString, inputFormatter) // 변수명 inputDateTime -> alarmOccurrenceDateTime + val inputFormatter = + DateTimeFormatter.ofPattern(DATE_TIME_FORMAT).withLocale(displayLocale) + val alarmOccurrenceDateTime = LocalDateTime.parse( + deliveryDateTimeString, + inputFormatter, + ) // 변수명 inputDateTime -> alarmOccurrenceDateTime val today = now.toLocalDate() val tomorrow = today.plusDays(1) val formattedTimeOrDateTime: String @@ -103,23 +109,35 @@ class AlarmDateTimeFormatter @Inject constructor( when { // 1. 년도가 현재 년도와 다르면 'otherYear' 포맷 적용 alarmOccurrenceDateTime.year != now.year -> { - formattedTimeOrDateTime = alarmOccurrenceDateTime.format(DateTimeFormatter.ofPattern(formats.otherYearDatePattern)) + formattedTimeOrDateTime = alarmOccurrenceDateTime.format( + DateTimeFormatter.ofPattern(formats.otherYearDatePattern) + .withLocale(displayLocale), + ) return String.format(formats.otherYear, formattedTimeOrDateTime) } // 2. (년도가 같고) 날짜가 오늘이면 'today' 포맷 적용 alarmOccurrenceDateTime.toLocalDate() == today -> { - formattedTimeOrDateTime = alarmOccurrenceDateTime.format(DateTimeFormatter.ofPattern(formats.todayTimePattern)) + formattedTimeOrDateTime = alarmOccurrenceDateTime.format( + DateTimeFormatter.ofPattern(formats.todayTimePattern) + .withLocale(displayLocale), + ) return String.format(formats.today, formattedTimeOrDateTime) } // 3. (년도가 같고) 날짜가 내일이면 'tomorrow' 포맷 적용 alarmOccurrenceDateTime.toLocalDate() == tomorrow -> { // 내일은 특별히 시간만 표시 (요구사항에 따라 변경 가능) - formattedTimeOrDateTime = alarmOccurrenceDateTime.format(DateTimeFormatter.ofPattern(formats.todayTimePattern)) + formattedTimeOrDateTime = alarmOccurrenceDateTime.format( + DateTimeFormatter.ofPattern(formats.todayTimePattern) + .withLocale(displayLocale), + ) return String.format(formats.tomorrow, formattedTimeOrDateTime) } // 4. 그 외의 경우 (년도가 같고, 오늘이나 내일이 아닌 다른 날) 'thisYear' 포맷 적용 else -> { - formattedTimeOrDateTime = alarmOccurrenceDateTime.format(DateTimeFormatter.ofPattern(formats.thisYearDatePattern)) + formattedTimeOrDateTime = alarmOccurrenceDateTime.format( + DateTimeFormatter.ofPattern(formats.thisYearDatePattern) + .withLocale(displayLocale), + ) return String.format(formats.thisYear, formattedTimeOrDateTime) } } @@ -127,7 +145,11 @@ class AlarmDateTimeFormatter @Inject constructor( Log.e("AlarmDateTimeFormatter", "Invalid date format: $deliveryDateTimeString", e) formats.noAlarm } catch (e: Exception) { - Log.e("AlarmDateTimeFormatter", "Error formatting delivery date time: $deliveryDateTimeString", e) + Log.e( + "AlarmDateTimeFormatter", + "Error formatting delivery date time: $deliveryDateTimeString", + e, + ) formats.noAlarm } } @@ -143,14 +165,18 @@ class AlarmDateTimeFormatter @Inject constructor( try { calculateNextOccurrence(alarm.hour, alarm.minute, alarm.repeatDays, now) } catch (e: Exception) { - Log.e("AlarmDateTimeFormatter", "Error calculating next occurrence for alarm: $alarm", e) + Log.e( + "AlarmDateTimeFormatter", + "Error calculating next occurrence for alarm: $alarm", + e, + ) null // 예외 발생 시 null로 처리 } } .minOrNull() val deliveryDateTimeString = earliestAlarmDateTime?.format( - DateTimeFormatter.ofPattern(DATE_TIME_FORMAT), + DateTimeFormatter.ofPattern(DATE_TIME_FORMAT).withLocale(displayLocale), ) ?: NO_ALARM_STRING return formatDeliveryDateTimeString(deliveryDateTimeString, formats, now) @@ -177,8 +203,19 @@ class AlarmDateTimeFormatter @Inject constructor( val remainingMinutes = duration.toMinutes() % 60 return when { - days > 0 -> String.format(formats.daysHoursMinutesFormat, days, remainingHours, remainingMinutes) - remainingHours > 0 -> String.format(formats.hoursMinutesFormat, remainingHours, remainingMinutes) + days > 0 -> String.format( + formats.daysHoursMinutesFormat, + days, + remainingHours, + remainingMinutes, + ) + + remainingHours > 0 -> String.format( + formats.hoursMinutesFormat, + remainingHours, + remainingMinutes, + ) + else -> String.format(formats.minutesFormat, remainingMinutes) } } diff --git a/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt b/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt index 86c3d9a4..64ea1676 100644 --- a/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt +++ b/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt @@ -21,7 +21,10 @@ class AlarmDateTimeFormatterTest { @Before fun `테스트_준비`() { - formatter = AlarmDateTimeFormatter(clock = fixedClock) + formatter = AlarmDateTimeFormatter( + clock = fixedClock, + displayLocale = testLocale, + ) } private fun getLocalizedFormatter(pattern: String): DateTimeFormatter { From 57d2da9ab67897c44d8cf802694e61b1d4eab6e8 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Thu, 17 Jul 2025 11:52:04 +0900 Subject: [PATCH 33/41] =?UTF-8?q?[FEAT/#226]=20=EC=9D=98=EC=A1=B4=EC=84=B1?= =?UTF-8?q?=20=EA=B7=B8=EB=9E=98=ED=94=84=20=EB=AA=A8=EB=93=88=20=EC=9C=A0?= =?UTF-8?q?=ED=98=95=EB=B3=84=20=EC=83=89=EC=83=81=20=EA=B5=AC=EB=B6=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/dependencyGraph.gradle | 53 +++++++++++++++++++++++++--------- project.dot.png | Bin 441599 -> 449830 bytes 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/gradle/dependencyGraph.gradle b/gradle/dependencyGraph.gradle index 86641c1e..6f117039 100644 --- a/gradle/dependencyGraph.gradle +++ b/gradle/dependencyGraph.gradle @@ -7,7 +7,7 @@ tasks.register('projectDependencyGraph') { dot << 'digraph {\n' dot << " graph [label=\"${rootProject.name}\\n \",labelloc=t,fontsize=30,ranksep=1.4];\n" - dot << ' node [style=filled, fillcolor="#bbbbbb"];\n' + dot << ' node [style=filled, fillcolor="#bbbbbb"];\n' // 기본 노드 색상 dot << ' rankdir=TB;\n' def rootProjects = [] @@ -27,27 +27,41 @@ tasks.register('projectDependencyGraph') { def androidDynamicFeatureProjects = [] def javaProjects = [] + // --- 모듈 유형을 저장할 리스트 추가 --- + def featureModules = [] + def coreModules = [] + def dataModules = [] + def domainModules = [] // domain 모듈 리스트 추가 + queue = [rootProject] while (!queue.isEmpty()) { def project = queue.remove(0) queue.addAll(project.childProjects.values()) - if (project.plugins.hasPlugin('org.jetbrains.kotlin.multiplatform')) { - multiplatformProjects.add(project) + // --- 모듈 경로/이름을 기반으로 모듈 유형 식별 --- + // 프로젝트의 모듈 명명 규칙에 맞게 조건을 수정하세요. + // 우선순위를 고려하여 배치 (더 구체적인 조건이 위로) + if (project.path.startsWith(':feature')) { + featureModules.add(project) + } else if (project.path.contains(':domain')) { // domain 모듈 식별 조건 (예: ':user:domain', ':product:domain') + domainModules.add(project) + } else if (project.path.contains(':core')) { + coreModules.add(project) + } else if (project.path.startsWith(':data')) { + dataModules.add(project) } - if (project.plugins.hasPlugin('kotlin2js')) { + // --- 기존 플러그인 기반 식별 로직 유지 --- + else if (project.plugins.hasPlugin('org.jetbrains.kotlin.multiplatform')) { + multiplatformProjects.add(project) + } else if (project.plugins.hasPlugin('kotlin2js')) { jsProjects.add(project) - } - if (project.plugins.hasPlugin('com.android.application')) { + } else if (project.plugins.hasPlugin('com.android.application')) { androidProjects.add(project) - } - if (project.plugins.hasPlugin('com.android.library')) { + } else if (project.plugins.hasPlugin('com.android.library')) { androidLibraryProjects.add(project) - } - if (project.plugins.hasPlugin('com.android.dynamic-feature')) { + } else if (project.plugins.hasPlugin('com.android.dynamic-feature')) { androidDynamicFeatureProjects.add(project) - } - if (project.plugins.hasPlugin('java-library') || project.plugins.hasPlugin('java')) { + } else if (project.plugins.hasPlugin('java-library') || project.plugins.hasPlugin('java')) { javaProjects.add(project) } @@ -81,7 +95,18 @@ tasks.register('projectDependencyGraph') { traits.add('shape=box') } - if (multiplatformProjects.contains(project)) { + // --- 특정 모듈 유형 색상 우선 지정 --- + if (featureModules.contains(project)) { + traits.add('fillcolor="#FFC0CB"') // 핑크 (Feature) + } else if (domainModules.contains(project)) { + traits.add('fillcolor="#DAF7A6"') // 예: 라이트 그린/옐로우 (Domain) - 색상 변경 가능 + } else if (coreModules.contains(project)) { + traits.add('fillcolor="#ADD8E6"') // 라이트 블루 (Core) + } else if (dataModules.contains(project)) { + traits.add('fillcolor="#90EE90"') // 라이트 그린 (Data) + } + // --- 기존 플러그인 기반 색상 지정 로직 --- + else if (multiplatformProjects.contains(project)) { traits.add('fillcolor="#ffd2b3"') } else if (jsProjects.contains(project)) { traits.add('fillcolor="#ffffba"') @@ -94,7 +119,7 @@ tasks.register('projectDependencyGraph') { } else if (javaProjects.contains(project)) { traits.add('fillcolor="#ffb3ba"') } else { - traits.add('fillcolor="#eeeeee"') + traits.add('fillcolor="#eeeeee"') // 그 외 기본 색상 } dot << " \"${project.path}\" [${traits.join(", ")}];\n" diff --git a/project.dot.png b/project.dot.png index 65f883c34250159d0e1efd08882c00f80e5ebcba..070d91b341dd87c069241a96981eeb2f1ace93c4 100644 GIT binary patch literal 449830 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 z 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쀋`T)dtv|z#IEejU;zK1>$UPSr5F(0)KG!cR~l4 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 (N45j?5zE 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

    >>>E1hE0Y~*ZeymMo&v}li?#2 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®))0rL3 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 Date: Thu, 17 Jul 2025 15:36:46 +0900 Subject: [PATCH 34/41] =?UTF-8?q?[REFACTOR/#226]=20given/when/then=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yapp/alarm/AlarmTimeCalculatorTest.kt | 146 ++++++++---- .../home/util/AlarmDateTimeFormatterTest.kt | 224 ++++++++---------- 2 files changed, 198 insertions(+), 172 deletions(-) diff --git a/core/alarm/src/test/kotlin/com/yapp/alarm/AlarmTimeCalculatorTest.kt b/core/alarm/src/test/kotlin/com/yapp/alarm/AlarmTimeCalculatorTest.kt index 81f9cbaa..a4055be2 100644 --- a/core/alarm/src/test/kotlin/com/yapp/alarm/AlarmTimeCalculatorTest.kt +++ b/core/alarm/src/test/kotlin/com/yapp/alarm/AlarmTimeCalculatorTest.kt @@ -81,14 +81,18 @@ class AlarmTimeCalculatorTest { // 현재: 2024-07-22 (월) 10:00:00 // 알람: 오늘 14:00:00, 비반복 // 기대: 2024-07-22 (월) 14:00:00 + + // given val calculator = AlarmTimeCalculator(clockMonday2024_10am) val alarmTime = LocalTime.of(14, 0) val alarm = createTestAlarm(alarmTime.hour, alarmTime.minute) // repeatDays = 0 (비반복) + // when + val actualMillis = calculator.calculateNonRepeatingTimeMillis(alarm, testZoneId) + + // then val expectedDateTime = MONDAY_2024_07_22_10AM.with(alarmTime) val expectedMillis = getExpectedMillis(expectedDateTime) - - val actualMillis = calculator.calculateNonRepeatingTimeMillis(alarm, testZoneId) assertEquals(expectedMillis, actualMillis) } @@ -97,14 +101,18 @@ class AlarmTimeCalculatorTest { // 현재: 2024-07-22 (월) 10:00:00 // 알람: 오늘 08:00:00 (이미 지남), 비반복 // 기대: 2024-07-23 (화) 08:00:00 + + // given val calculator = AlarmTimeCalculator(clockMonday2024_10am) val alarmTime = LocalTime.of(8, 0) val alarm = createTestAlarm(alarmTime.hour, alarmTime.minute) // repeatDays = 0 (비반복) + // when + val actualMillis = calculator.calculateNonRepeatingTimeMillis(alarm, testZoneId) + + // then val expectedDateTime = MONDAY_2024_07_22_10AM.plusDays(1).with(alarmTime) val expectedMillis = getExpectedMillis(expectedDateTime) - - val actualMillis = calculator.calculateNonRepeatingTimeMillis(alarm, testZoneId) assertEquals(expectedMillis, actualMillis) } @@ -114,6 +122,8 @@ class AlarmTimeCalculatorTest { // 현재: 2024-07-22 (월) 10:00:00 // 알람: 매주 월요일 14:00:00, 공휴일 건너뛰기 비활성 // 기대: 2024-07-22 (월) 14:00:00 + + // given val calculator = AlarmTimeCalculator(clockMonday2024_10am) val alarmTime = LocalTime.of(14, 0) val alarm = createTestAlarm( @@ -123,11 +133,13 @@ class AlarmTimeCalculatorTest { repeatDays = AlarmDay.MON.bitValue // 월요일 반복 ) - val expectedDateTime = MONDAY_2024_07_22_10AM.with(alarmTime) - val expectedMillis = getExpectedMillis(expectedDateTime) - + // when val actualMillis = calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + + // then + val expectedDateTime = MONDAY_2024_07_22_10AM.with(alarmTime) + val expectedMillis = getExpectedMillis(expectedDateTime) assertEquals(expectedMillis, actualMillis) } @@ -136,6 +148,8 @@ class AlarmTimeCalculatorTest { // 현재: 2025-01-27 (월, 공휴일) 10:00:00 // 알람: 매주 월요일 14:00:00, 공휴일 건너뛰기 비활성 // 기대: 2025-01-27 (월, 공휴일) 14:00:00 (건너뛰기 비활성이므로 오늘 공휴일이어도 울림) + + // given val calculator = AlarmTimeCalculator(clockMondayHoliday2025_10am) val alarmTime = LocalTime.of(14, 0) val alarm = createTestAlarm( @@ -145,11 +159,13 @@ class AlarmTimeCalculatorTest { repeatDays = AlarmDay.MON.bitValue // 월요일 반복 ) - val expectedDateTime = MONDAY_HOLIDAY_2025_01_27_10AM.with(alarmTime) - val expectedMillis = getExpectedMillis(expectedDateTime) - + // when val actualMillis = calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + + // then + val expectedDateTime = MONDAY_HOLIDAY_2025_01_27_10AM.with(alarmTime) + val expectedMillis = getExpectedMillis(expectedDateTime) assertEquals(expectedMillis, actualMillis) } @@ -159,6 +175,8 @@ class AlarmTimeCalculatorTest { // 알람: 매주 월요일 09:00:00, 공휴일 건너뛰기 비활성 // 다음 주 월요일: 2025-01-27 (공휴일) // 기대: 2025-01-27 (월, 공휴일) 09:00:00 (건너뛰기 비활성이므로 다음 주 공휴일이어도 울림) + + // given val calculator = AlarmTimeCalculator(clockMonday2025_01_20_10am) val alarmTime = LocalTime.of(9, 0) val alarm = createTestAlarm( @@ -168,11 +186,13 @@ class AlarmTimeCalculatorTest { repeatDays = AlarmDay.MON.bitValue // 월요일 반복 ) - val expectedDateTime = LocalDateTime.of(2025, 1, 27, 9, 0, 0) - val expectedMillis = getExpectedMillis(expectedDateTime) - + // when val actualMillis = calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + + // then + val expectedDateTime = LocalDateTime.of(2025, 1, 27, 9, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) assertEquals(expectedMillis, actualMillis) } @@ -181,6 +201,8 @@ class AlarmTimeCalculatorTest { // 현재: 2024-07-22 (월) 10:00:00 // 알람: 매주 수요일 11:00:00, 공휴일 건너뛰기 비활성 // 기대: 2024-07-24 (수) 11:00:00 + + // given val calculator = AlarmTimeCalculator(clockMonday2024_10am) val alarmTime = LocalTime.of(11, 0) val alarm = createTestAlarm( @@ -190,12 +212,14 @@ class AlarmTimeCalculatorTest { repeatDays = AlarmDay.WED.bitValue // 수요일 반복 ) + // when + val actualMillis = + calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.WED, testZoneId) + + // then val expectedDateTime = MONDAY_2024_07_22_10AM.plusDays(2).with(alarmTime) // 2024-07-24 (수) 11:00 val expectedMillis = getExpectedMillis(expectedDateTime) - - val actualMillis = - calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.WED, testZoneId) assertEquals(expectedMillis, actualMillis) } @@ -205,6 +229,8 @@ class AlarmTimeCalculatorTest { // 알람: 매주 월요일 14:00, isHolidayAlarmOff = false // 다음주 월요일: 2025-01-27 (공휴일) // 기대: 2025-01-27 (월) 14:00 (옵션 Off이므로 공휴일이어도 울림) + + // given val calculator = AlarmTimeCalculator(clockMonday2025_PrevHoliday_2_01pm) val alarmTime = LocalTime.of(14, 0) val alarm = createTestAlarm( @@ -214,11 +240,13 @@ class AlarmTimeCalculatorTest { repeatDays = AlarmDay.MON.bitValue // 월요일 반복 ) - val expectedDateTime = LocalDateTime.of(2025, 1, 27, 14, 0, 0) - val expectedMillis = getExpectedMillis(expectedDateTime) - + // when val actualMillis = calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + + // then + val expectedDateTime = LocalDateTime.of(2025, 1, 27, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) assertEquals(expectedMillis, actualMillis) } @@ -228,6 +256,8 @@ class AlarmTimeCalculatorTest { // 알람: 매주 월요일 14:00, isHolidayAlarmOff = true // 다음주 월요일: 2025-01-27 (공휴일) // 기대: 다다음주 월요일 2025-02-03 (월) 14:00 + + // given val calculator = AlarmTimeCalculator(clockMonday2025_PrevHoliday_2_01pm) val alarmTime = LocalTime.of(14, 0) val alarm = createTestAlarm( @@ -237,11 +267,13 @@ class AlarmTimeCalculatorTest { repeatDays = AlarmDay.MON.bitValue // 월요일 반복 ) - val expectedDateTime = LocalDateTime.of(2025, 2, 3, 14, 0, 0) - val expectedMillis = getExpectedMillis(expectedDateTime) - + // when val actualMillis = calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + + // then + val expectedDateTime = LocalDateTime.of(2025, 2, 3, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) assertEquals(expectedMillis, actualMillis) } @@ -250,6 +282,8 @@ class AlarmTimeCalculatorTest { // 현재: 2025-01-27 (월, 공휴일) 10:00 // 알람: 매주 월요일 14:00, isHolidayAlarmOff = true // 기대: 다음주 월요일 2025-02-03 (월) 14:00 + + // given val calculator = AlarmTimeCalculator(clockMondayHoliday2025_10am) val alarmTime = LocalTime.of(14, 0) val alarm = createTestAlarm( @@ -259,11 +293,13 @@ class AlarmTimeCalculatorTest { repeatDays = AlarmDay.MON.bitValue // 월요일 반복 ) - val expectedDateTime = LocalDateTime.of(2025, 2, 3, 14, 0, 0) - val expectedMillis = getExpectedMillis(expectedDateTime) - + // when val actualMillis = calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + + // then + val expectedDateTime = LocalDateTime.of(2025, 2, 3, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) assertEquals(expectedMillis, actualMillis) } @@ -272,6 +308,8 @@ class AlarmTimeCalculatorTest { // 현재: 2025-01-27 (월, 공휴일) 10:00 // 알람: 매주 월요일 14:00, isHolidayAlarmOff = false // 기대: 오늘 2025-01-27 (월) 14:00 + + // given val calculator = AlarmTimeCalculator(clockMondayHoliday2025_10am) val alarmTime = LocalTime.of(14, 0) val alarm = createTestAlarm( @@ -281,11 +319,13 @@ class AlarmTimeCalculatorTest { repeatDays = AlarmDay.MON.bitValue // 월요일 반복 ) - val expectedDateTime = MONDAY_HOLIDAY_2025_01_27_10AM.with(alarmTime) - val expectedMillis = getExpectedMillis(expectedDateTime) - + // when val actualMillis = calculator.calculateNextRepeatingTimeMillis(alarm, AlarmDay.MON, testZoneId) + + // then + val expectedDateTime = MONDAY_HOLIDAY_2025_01_27_10AM.with(alarmTime) + val expectedMillis = getExpectedMillis(expectedDateTime) assertEquals(expectedMillis, actualMillis) } @@ -297,6 +337,8 @@ class AlarmTimeCalculatorTest { // 알람: 매주 월요일 14:00, isHolidayAlarmOff = false // 다음주 월요일: 2024-07-29 (공휴일 아님) // 기대: 2024-07-29 (월) 14:00 + + // given val calculator = AlarmTimeCalculator(clockMonday2024_10am) val alarmTime = LocalTime.of(14, 0) val alarm = createTestAlarm( @@ -306,11 +348,13 @@ class AlarmTimeCalculatorTest { repeatDays = AlarmDay.MON.bitValue // 월요일 반복 ) - val expectedDateTime = LocalDateTime.of(2024, 7, 29, 14, 0, 0) - val expectedMillis = getExpectedMillis(expectedDateTime) - + // when val actualMillis = calculator.calculateNextWeeklyRescheduledTimeMillis(alarm, AlarmDay.MON, testZoneId) + + // then + val expectedDateTime = LocalDateTime.of(2024, 7, 29, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) assertEquals(expectedMillis, actualMillis) } @@ -320,6 +364,8 @@ class AlarmTimeCalculatorTest { // 알람: 매주 월요일 14:00:00, 공휴일 건너뛰기 비활성 // 다음주 월요일: 2025-01-27 (공휴일) // 기대: 2025-01-27 (월, 공휴일) 14:00:00 (건너뛰기 비활성이므로 다음주 공휴일이어도 울림) + + // given val calculator = AlarmTimeCalculator(clockMonday2025_01_20_10am) val alarmTime = LocalTime.of(14, 0) val alarm = createTestAlarm( @@ -329,11 +375,13 @@ class AlarmTimeCalculatorTest { repeatDays = AlarmDay.MON.bitValue // 월요일 반복 ) - val expectedDateTime = LocalDateTime.of(2025, 1, 27, 14, 0, 0) - val expectedMillis = getExpectedMillis(expectedDateTime) - + // when val actualMillis = calculator.calculateNextWeeklyRescheduledTimeMillis(alarm, AlarmDay.MON, testZoneId) + + // then + val expectedDateTime = LocalDateTime.of(2025, 1, 27, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) assertEquals(expectedMillis, actualMillis) } @@ -343,6 +391,8 @@ class AlarmTimeCalculatorTest { // 알람: 매주 월요일 14:00, isHolidayAlarmOff = false // 로직: 가장 가까운 다음 월요일(29일)의 그 다음 주 월요일(5일) // 기대: 2024-08-05 (월) 14:00 + + // given val calculator = AlarmTimeCalculator(clockFriday2024_3pm) val alarmTime = LocalTime.of(14, 0) val alarm = createTestAlarm( @@ -352,11 +402,13 @@ class AlarmTimeCalculatorTest { repeatDays = AlarmDay.MON.bitValue // 월요일 반복 ) - val expectedDateTime = LocalDateTime.of(2024, 8, 5, 14, 0, 0) - val expectedMillis = getExpectedMillis(expectedDateTime) - + // when val actualMillis = calculator.calculateNextWeeklyRescheduledTimeMillis(alarm, AlarmDay.MON, testZoneId) + + // then + val expectedDateTime = LocalDateTime.of(2024, 8, 5, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) assertEquals(expectedMillis, actualMillis) } @@ -366,6 +418,8 @@ class AlarmTimeCalculatorTest { // 알람: 매주 월요일 14:00, isHolidayAlarmOff = true // 다음주 월요일: 2025-01-27 (공휴일) // 기대: 다다음주 월요일 2025-02-03 (월) 14:00 + + // given val calculator = AlarmTimeCalculator(clockMonday2025_01_20_10am) val alarmTime = LocalTime.of(14, 0) val alarm = createTestAlarm( @@ -375,11 +429,13 @@ class AlarmTimeCalculatorTest { repeatDays = AlarmDay.MON.bitValue // 월요일 반복 ) - val expectedDateTime = LocalDateTime.of(2025, 2, 3, 14, 0, 0) - val expectedMillis = getExpectedMillis(expectedDateTime) - + // when val actualMillis = calculator.calculateNextWeeklyRescheduledTimeMillis(alarm, AlarmDay.MON, testZoneId) + + // then + val expectedDateTime = LocalDateTime.of(2025, 2, 3, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) assertEquals(expectedMillis, actualMillis) } @@ -389,6 +445,8 @@ class AlarmTimeCalculatorTest { // 알람: 매주 월요일 14:00, isHolidayAlarmOff = true // 다음주 월요일: 2025-02-24 (공휴일 아님) // 기대: 2025-02-24 (월) 14:00 + + // given val calculator = AlarmTimeCalculator(clockMonday2025_02_17_10am) val alarmTime = LocalTime.of(14, 0) val alarm = createTestAlarm( @@ -398,11 +456,13 @@ class AlarmTimeCalculatorTest { repeatDays = AlarmDay.MON.bitValue // 월요일 반복 ) - val expectedDateTime = LocalDateTime.of(2025, 2, 24, 14, 0, 0) - val expectedMillis = getExpectedMillis(expectedDateTime) - + // when val actualMillis = calculator.calculateNextWeeklyRescheduledTimeMillis(alarm, AlarmDay.MON, testZoneId) + + // then + val expectedDateTime = LocalDateTime.of(2025, 2, 24, 14, 0, 0) + val expectedMillis = getExpectedMillis(expectedDateTime) assertEquals(expectedMillis, actualMillis) } } diff --git a/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt b/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt index 64ea1676..c6ab9554 100644 --- a/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt +++ b/feature/home/src/test/kotlin/com/yapp/home/util/AlarmDateTimeFormatterTest.kt @@ -14,17 +14,13 @@ import java.util.Locale class AlarmDateTimeFormatterTest { private lateinit var formatter: AlarmDateTimeFormatter - private val fixedNow: LocalDateTime = LocalDateTime.of(2023, 10, 26, 10, 0, 0) // 목요일 - private val fixedClock: Clock = Clock.fixed(fixedNow.atZone(ZoneId.of("Asia/Seoul")).toInstant(), ZoneId.of("Asia/Seoul")) - + private val fixedNow = LocalDateTime.of(2023, 10, 26, 10, 0, 0) // 목요일 + private val fixedClock = Clock.fixed(fixedNow.atZone(ZoneId.of("Asia/Seoul")).toInstant(), ZoneId.of("Asia/Seoul")) private val testLocale: Locale = Locale.KOREA @Before fun `테스트_준비`() { - formatter = AlarmDateTimeFormatter( - clock = fixedClock, - displayLocale = testLocale, - ) + formatter = AlarmDateTimeFormatter(clock = fixedClock, displayLocale = testLocale) } private fun getLocalizedFormatter(pattern: String): DateTimeFormatter { @@ -37,151 +33,108 @@ class AlarmDateTimeFormatterTest { tomorrow = "내일 %1\$s 도착", thisYear = "%1\$s 도착", otherYear = "%1\$s 도착", - todayTimePattern = "a h:mm", // 예시: "오후 2:30" - thisYearDatePattern = "M월 d일 a h:mm", // 예시: "11월 20일 오후 2:30" - otherYearDatePattern = "yy년 M월 d일 a h:mm" // 예시: "24년 1월 15일 오전 9:00" + todayTimePattern = "a h:mm", + thisYearDatePattern = "M월 d일 a h:mm", + otherYearDatePattern = "yy년 M월 d일 a h:mm" ) @Test fun `가장빠른_알람시간_포맷팅_활성알람_없으면_수정된_알람없음_반환`() { - val alarms = listOf( - Alarm(id = 1, hour = 14, minute = 0, repeatDays = 0, isAlarmActive = false) - ) - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( - alarms, - deliveryFormats, - fixedNow - ) + // given + val alarms = listOf(Alarm(id = 1, hour = 14, minute = 0, repeatDays = 0, isAlarmActive = false)) + + // when + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) + + // then assertEquals(deliveryFormats.noAlarm, result) } @Test fun `가장빠른_알람시간_포맷팅_오늘_미래_활성알람_하나면_수정된_오늘형식_반환`() { - val alarms = listOf( - Alarm(id = 1, hour = 14, minute = 30, repeatDays = 0, isAlarmActive = true) - ) - // deliveryFormats.today = "%1$s 도착" - // deliveryFormats.todayTimePattern = "a h:mm" -> "오후 2:30" - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( - alarms, - deliveryFormats, - fixedNow - ) + // given + val alarms = listOf(Alarm(id = 1, hour = 14, minute = 30, repeatDays = 0, isAlarmActive = true)) + val expectedTime = LocalDateTime.of(2023, 10, 26, 14, 30) + val expected = String.format(deliveryFormats.today, expectedTime.format(getLocalizedFormatter(deliveryFormats.todayTimePattern))) + + // when + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) - val expectedAlarmTime = LocalDateTime.of(2023, 10, 26, 14, 30) - val formattedExpectedTime = - expectedAlarmTime.format(getLocalizedFormatter(deliveryFormats.todayTimePattern)) - assertEquals(String.format(deliveryFormats.today, formattedExpectedTime), result) + // then + assertEquals(expected, result) } @Test fun `가장빠른_알람시간_포맷팅_내일_활성알람_하나면_수정된_내일형식_반환`() { - val alarms = listOf( - Alarm(id = 1, hour = 8, minute = 0, repeatDays = 0, isAlarmActive = true) - ) - // deliveryFormats.tomorrow = "내일 %1$s 도착" - // deliveryFormats.todayTimePattern = "a h:mm" -> "오전 8:00" - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( - alarms, - deliveryFormats, - fixedNow - ) + // given + val alarms = listOf(Alarm(id = 1, hour = 8, minute = 0, repeatDays = 0, isAlarmActive = true)) + val expectedTime = fixedNow.toLocalDate().plusDays(1).atTime(8, 0) + val expected = String.format(deliveryFormats.tomorrow, expectedTime.format(getLocalizedFormatter(deliveryFormats.todayTimePattern))) - val expectedAlarmTime = fixedNow.toLocalDate().plusDays(1).atTime(8, 0) - val formattedExpectedTime = - expectedAlarmTime.format(getLocalizedFormatter(deliveryFormats.todayTimePattern)) // 내일이지만 시간 포맷은 todayTimePattern 사용 - assertEquals(String.format(deliveryFormats.tomorrow, formattedExpectedTime), result) + // when + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) + + // then + assertEquals(expected, result) } @Test fun `가장빠른_알람시간_포맷팅_올해_다른날짜면_수정된_올해형식_반환`() { - // fixedNow = 2023년 10월 26일 (목요일) 10:00 - // 목표: 11월 5일 (일요일) 14:30 에 알람이 울리도록. - // 이 날짜는 fixedNow 기준 "오늘"도 "내일"도 아님. - val alarmsForThisYearTest = listOf( - Alarm( - id = 1, - hour = 14, // 알람 시간 - minute = 30, - repeatDays = AlarmDay.SUN.bitValue, // 일요일 반복 - isAlarmActive = true, - ) - ) + // given + val alarms = listOf(Alarm(id = 1, hour = 14, minute = 30, repeatDays = AlarmDay.SUN.bitValue, isAlarmActive = true)) + val expectedTime = LocalDateTime.of(2023, 10, 29, 14, 30) + val expected = String.format(deliveryFormats.thisYear, expectedTime.format(getLocalizedFormatter(deliveryFormats.thisYearDatePattern))) - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( - alarmsForThisYearTest, - deliveryFormats, - fixedNow - ) + // when + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) - val expectedAlarmTime = LocalDateTime.of(2023, 10, 29, 14, 30) - val formattedExpectedTime = - expectedAlarmTime.format(getLocalizedFormatter(deliveryFormats.thisYearDatePattern)) - assertEquals(String.format(deliveryFormats.thisYear, formattedExpectedTime), result) + // then + assertEquals(expected, result) } @Test fun `가장빠른_알람시간_포맷팅_다른해면_수정된_다른해형식_반환`() { - // 현재 시간을 2023년 12월 31일 10:00 으로 설정 - val nowInLate2023 = LocalDateTime.of(2023, 12, 31, 10, 0, 0) - - // 알람이 다음 해인 2024년 1월 1일 9:00 에 울리도록 설정 (단일 알람) - val alarmsForNewYear = listOf( - Alarm( - id = 1, - hour = 9, - minute = 0, - repeatDays = 0, // 단일 알람 - isAlarmActive = true, - ) - ) + // given + val now = LocalDateTime.of(2023, 12, 31, 10, 0, 0) + val alarms = listOf(Alarm(id = 1, hour = 9, minute = 0, repeatDays = 0, isAlarmActive = true)) + val expectedTime = LocalDateTime.of(2024, 1, 1, 9, 0) + val expected = String.format(deliveryFormats.otherYear, expectedTime.format(getLocalizedFormatter(deliveryFormats.otherYearDatePattern))) - // formatter.getFormattedEarliestUpcomingAlarmDeliveryTime 내부에서 - // calculateNextOccurrence(9, 0, 0, nowInLate2023)가 호출됨. - // nowInLate2023 (2023-12-31 10:00) 기준으로, 알람 시간 09:00은 과거이므로, - // 다음 날인 2024-01-01 09:00이 반환되어야 함. - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( - alarmsForNewYear, - deliveryFormats, - nowInLate2023 - ) + // when + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, now) - // deliveryFormats.otherYear = "%1$s 도착" - // deliveryFormats.otherYearDatePattern = "yy년 M월 d일 a h:mm" - // nowInLate2023의 year (2023)와 결과 날짜의 year (2024)가 다르므로 "otherYear" 포맷 사용 - val expectedAlarmTime = LocalDateTime.of(2024, 1, 1, 9, 0) - val formattedExpectedTime = - expectedAlarmTime.format(getLocalizedFormatter(deliveryFormats.otherYearDatePattern)) - assertEquals(String.format(deliveryFormats.otherYear, formattedExpectedTime), result) + // then + assertEquals(expected, result) } @Test fun `가장빠른_알람시간_포맷팅_여러_활성알람중_가장빠른것_정확히_포맷팅_수정된형식`() { + // given val alarms = listOf( Alarm(id = 1, hour = 15, minute = 0, repeatDays = 0, isAlarmActive = true), // 오늘 15:00 Alarm(id = 2, hour = 12, minute = 0, repeatDays = 0, isAlarmActive = true), // 오늘 12:00 (이게 더 빠름) Alarm(id = 3, hour = 9, minute = 0, repeatDays = 0, isAlarmActive = false), Alarm(id = 4, hour = 8, minute = 0, repeatDays = AlarmDay.FRI.bitValue, isAlarmActive = true) // 내일 08:00 ) - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( - alarms, - deliveryFormats, - fixedNow - ) + val expectedTime = LocalDateTime.of(2023, 10, 26, 12, 0) + val expected = String.format(deliveryFormats.today, expectedTime.format(getLocalizedFormatter(deliveryFormats.todayTimePattern))) + + // when + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) - val expectedAlarmTime = LocalDateTime.of(2023, 10, 26, 12, 0) - val formattedExpectedTime = - expectedAlarmTime.format(getLocalizedFormatter(deliveryFormats.todayTimePattern)) - assertEquals(String.format(deliveryFormats.today, formattedExpectedTime), result) + // then + assertEquals(expected, result) } @Test fun `날짜시간문자열_포맷팅_잘못된_날짜형식이면_수정된_알람없음_반환`() { - val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime( - emptyList(), - deliveryFormats, - fixedNow - ) + // given + val alarms = emptyList() + + // when + val result = formatter.getFormattedEarliestUpcomingAlarmDeliveryTime(alarms, deliveryFormats, fixedNow) + + // then assertEquals(deliveryFormats.noAlarm, result) } @@ -194,46 +147,59 @@ class AlarmDateTimeFormatterTest { @Test fun `시간차이_포맷팅_차이없거나_과거면_곧울려요_반환`() { - assertEquals( - timeFormats.soonFormat, - formatter.formatTimeDifference(fixedNow, fixedNow, timeFormats) - ) - assertEquals( - timeFormats.soonFormat, - formatter.formatTimeDifference(fixedNow, fixedNow.minusMinutes(1), timeFormats) - ) + // when & then + assertEquals(timeFormats.soonFormat, formatter.formatTimeDifference(fixedNow, fixedNow, timeFormats)) + assertEquals(timeFormats.soonFormat, formatter.formatTimeDifference(fixedNow, fixedNow.minusMinutes(1), timeFormats)) } @Test fun `시간차이_포맷팅_1분미만_차이면_곧울려요_반환`() { + // given val future = fixedNow.plusSeconds(30) - assertEquals( - timeFormats.soonFormat, - formatter.formatTimeDifference(fixedNow, future, timeFormats) - ) + + // when + val result = formatter.formatTimeDifference(fixedNow, future, timeFormats) + + // then + assertEquals(timeFormats.soonFormat, result) } @Test fun `시간차이_포맷팅_25분_차이면_정확한_문자열_반환`() { + // given val futureTime = fixedNow.plusMinutes(25) + val expected = String.format(testLocale, timeFormats.minutesFormat, 25L) + + // when val result = formatter.formatTimeDifference(fixedNow, futureTime, timeFormats) - assertEquals(String.format(testLocale, timeFormats.minutesFormat, 25L), result) + + // then + assertEquals(expected, result) } @Test fun `시간차이_포맷팅_70분_차이면_정확한_문자열_반환`() { - val futureTime = fixedNow.plusMinutes(70) // 1시간 10분 + // given + val futureTime = fixedNow.plusMinutes(70) + val expected = String.format(testLocale, timeFormats.hoursMinutesFormat, 1L, 10L) + + // when val result = formatter.formatTimeDifference(fixedNow, futureTime, timeFormats) - assertEquals(String.format(testLocale, timeFormats.hoursMinutesFormat, 1L, 10L), result) + + // then + assertEquals(expected, result) } @Test fun `시간차이_포맷팅_1일_1시간_5분_차이면_정확한_문자열_반환`() { + // given val futureTime = fixedNow.plusDays(1).plusHours(1).plusMinutes(5) + val expected = String.format(testLocale, timeFormats.daysHoursMinutesFormat, 1L, 1L, 5L) + + // when val result = formatter.formatTimeDifference(fixedNow, futureTime, timeFormats) - assertEquals( - String.format(testLocale, timeFormats.daysHoursMinutesFormat, 1L, 1L, 5L), - result - ) + + // then + assertEquals(expected, result) } } From 8ce6247d2fc99afebefabddc7fdd6dfd98e44db6 Mon Sep 17 00:00:00 2001 From: MoonsuKang Date: Sun, 20 Jul 2025 18:14:19 +0900 Subject: [PATCH 35/41] =?UTF-8?q?[CHORE/#227]=20Jacoco=20=EB=A6=AC?= =?UTF-8?q?=ED=8F=AC=ED=8A=B8=EB=A5=BC=20Codecov=EC=97=90=20=EC=97=85?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/android_ci.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/android_ci.yml b/.github/workflows/android_ci.yml index d8ca94cd..809558fb 100644 --- a/.github/workflows/android_ci.yml +++ b/.github/workflows/android_ci.yml @@ -85,12 +85,14 @@ jobs: - name: Run unit tests and generate coverage run: ./gradlew generateTestCoverageReport - # Upload Coverage Report - - name: Upload coverage report - uses: actions/upload-artifact@v4 + # Upload Coverage to Codecov + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v4 with: - name: coverage-report - path: data/build/reports/coverage/test/debug/ + files: data/build/reports/jacoco/testDebugUnitTestCoverage/testDebugUnitTestCoverage.xml + flags: unittests + name: codecov-report + fail_ci_if_error: true # Comment PR with coverage result - name: Comment coverage report in PR From d9cb6aaa330ebee63f8d500b6f07dfd00eee8ac6 Mon Sep 17 00:00:00 2001 From: MoonsuKang Date: Sun, 20 Jul 2025 18:14:31 +0900 Subject: [PATCH 36/41] =?UTF-8?q?[ADD/#227]=20Jacoco=20XML=20=EB=A6=AC?= =?UTF-8?q?=ED=8F=AC=ED=8A=B8=20=EC=83=9D=EC=84=B1=20=ED=99=9C=EC=84=B1?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Codecov에서 XML 읽어야 업로드 가능~ --- build-logic/src/main/java/com/yapp/convention/TestCoverage.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build-logic/src/main/java/com/yapp/convention/TestCoverage.kt b/build-logic/src/main/java/com/yapp/convention/TestCoverage.kt index fd54ed18..70510798 100644 --- a/build-logic/src/main/java/com/yapp/convention/TestCoverage.kt +++ b/build-logic/src/main/java/com/yapp/convention/TestCoverage.kt @@ -8,6 +8,7 @@ import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.withType import org.gradle.testing.jacoco.plugins.JacocoPluginExtension import org.gradle.testing.jacoco.plugins.JacocoTaskExtension +import org.gradle.testing.jacoco.tasks.JacocoReport internal fun Project.configureTestCoverage() { pluginManager.apply("jacoco") @@ -51,5 +52,7 @@ internal fun Project.configureTestCoverage() { .get().asFile execFile.exists() } + + (this as? JacocoReport)?.reports?.xml?.required?.set(true) } } From 1b958ab207c4e5e0509652764894708cbfbd87fd Mon Sep 17 00:00:00 2001 From: MoonsuKang Date: Sun, 20 Jul 2025 18:23:52 +0900 Subject: [PATCH 37/41] =?UTF-8?q?[MOD/#227]=20CI=20=EC=9B=8C=ED=81=AC?= =?UTF-8?q?=ED=94=8C=EB=A1=9C=EC=9A=B0=EC=97=90=20Codecov=20=ED=86=A0?= =?UTF-8?q?=ED=81=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/android_ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/android_ci.yml b/.github/workflows/android_ci.yml index 809558fb..08594bc3 100644 --- a/.github/workflows/android_ci.yml +++ b/.github/workflows/android_ci.yml @@ -89,6 +89,7 @@ jobs: - name: Upload coverage to Codecov uses: codecov/codecov-action@v4 with: + token: ${{ secrets.CODECOV_TOKEN }} files: data/build/reports/jacoco/testDebugUnitTestCoverage/testDebugUnitTestCoverage.xml flags: unittests name: codecov-report From 6a5622232d1d91e5cb05e65c295f59576ea2a2a4 Mon Sep 17 00:00:00 2001 From: MoonsuKang Date: Sun, 20 Jul 2025 18:39:16 +0900 Subject: [PATCH 38/41] =?UTF-8?q?[ADD/#227]=20Codecov=20=EC=84=A4=EC=A0=95?= =?UTF-8?q?=20=ED=8C=8C=EC=9D=BC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 프로젝트 커버리지 목표 60%, 임계값 2%로 설정 - gcov 파서 분기 감지 설정 - di, BuildConfig, generated 디렉토리 무시하도록 설정 --- .codecov.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .codecov.yml diff --git a/.codecov.yml b/.codecov.yml new file mode 100644 index 00000000..4ef10f8b --- /dev/null +++ b/.codecov.yml @@ -0,0 +1,24 @@ +coverage: + status: + project: + default: + target: 60% + threshold: 2% + +comment: + layout: "reach, diff, flags, files" + behavior: default + require_changes: true + +parsers: + gcov: + branch_detection: + conditional: true + loop: true + method: true + macro: true + +ignore: + - "**/di/**" + - "**/BuildConfig.*" + - "**/generated/**" From 1f103980b7ae692f85eb3d04defdb7542c520f36 Mon Sep 17 00:00:00 2001 From: MoonsuKang Date: Sun, 20 Jul 2025 18:39:40 +0900 Subject: [PATCH 39/41] =?UTF-8?q?[MOD/#227]=20=EC=BB=A4=EB=B2=84=EB=A6=AC?= =?UTF-8?q?=EC=A7=80=20=EB=A6=AC=ED=8F=AC=ED=8A=B8=20PR=20=EC=9E=90?= =?UTF-8?q?=EB=8F=99=20=EC=BD=94=EB=A9=98=ED=8A=B8=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/android_ci.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/.github/workflows/android_ci.yml b/.github/workflows/android_ci.yml index 08594bc3..0330be6d 100644 --- a/.github/workflows/android_ci.yml +++ b/.github/workflows/android_ci.yml @@ -91,18 +91,5 @@ jobs: with: token: ${{ secrets.CODECOV_TOKEN }} files: data/build/reports/jacoco/testDebugUnitTestCoverage/testDebugUnitTestCoverage.xml - flags: unittests name: codecov-report fail_ci_if_error: true - - # Comment PR with coverage result - - name: Comment coverage report in PR - if: github.event_name == 'pull_request' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - COMMENT="🚀 테스트 완료 및 커버리지 리포트가 생성되었습니다.\n\n➡️ [클릭하여 커버리지 리포트 다운로드](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})" - curl -s -H "Authorization: token $GITHUB_TOKEN" \ - -X POST \ - -d "{\"body\": \"$COMMENT\"}" \ - "https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments" From f63bce97fec4231ff57966307348d157d46b2e7b Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Mon, 21 Jul 2025 23:36:43 +0900 Subject: [PATCH 40/41] =?UTF-8?q?[FEAT/#226]=20MigrationTest=EC=97=90?= =?UTF-8?q?=EC=84=9C=20db=EB=A5=BC=20=EB=8B=AB=EA=B8=B0=20=EC=9C=84?= =?UTF-8?q?=ED=95=B4=20close=20=ED=98=B8=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/androidTest/java/com/yapp/database/MigrationTest.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt b/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt index eab02b27..3798f783 100644 --- a/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt +++ b/core/database/src/androidTest/java/com/yapp/database/MigrationTest.kt @@ -83,6 +83,8 @@ class MigrationTest { assertEquals(1, it.getInt(it.getColumnIndexOrThrow("missionType"))) assertEquals(10, it.getInt(it.getColumnIndexOrThrow("missionCount"))) } + + db.close() } @Test @@ -125,5 +127,7 @@ class MigrationTest { idx++ } } + + db.close() } } From d38d2300a5bdd3b3b38d41b9ba97977cf40f0e81 Mon Sep 17 00:00:00 2001 From: dongchyeon Date: Mon, 21 Jul 2025 23:47:31 +0900 Subject: [PATCH 41/41] =?UTF-8?q?[REFACTOR/#226]=20AlarmDateTimeFormatter?= =?UTF-8?q?=20=EC=BD=94=EB=93=9C=20=EA=B0=80=EB=8F=85=EC=84=B1=20=EA=B0=9C?= =?UTF-8?q?=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yapp/home/util/AlarmDateTimeFormatter.kt | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt b/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt index 4bb7785a..448cc811 100644 --- a/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt +++ b/feature/home/src/main/java/com/yapp/home/util/AlarmDateTimeFormatter.kt @@ -101,44 +101,42 @@ class AlarmDateTimeFormatter @Inject constructor( val alarmOccurrenceDateTime = LocalDateTime.parse( deliveryDateTimeString, inputFormatter, - ) // 변수명 inputDateTime -> alarmOccurrenceDateTime + ) val today = now.toLocalDate() val tomorrow = today.plusDays(1) - val formattedTimeOrDateTime: String when { // 1. 년도가 현재 년도와 다르면 'otherYear' 포맷 적용 alarmOccurrenceDateTime.year != now.year -> { - formattedTimeOrDateTime = alarmOccurrenceDateTime.format( + val formattedDateTime = alarmOccurrenceDateTime.format( DateTimeFormatter.ofPattern(formats.otherYearDatePattern) .withLocale(displayLocale), ) - return String.format(formats.otherYear, formattedTimeOrDateTime) + String.format(formats.otherYear, formattedDateTime) } // 2. (년도가 같고) 날짜가 오늘이면 'today' 포맷 적용 alarmOccurrenceDateTime.toLocalDate() == today -> { - formattedTimeOrDateTime = alarmOccurrenceDateTime.format( + val formattedTime = alarmOccurrenceDateTime.format( DateTimeFormatter.ofPattern(formats.todayTimePattern) .withLocale(displayLocale), ) - return String.format(formats.today, formattedTimeOrDateTime) + String.format(formats.today, formattedTime) } // 3. (년도가 같고) 날짜가 내일이면 'tomorrow' 포맷 적용 alarmOccurrenceDateTime.toLocalDate() == tomorrow -> { - // 내일은 특별히 시간만 표시 (요구사항에 따라 변경 가능) - formattedTimeOrDateTime = alarmOccurrenceDateTime.format( + val formattedTime = alarmOccurrenceDateTime.format( // 내일도 시간 포맷 사용 DateTimeFormatter.ofPattern(formats.todayTimePattern) .withLocale(displayLocale), ) - return String.format(formats.tomorrow, formattedTimeOrDateTime) + String.format(formats.tomorrow, formattedTime) } // 4. 그 외의 경우 (년도가 같고, 오늘이나 내일이 아닌 다른 날) 'thisYear' 포맷 적용 else -> { - formattedTimeOrDateTime = alarmOccurrenceDateTime.format( + val formattedDateTime = alarmOccurrenceDateTime.format( DateTimeFormatter.ofPattern(formats.thisYearDatePattern) .withLocale(displayLocale), ) - return String.format(formats.thisYear, formattedTimeOrDateTime) + String.format(formats.thisYear, formattedDateTime) } } } catch (e: DateTimeParseException) {

    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%0A4oO$89j=EFM0(Rg!T))y_-+i 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 L`cbaPbI<<+80f*w literal 441599 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