Skip to content

Commit a7de57e

Browse files
authored
[MERGE] #143 -> develop
[FIX/#143] 2차 qa
2 parents 198b143 + 2987191 commit a7de57e

13 files changed

Lines changed: 56 additions & 33 deletions

File tree

app/src/main/java/com/cherrish/android/core/designsystem/theme/Color.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ val green3 = Color(0xFF9AD342)
3838
val shadow = Color(0xFF9098A7).copy(alpha = 0.12f)
3939

4040
val gradation = Color(0xFFFFFDFD)
41-
val gradation2 = Color(0xFFFAE0E6)
41+
val gradation2 = Color(0xFFFFE0E0)
4242

43-
val graStart = Color(0xFFFFF7f7)
43+
val graStart = Color(0xFFFFEBEB)
4444
val graEnd = Color(0xFFFFFDFD)
4545

4646
val bottomSheetScrimColor = Color(0x1A464C52)

app/src/main/java/com/cherrish/android/presentation/challenge/component/ChallengeMissionProgressCherrygrowth.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import kotlinx.collections.immutable.toImmutableList
3131
@Composable
3232
fun ChallengeMissionProgressCherrygrowth(
3333
cherryType: CherryType,
34+
gaugeStep: Int,
3435
remainingGuideText: String,
3536
challengeProgress: Int,
3637
modifier: Modifier = Modifier
@@ -86,7 +87,7 @@ fun ChallengeMissionProgressCherrygrowth(
8687

8788
CherryGrowthProgressSection(
8889
challengeProgress = challengeProgress,
89-
cherryType = cherryType,
90+
gaugeStep = gaugeStep,
9091
modifier = Modifier
9192
.fillMaxWidth()
9293
.padding(horizontal = 18.dp)
@@ -121,7 +122,7 @@ private fun CherryGrowthSection(
121122
@Composable
122123
private fun CherryGrowthProgressSection(
123124
challengeProgress: Int,
124-
cherryType: CherryType,
125+
gaugeStep: Int,
125126
modifier: Modifier = Modifier
126127
) {
127128
Column(
@@ -147,7 +148,7 @@ private fun CherryGrowthProgressSection(
147148
}
148149

149150
CherrishGaugeBar(
150-
currentStep = cherryType.step,
151+
currentStep = gaugeStep,
151152
gauges = CherrishGaugeType.entries.toImmutableList()
152153

153154
)
@@ -179,6 +180,7 @@ private fun ChallengeMissionProgressCherrygrowthPreview() {
179180
}
180181
ChallengeMissionProgressCherrygrowth(
181182
cherryType = type,
183+
gaugeStep = 0,
182184
remainingGuideText = remainingGuide,
183185
challengeProgress = progress
184186
)

app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressScreen.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ private fun ChallengeMissionprogressScreen(
9191
item {
9292
ChallengeMissionProgressCherrygrowth(
9393
cherryType = uiState.cherryType,
94+
gaugeStep = uiState.gaugeStep,
9495
remainingGuideText = uiState.remainingGuideText,
9596
challengeProgress = uiState.progressPercentage
9697
)
@@ -162,6 +163,7 @@ private fun ChallengeMissionprogressScreenPreview() {
162163
challengeName = "피부 컨디션 챌린지",
163164
currentDay = 3,
164165
cherryType = CherryType.BBANGBBANG,
166+
gaugeStep = 0,
165167
remainingCount = 3,
166168
progressPercentage = 25,
167169
remainingGuideText = "체리가 크려면 3개의 미션을 수행해야 해요!",

app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressUiState.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ data class ChallengeMissionProgressUiState(
99
val challengeId: Long,
1010
val challengeName: String,
1111
val currentDay: Int,
12+
val gaugeStep: Int,
1213
val cherryType: CherryType,
1314
val remainingCount: Int,
1415
val progressPercentage: Int,

app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -98,26 +98,34 @@ class ChallengeMissionProgressViewModel @Inject constructor(
9898
}
9999

100100
private fun ChallengeMissionProgressResponseModel.toUiState(): ChallengeMissionProgressUiState {
101-
val cherryType = CherryType.entries.first { it.step == cherryLevel }
101+
val gaugeStep = cherryLevel.coerceIn(0, 4)
102+
103+
val stepForCherry = when (cherryLevel) {
104+
0, 1 -> 1
105+
else -> cherryLevel
106+
}
107+
108+
val cherryType = CherryType.entries.firstOrNull { it.step == stepForCherry }
109+
?: CherryType.MONGRONG
110+
102111
val isMaxLevel = cherryType == CherryType.KKUKKU
112+
103113
val remainingText = if (isMaxLevel) {
104114
"챌린지 완료까지 ${remainingRoutinesToNextLevel}개의 미션을 수행해야 해요!"
105115
} else {
106116
"체리가 크려면 ${remainingRoutinesToNextLevel}개의 미션을 수행해야 해요!"
107117
}
108-
val completeButtonText = if (isMaxLevel) {
109-
"챌린지 완료하기"
110-
} else {
111-
"오늘 미션 종료하기"
112-
}
118+
119+
val completeButtonText = if (isMaxLevel) "챌린지 종료하기" else "오늘 미션 종료하기"
113120

114121
return ChallengeMissionProgressUiState(
115122
challengeId = challengeId,
116123
challengeName = title,
117124
currentDay = currentDay,
118-
progressPercentage = progressPercentage,
119125
cherryType = cherryType,
126+
gaugeStep = gaugeStep,
120127
remainingCount = remainingRoutinesToNextLevel,
128+
progressPercentage = progressPercentage,
121129
routines = todayRoutines.map { routine ->
122130
ChallengeRoutineUiModel(
123131
routineId = routine.routineId,

app/src/main/java/com/cherrish/android/presentation/challenge/start/ChallengeStartScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ private fun ChallengeStartScreen(
4646
.fillMaxSize()
4747
.background(CherrishTheme.colors.gray0)
4848
.padding(paddingValues)
49-
.padding(horizontal = 17.dp)
50-
49+
.padding(horizontal = 17.dp),
50+
horizontalAlignment = Alignment.CenterHorizontally
5151
) {
5252
Spacer(modifier = Modifier.weight(98f))
5353

app/src/main/java/com/cherrish/android/presentation/home/HomeScreen.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ fun HomeRoute(
4343
is HomeSideEffect.NavigateToChallenge -> {
4444
navigateToChallenge()
4545
}
46+
4647
is HomeSideEffect.NavigateToCalendar -> {
4748
navigateToCalendar(sideEffect.date)
4849
}

app/src/main/java/com/cherrish/android/presentation/home/HomeViewModel.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,22 +40,26 @@ class HomeViewModel @Inject constructor(
4040
_uiState.update { UiState.Loading }
4141

4242
homeRepository.getMainDashboard().onSuccess { response ->
43+
val level = response.cherryLevel
44+
val safeIndex = level.coerceIn(
45+
1,
46+
CherrishGaugeType.entries.lastIndex
47+
)
4348
_uiState.update {
4449
UiState.Success(
4550
HomeUiState(
46-
currentStep = response.cherryLevel,
51+
currentStep = level,
4752
gauges = CherrishGaugeType.entries.toImmutableList(),
4853
challengeRate = response.challengeRate,
4954
challengeName = response.challengeName,
5055
todayDate = response.toTodayDateString(),
5156
plans = response.recentProcedures.toImmutableList(),
5257
upcomingPlans = response.upcomingProcedures.toImmutableList(),
53-
selectedIndex = (response.cherryLevel - 1)
54-
.coerceIn(0, CherrishGaugeType.entries.size - 1)
58+
selectedIndex = safeIndex
5559
)
5660
)
5761
}
58-
}.onLogFailure {}
62+
}.onLogFailure { }
5963
}
6064
}
6165

app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,17 @@ fun ChallengeSection(
4040
gauges: ImmutableList<CherrishGaugeType>,
4141
modifier: Modifier = Modifier,
4242
currentStep: Int = 0,
43-
@DrawableRes imageRes: Int? = R.drawable.img_challenge_lv2,
43+
@DrawableRes imageRes: Int? = R.drawable.img_challenge_lv1,
4444
onChallengeStartClick: () -> Unit = {},
4545
challengeName: String? = "웰니스 • 마음챙김",
4646
challengeRate: Int = 0
4747
) {
48+
val hasChallenge = !challengeName.isNullOrBlank()
49+
4850
Box(
4951
modifier = modifier.fillMaxWidth()
5052
) {
51-
if (currentStep != 0 && imageRes != null) {
53+
if (hasChallenge && imageRes != null) {
5254
Image(
5355
painter = painterResource(id = imageRes),
5456
contentDescription = null,
@@ -71,9 +73,9 @@ fun ChallengeSection(
7173

7274
Spacer(modifier = Modifier.height(10.dp))
7375

74-
if (currentStep == 0) {
76+
if (!hasChallenge) {
7577
NoChallenge(
76-
currentStep = currentStep,
78+
currentStep = 0,
7779
gauges = gauges,
7880
onChallengeStartClick = onChallengeStartClick
7981
)
@@ -97,8 +99,6 @@ private fun Challenge(
9799
challengeRate: Int,
98100
modifier: Modifier = Modifier
99101
) {
100-
val safeStep = currentStep.coerceIn(1, gauges.size)
101-
102102
Column(
103103
modifier = modifier
104104
.fillMaxWidth()
@@ -139,7 +139,7 @@ private fun Challenge(
139139
Spacer(modifier = Modifier.height(16.dp))
140140

141141
CherrishGaugeBar(
142-
currentStep = safeStep,
142+
currentStep = currentStep,
143143
gauges = gauges
144144
)
145145
}

app/src/main/java/com/cherrish/android/presentation/home/type/CherrishGaugeType.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import com.cherrish.android.R
55

66
enum class CherrishGaugeType(
77
val step: Int,
8-
@DrawableRes val image: Int?
8+
@DrawableRes val image: Int
99
) {
10-
LEVEL0(step = 0, image = null),
10+
LEVEL0(step = 0, image = R.drawable.img_home_lv1),
1111
LEVEL1(step = 1, image = R.drawable.img_home_lv1),
1212
LEVEL2(step = 2, image = R.drawable.img_home_lv2),
1313
LEVEL3(step = 3, image = R.drawable.img_home_lv3),

0 commit comments

Comments
 (0)