Skip to content

Commit 6e1cc47

Browse files
committed
FIX: 루틴 작성/수정시 반복 요일을 설정하지 않아도 등록이 가능하도록 수정, 반복 요일을 등록하지 않을 시 startDate와 endDate를 모두 현재 날자로 서버에 전달하도록 수정
1 parent a4e9670 commit 6e1cc47

3 files changed

Lines changed: 18 additions & 20 deletions

File tree

presentation/src/main/java/com/threegap/bitnagil/presentation/writeroutine/WriteRoutineScreen.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ fun WriteRoutineScreenContainer(
7777
DatePickerBottomSheet(
7878
modifier = Modifier.fillMaxWidth(),
7979
onDateSelected = viewModel::setStartDate,
80-
date = state.startDate ?: state.endDate?.let { Date.min(it, Date.now()) } ?: Date.now(),
80+
date = state.startDate,
8181
onDismiss = viewModel::hideStartDatePickerBottomSheet,
82-
availableStartDate = null,
82+
availableStartDate = Date.now(),
8383
availableEndDate = state.endDate,
8484
)
8585
}
@@ -88,7 +88,7 @@ fun WriteRoutineScreenContainer(
8888
DatePickerBottomSheet(
8989
modifier = Modifier.fillMaxWidth(),
9090
onDateSelected = viewModel::setEndDate,
91-
date = state.endDate ?: state.startDate?.let { Date.max(it, Date.now()) } ?: Date.now(),
91+
date = state.endDate,
9292
onDismiss = viewModel::hideEndDatePickerBottomSheet,
9393
availableStartDate = state.startDate,
9494
availableEndDate = null,
@@ -289,14 +289,14 @@ private fun WriteRoutineScreen(
289289
RoutineDetailRow(
290290
title = "시작일",
291291
placeHolder = "눌러서 선택",
292-
value = state.startDate?.toFormattedString() ?: "",
292+
value = state.startDate.toFormattedString(),
293293
onClick = showStartDatePickerBottomSheet,
294294
)
295295

296296
RoutineDetailRow(
297297
title = "종료일",
298298
placeHolder = "눌러서 선택",
299-
value = state.endDate?.toFormattedString() ?: "",
299+
value = state.endDate.toFormattedString(),
300300
onClick = showEndDatePickerBottomSheet,
301301
)
302302
}

presentation/src/main/java/com/threegap/bitnagil/presentation/writeroutine/WriteRoutineViewModel.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -457,20 +457,21 @@ class WriteRoutineViewModel @AssistedInject constructor(
457457
.filter { it.selected }
458458
.map { it.day.toRepeatDay() }
459459

460-
null -> return@launch
460+
null -> listOf()
461461
}
462462

463463
when (val writeRoutineType = currentState.writeRoutineType) {
464464
WriteRoutineType.Add -> {
465465
sendIntent(WriteRoutineIntent.RegisterRoutineLoading)
466466
val subRoutines = if (currentState.selectNotUseSUbRoutines) emptyList() else currentState.subRoutineNames.filter { it.isNotEmpty() }
467+
val noRepeatRoutine = repeatDay.isEmpty()
467468

468469
val registerRoutineResult = registerRoutineUseCase(
469470
name = currentState.routineName,
470471
repeatDay = repeatDay,
471472
startTime = startTime.toDomainTime(),
472-
startDate = currentState.startDate?.toDomainDate(),
473-
endDate = currentState.endDate?.toDomainDate(),
473+
startDate = if (noRepeatRoutine) Date.now().toDomainDate() else currentState.startDate.toDomainDate(),
474+
endDate = if (noRepeatRoutine) Date.now().toDomainDate() else currentState.endDate.toDomainDate(),
474475
subRoutines = subRoutines,
475476
)
476477

@@ -496,8 +497,8 @@ class WriteRoutineViewModel @AssistedInject constructor(
496497
name = currentState.routineName,
497498
repeatDay = repeatDay,
498499
startTime = startTime.toDomainTime(),
499-
startDate = currentState.startDate?.toDomainDate(),
500-
endDate = currentState.endDate?.toDomainDate(),
500+
startDate = currentState.startDate.toDomainDate(),
501+
endDate = currentState.endDate.toDomainDate(),
501502
subRoutines = subRoutines,
502503
)
503504

presentation/src/main/java/com/threegap/bitnagil/presentation/writeroutine/model/mvi/WriteRoutineState.kt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ data class WriteRoutineState(
1717
val repeatType: RepeatType?,
1818
val repeatDays: List<SelectableDay>,
1919
val startTime: Time?,
20-
val startDate: Date?,
21-
val endDate: Date?,
20+
val startDate: Date,
21+
val endDate: Date,
2222
val selectAllTime: Boolean,
2323
val loading: Boolean,
2424
val showTimePickerBottomSheet: Boolean,
@@ -77,28 +77,25 @@ data class WriteRoutineState(
7777
repeatDaysUiExpanded = false,
7878
periodUiExpanded = false,
7979
startTimeUiExpanded = false,
80-
startDate = null,
81-
endDate = null,
80+
startDate = Date.now(),
81+
endDate = Date.now(),
8282
)
8383
}
8484

8585
val registerButtonEnabled: Boolean
86-
get() = routineName.isNotEmpty() &&
87-
(repeatType == RepeatType.DAILY || (repeatType == RepeatType.DAY && repeatDays.any { it.selected })) &&
88-
startTime != null && !loading
86+
get() = routineName.isNotEmpty() && startTime != null && !loading
8987

9088
val subRoutinesText: String get() = subRoutineNames.filter { it.isNotEmpty() }.joinToString(separator = "\n")
9189

9290
val repeatDaysText: String
9391
get() = when (repeatType) {
9492
RepeatType.DAILY -> "매일"
95-
RepeatType.DAY -> "매주 ${repeatDays.filter { it.selected }.joinToString { it.day.text }}"
93+
RepeatType.DAY -> if (repeatDays.none { it.selected }) "반복 안함" else "매주 ${repeatDays.filter { it.selected }.joinToString { it.day.text }}"
9694
null -> ""
9795
}
9896

9997
val periodText: String get() {
100-
if (startDate == null && endDate == null) return ""
101-
return "${startDate?.toYearShrinkageFormattedString() ?: ""} ~ ${endDate?.toYearShrinkageFormattedString() ?: ""}"
98+
return "${startDate.toYearShrinkageFormattedString()} ~ ${endDate.toYearShrinkageFormattedString()}"
10299
}
103100

104101
val startTimeText: String

0 commit comments

Comments
 (0)