Skip to content

Commit e3905d9

Browse files
authored
[MERGE] #144 -> develop
[FIX/#144] 2차 QA 수정 사항 반영
2 parents dfa69dc + 9a0d8fb commit e3905d9

7 files changed

Lines changed: 267 additions & 183 deletions

File tree

app/src/main/java/com/cherrish/android/presentation/calendar/CalendarScreen.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ private fun CalendarScreen(
7777
.fillMaxSize()
7878
.background(color = CherrishTheme.colors.gray100)
7979
.padding(paddingValues)
80-
.padding(top = 40.dp),
80+
.padding(top = 40.dp, bottom = 10.dp),
8181
horizontalAlignment = Alignment.CenterHorizontally,
8282
verticalArrangement = Arrangement.spacedBy(20.dp)
8383
) {
@@ -95,7 +95,9 @@ private fun CalendarScreen(
9595
procedureInfo = uiState.procedureInfoList,
9696
onProcedureClick = onEventClick,
9797
onAddProcedureClick = onAddButtonClick,
98-
modifier = Modifier.padding(horizontal = 17.dp)
98+
modifier = Modifier
99+
.padding(horizontal = 17.dp)
100+
.weight(1f)
99101
)
100102
}
101103
}

app/src/main/java/com/cherrish/android/presentation/calendar/component/ProcedureScheduleCard.kt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,7 @@ fun ProcedureScheduleCard(
7070
EmptyCardView(
7171
modifier = Modifier
7272
.fillMaxWidth()
73-
.padding(horizontal = 24.dp)
74-
.padding(top = 50.dp, bottom = 24.dp),
73+
.padding(horizontal = 24.dp),
7574
onClick = onAddProcedureClick
7675
)
7776
} else {
@@ -99,7 +98,8 @@ fun ProcedureScheduleCard(
9998

10099
LazyColumn(
101100
state = listState,
102-
verticalArrangement = Arrangement.spacedBy(8.dp)
101+
verticalArrangement = Arrangement.spacedBy(8.dp),
102+
modifier = Modifier.weight(1f)
103103
) {
104104
items(
105105
items = procedureInfo,
@@ -252,23 +252,28 @@ private fun EmptyCardView(
252252
modifier = modifier.fillMaxWidth(),
253253
horizontalAlignment = Alignment.CenterHorizontally
254254
) {
255+
Spacer(modifier = Modifier.weight(50f))
256+
255257
Image(
256258
painter = painterResource(id = R.drawable.img_calendar_empty_view),
257259
contentDescription = null,
258260
modifier = Modifier.padding(8.dp)
259261
)
262+
Spacer(modifier = Modifier.weight(8f))
260263

261264
Text(
262265
text = "오늘 예정된 일정이 없어요.",
263266
color = CherrishTheme.colors.gray600,
264267
style = CherrishTheme.typography.body1R14
265268
)
266269

267-
Spacer(modifier = Modifier.height(40.dp))
270+
Spacer(modifier = Modifier.weight(40f))
268271

269272
AddProcedureButton(
270273
onClick = onClick
271274
)
275+
276+
Spacer(modifier = Modifier.weight(24f))
272277
}
273278
}
274279

app/src/main/java/com/cherrish/android/presentation/calendar/procedure/ProcedureScreen.kt

Lines changed: 127 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,18 @@ package com.cherrish.android.presentation.calendar.procedure
33
import androidx.activity.compose.BackHandler
44
import androidx.compose.foundation.background
55
import androidx.compose.foundation.layout.Column
6+
import androidx.compose.foundation.layout.Spacer
67
import androidx.compose.foundation.layout.fillMaxSize
78
import androidx.compose.foundation.layout.fillMaxWidth
9+
import androidx.compose.foundation.layout.height
10+
import androidx.compose.foundation.layout.imePadding
811
import androidx.compose.foundation.layout.navigationBarsPadding
912
import androidx.compose.foundation.layout.padding
1013
import androidx.compose.foundation.lazy.rememberLazyListState
14+
import androidx.compose.foundation.rememberScrollState
15+
import androidx.compose.foundation.verticalScroll
1116
import androidx.compose.material3.ExperimentalMaterial3Api
17+
import androidx.compose.material3.Scaffold
1218
import androidx.compose.material3.rememberModalBottomSheetState
1319
import androidx.compose.runtime.Composable
1420
import androidx.compose.runtime.LaunchedEffect
@@ -143,127 +149,157 @@ fun ProcedureScreen(
143149

144150
BackHandler { onBackClick() }
145151

146-
Column(
152+
Scaffold(
147153
modifier = modifier
148154
.fillMaxSize()
149155
.background(CherrishTheme.colors.gray0)
150156
.navigationBarsPadding()
151-
.padding(top = 44.dp, bottom = 20.dp),
152-
horizontalAlignment = Alignment.CenterHorizontally
153-
) {
154-
BackAndCloseTopAppBar(
155-
title = uiState.title,
156-
onBackClick = onBackClick,
157-
onCloseClick = onCloseClick
158-
)
159-
160-
if (uiState.showStepProgressBar) {
161-
StepProgressBar(
162-
totalStep = uiState.totalSteps,
163-
currentStep = uiState.currentStepIndex,
157+
.padding(top = 44.dp),
158+
containerColor = CherrishTheme.colors.gray0,
159+
bottomBar = {
160+
CherrishButton(
161+
text = if (uiState.step == ProcedureStep.Downtime) "완료" else "다음",
162+
onClick = onNextClick,
163+
enabled = uiState.isNextEnabled,
164164
modifier = Modifier
165165
.fillMaxWidth()
166-
.padding(horizontal = 26.dp)
167-
.padding(top = 20.dp)
166+
.padding(horizontal = 24.dp)
167+
.padding(vertical = 20.dp)
168+
.background(CherrishTheme.colors.gray0)
168169
)
169170
}
170-
171+
) { innerPadding ->
171172
Column(
172173
modifier = Modifier
173-
.fillMaxWidth()
174-
.padding(top = uiState.contentTopPadding)
175-
.weight(1f)
174+
.fillMaxSize()
175+
.imePadding(),
176+
horizontalAlignment = Alignment.CenterHorizontally
176177
) {
177-
when (uiState.flow) {
178-
ProcedureFlow.Entry -> {
179-
ExistenceContent(
180-
selectedIndex = uiState.existenceSelectedIndex,
181-
onItemClick = onExistenceClick,
178+
BackAndCloseTopAppBar(
179+
title = uiState.title,
180+
onBackClick = onBackClick,
181+
onCloseClick = onCloseClick
182+
)
183+
184+
Column(
185+
modifier = Modifier
186+
.weight(1f)
187+
.fillMaxWidth()
188+
) {
189+
if (uiState.showStepProgressBar) {
190+
StepProgressBar(
191+
totalStep = uiState.totalSteps,
192+
currentStep = uiState.currentStepIndex,
182193
modifier = Modifier
194+
.fillMaxWidth()
183195
.padding(horizontal = 26.dp)
184-
.padding(bottom = 10.dp)
196+
.padding(top = 20.dp)
185197
)
186198
}
187199

188-
ProcedureFlow.NoTreat, ProcedureFlow.Treat -> {
189-
when (uiState.step) {
190-
ProcedureStep.Category -> {
191-
CategoryContent(
192-
worries = uiState.worries,
193-
selectedWorryId = uiState.selectedWorryId,
194-
onWorryClick = onWorryClick,
200+
Column(
201+
modifier = Modifier.fillMaxWidth()
202+
) {
203+
when (uiState.flow) {
204+
ProcedureFlow.Entry -> {
205+
ExistenceContent(
206+
selectedIndex = uiState.existenceSelectedIndex,
207+
onItemClick = onExistenceClick,
195208
modifier = Modifier
209+
.padding(top = uiState.contentTopPadding)
196210
.padding(horizontal = 26.dp)
197211
.padding(bottom = 10.dp)
198212
)
199213
}
200214

201-
ProcedureStep.RecoverySchedule -> {
202-
RecoveryScheduleContent(
203-
selectedIndex = uiState.recoverySelectedIndex,
204-
onItemClick = onRecoveryOptionClick,
205-
year = uiState.year,
206-
month = uiState.month,
207-
day = uiState.day,
208-
onYearChange = onYearChange,
209-
onMonthChange = onMonthChange,
210-
onDayChange = onDayChange,
211-
errorMessage = uiState.dateErrorMessage,
212-
modifier = Modifier.padding(horizontal = 26.dp)
213-
)
214-
}
215+
ProcedureFlow.NoTreat, ProcedureFlow.Treat -> {
216+
when (uiState.step) {
217+
ProcedureStep.Category -> {
218+
CategoryContent(
219+
worries = uiState.worries,
220+
selectedWorryId = uiState.selectedWorryId,
221+
onWorryClick = onWorryClick,
222+
modifier = Modifier
223+
.padding(top = uiState.contentTopPadding)
224+
.padding(horizontal = 26.dp)
225+
.padding(bottom = 10.dp)
226+
)
227+
}
215228

216-
ProcedureStep.Filtering -> {
217-
FilteringContent(
218-
name = uiState.selectedWorryName,
219-
cardItems = uiState.procedureItems,
220-
selectedCardIds = uiState.selectedProcedureCardIds,
221-
onCardClick = onProcedureCardClick,
222-
bottomPadding = uiState.lazyColumnBottomPadding,
223-
modifier = Modifier.fillMaxWidth()
224-
)
225-
}
229+
ProcedureStep.RecoverySchedule -> {
230+
Column(
231+
modifier = Modifier
232+
.fillMaxWidth()
233+
.verticalScroll(rememberScrollState())
234+
) {
235+
RecoveryScheduleContent(
236+
selectedIndex = uiState.recoverySelectedIndex,
237+
onItemClick = onRecoveryOptionClick,
238+
year = uiState.year,
239+
month = uiState.month,
240+
day = uiState.day,
241+
onYearChange = onYearChange,
242+
onMonthChange = onMonthChange,
243+
onDayChange = onDayChange,
244+
errorMessage = uiState.dateErrorMessage,
245+
modifier = Modifier
246+
.padding(top = uiState.contentTopPadding)
247+
.padding(horizontal = 26.dp)
248+
)
249+
}
250+
}
226251

227-
ProcedureStep.FilteringWithSearch -> {
228-
FilteringWithSearchContent(
229-
cardItems = uiState.procedureItems,
230-
selectedCardIds = uiState.selectedProcedureCardIds,
231-
onCardClick = onProcedureCardClick,
232-
onSearchAction = onSearchAction,
233-
query = uiState.searchQuery,
234-
searchedQuery = uiState.searchedQuery,
235-
onQueryChange = onSearchableQueryChange,
236-
bottomContentPadding = uiState.lazyColumnBottomPadding,
237-
modifier = Modifier
238-
.fillMaxWidth()
239-
.padding(horizontal = 24.dp)
240-
)
241-
}
252+
ProcedureStep.Filtering -> {
253+
FilteringContent(
254+
name = uiState.selectedWorryName,
255+
cardItems = uiState.procedureItems,
256+
selectedCardIds = uiState.selectedProcedureCardIds,
257+
onCardClick = onProcedureCardClick,
258+
bottomPadding = uiState.lazyColumnBottomPadding,
259+
modifier = Modifier.fillMaxWidth()
260+
.padding(top = uiState.contentTopPadding)
261+
)
262+
}
242263

243-
ProcedureStep.Downtime -> {
244-
DowntimeContent(
245-
cardItems = uiState.selectedProcedureCardItems,
246-
selectedCardIds =
247-
uiState.procedureDowntimeMap.keys.toImmutableList(),
248-
onCardClick = onDowntimeClick,
249-
activeCardId = uiState.selectedProcedureForDowntime?.id,
250-
isDowntimeBottomSheetVisible = uiState.showDowntimeBottomSheet,
251-
modifier = Modifier.fillMaxWidth()
252-
)
264+
ProcedureStep.FilteringWithSearch -> {
265+
FilteringWithSearchContent(
266+
cardItems = uiState.procedureItems,
267+
selectedCardIds = uiState.selectedProcedureCardIds,
268+
onCardClick = onProcedureCardClick,
269+
onSearchAction = onSearchAction,
270+
query = uiState.searchQuery,
271+
searchedQuery = uiState.searchedQuery,
272+
onQueryChange = onSearchableQueryChange,
273+
bottomContentPadding = uiState.lazyColumnBottomPadding,
274+
modifier = Modifier
275+
.fillMaxWidth()
276+
.padding(top = uiState.contentTopPadding)
277+
.padding(horizontal = 24.dp)
278+
)
279+
}
280+
281+
ProcedureStep.Downtime -> {
282+
DowntimeContent(
283+
cardItems = uiState.selectedProcedureCardItems,
284+
selectedCardIds = uiState.procedureDowntimeMap.keys
285+
.toImmutableList(),
286+
onCardClick = onDowntimeClick,
287+
activeCardId = uiState.selectedProcedureForDowntime?.id,
288+
isDowntimeBottomSheetVisible = uiState
289+
.showDowntimeBottomSheet,
290+
modifier = Modifier
291+
.fillMaxWidth()
292+
.padding(top = uiState.contentTopPadding)
293+
)
294+
}
295+
}
253296
}
254297
}
255298
}
256299
}
300+
301+
Spacer(modifier = Modifier.height(innerPadding.calculateBottomPadding()))
257302
}
258-
CherrishButton(
259-
text = "다음",
260-
onClick = onNextClick,
261-
enabled = uiState.isNextEnabled,
262-
modifier = Modifier
263-
.fillMaxWidth()
264-
.padding(horizontal = 24.dp)
265-
.padding(top = 24.dp)
266-
)
267303
}
268304

269305
SelectedProcedureBottomSheet(

app/src/main/java/com/cherrish/android/presentation/calendar/procedure/component/DowntimeBottomSheet.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,11 @@ private fun DowntimeDayPicker(
336336
)
337337

338338
Text(
339-
text = "보통 $minDowntimeDays-${maxDowntimeDays}",
339+
text = if (minDowntimeDays == 0 && maxDowntimeDays == 0) {
340+
"보통 다운타임 0일"
341+
} else {
342+
"보통 $minDowntimeDays-${maxDowntimeDays}"
343+
},
340344
color = CherrishTheme.colors.gray600,
341345
style = CherrishTheme.typography.title2M16
342346
)

0 commit comments

Comments
 (0)