From 3552b7c29ee61672216b2b80cf7865e68dc00027 Mon Sep 17 00:00:00 2001 From: sohee <144779368+sohee6989@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:33:57 +0900 Subject: [PATCH 1/8] =?UTF-8?q?[CHORE/#143]=202=EC=B0=A8=20=ED=81=90?= =?UTF-8?q?=EC=97=90=EC=9D=B4=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/challenge/start/ChallengeStartScreen.kt | 4 ++-- .../com/cherrish/android/presentation/home/HomeScreen.kt | 9 +++++++++ .../cherrish/android/presentation/home/HomeViewModel.kt | 8 +++++--- .../presentation/home/component/ChallengeSection.kt | 2 +- .../cherrish/android/presentation/mypage/MyPageScreen.kt | 1 + .../presentation/mypage/component/MyPageHeader.kt | 6 +++++- 6 files changed, 23 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/cherrish/android/presentation/challenge/start/ChallengeStartScreen.kt b/app/src/main/java/com/cherrish/android/presentation/challenge/start/ChallengeStartScreen.kt index 10ad1037f..e58189b6d 100644 --- a/app/src/main/java/com/cherrish/android/presentation/challenge/start/ChallengeStartScreen.kt +++ b/app/src/main/java/com/cherrish/android/presentation/challenge/start/ChallengeStartScreen.kt @@ -46,8 +46,8 @@ private fun ChallengeStartScreen( .fillMaxSize() .background(CherrishTheme.colors.gray0) .padding(paddingValues) - .padding(horizontal = 17.dp) - + .padding(horizontal = 17.dp), + horizontalAlignment = Alignment.CenterHorizontally ) { Spacer(modifier = Modifier.weight(98f)) diff --git a/app/src/main/java/com/cherrish/android/presentation/home/HomeScreen.kt b/app/src/main/java/com/cherrish/android/presentation/home/HomeScreen.kt index d2cf341a5..6accbbc01 100644 --- a/app/src/main/java/com/cherrish/android/presentation/home/HomeScreen.kt +++ b/app/src/main/java/com/cherrish/android/presentation/home/HomeScreen.kt @@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush @@ -80,6 +81,14 @@ private fun HomeScreen( onAddPlanClick: () -> Unit, modifier: Modifier = Modifier ) { + LaunchedEffect(uiState.selectedIndex) { + val gauge = uiState.gauges.getOrNull(uiState.selectedIndex) + android.util.Log.d( + "HomeScreen", + "selectedIndex=${uiState.selectedIndex}, gauge=$gauge, image=${gauge?.image}" + ) + } + Box( modifier = modifier .fillMaxSize() diff --git a/app/src/main/java/com/cherrish/android/presentation/home/HomeViewModel.kt b/app/src/main/java/com/cherrish/android/presentation/home/HomeViewModel.kt index 6b21ef623..67759620c 100644 --- a/app/src/main/java/com/cherrish/android/presentation/home/HomeViewModel.kt +++ b/app/src/main/java/com/cherrish/android/presentation/home/HomeViewModel.kt @@ -40,18 +40,20 @@ class HomeViewModel @Inject constructor( _uiState.update { UiState.Loading } homeRepository.getMainDashboard().onSuccess { response -> + val level = response.cherryLevel + val safeIndex = level.coerceIn(1, CherrishGaugeType.entries.lastIndex + ) _uiState.update { UiState.Success( HomeUiState( - currentStep = response.cherryLevel, + currentStep = level, gauges = CherrishGaugeType.entries.toImmutableList(), challengeRate = response.challengeRate, challengeName = response.challengeName, todayDate = response.toTodayDateString(), plans = response.recentProcedures.toImmutableList(), upcomingPlans = response.upcomingProcedures.toImmutableList(), - selectedIndex = (response.cherryLevel - 1) - .coerceIn(0, CherrishGaugeType.entries.size - 1) + selectedIndex = safeIndex ) ) } diff --git a/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt b/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt index aebd11235..955396027 100644 --- a/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt +++ b/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt @@ -40,7 +40,7 @@ fun ChallengeSection( gauges: ImmutableList, modifier: Modifier = Modifier, currentStep: Int = 0, - @DrawableRes imageRes: Int? = R.drawable.img_challenge_lv2, + @DrawableRes imageRes: Int? = R.drawable.img_challenge_lv1, onChallengeStartClick: () -> Unit = {}, challengeName: String? = "웰니스 • 마음챙김", challengeRate: Int = 0 diff --git a/app/src/main/java/com/cherrish/android/presentation/mypage/MyPageScreen.kt b/app/src/main/java/com/cherrish/android/presentation/mypage/MyPageScreen.kt index 0a4491ff1..9393cb07c 100644 --- a/app/src/main/java/com/cherrish/android/presentation/mypage/MyPageScreen.kt +++ b/app/src/main/java/com/cherrish/android/presentation/mypage/MyPageScreen.kt @@ -87,6 +87,7 @@ private fun MyPageScreen( Text( text = "앗! 아직 준비중이에요.", color = CherrishTheme.colors.gray600, + style = CherrishTheme.typography.body1M14, modifier = Modifier.padding(top = 20.dp) ) diff --git a/app/src/main/java/com/cherrish/android/presentation/mypage/component/MyPageHeader.kt b/app/src/main/java/com/cherrish/android/presentation/mypage/component/MyPageHeader.kt index 23a2d67c2..9e8ca598b 100644 --- a/app/src/main/java/com/cherrish/android/presentation/mypage/component/MyPageHeader.kt +++ b/app/src/main/java/com/cherrish/android/presentation/mypage/component/MyPageHeader.kt @@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -33,9 +34,12 @@ fun MyPageHeader( Image( painter = painterResource(id = profileIcon), contentDescription = null, - modifier = Modifier.clip(CircleShape) + modifier = Modifier + .size(48.dp) + .clip(CircleShape) ) + Column( modifier = Modifier.fillMaxWidth() ) { From 951713b13fb39351ef0c3d1cd0bb6f543eb6d1a4 Mon Sep 17 00:00:00 2001 From: sohee <144779368+sohee6989@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:34:12 +0900 Subject: [PATCH 2/8] =?UTF-8?q?[CHORE/#143]=20ktlint=20=EC=B2=B4=ED=81=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cherrish/android/presentation/home/HomeViewModel.kt | 4 +++- .../android/presentation/mypage/component/MyPageHeader.kt | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/cherrish/android/presentation/home/HomeViewModel.kt b/app/src/main/java/com/cherrish/android/presentation/home/HomeViewModel.kt index 67759620c..a7bdd5de6 100644 --- a/app/src/main/java/com/cherrish/android/presentation/home/HomeViewModel.kt +++ b/app/src/main/java/com/cherrish/android/presentation/home/HomeViewModel.kt @@ -41,7 +41,9 @@ class HomeViewModel @Inject constructor( homeRepository.getMainDashboard().onSuccess { response -> val level = response.cherryLevel - val safeIndex = level.coerceIn(1, CherrishGaugeType.entries.lastIndex + val safeIndex = level.coerceIn( + 1, + CherrishGaugeType.entries.lastIndex ) _uiState.update { UiState.Success( diff --git a/app/src/main/java/com/cherrish/android/presentation/mypage/component/MyPageHeader.kt b/app/src/main/java/com/cherrish/android/presentation/mypage/component/MyPageHeader.kt index 9e8ca598b..b5b1ec796 100644 --- a/app/src/main/java/com/cherrish/android/presentation/mypage/component/MyPageHeader.kt +++ b/app/src/main/java/com/cherrish/android/presentation/mypage/component/MyPageHeader.kt @@ -39,7 +39,6 @@ fun MyPageHeader( .clip(CircleShape) ) - Column( modifier = Modifier.fillMaxWidth() ) { From 4b16d0b812d405b6a3dc899180eb2160484aa1be Mon Sep 17 00:00:00 2001 From: sohee <144779368+sohee6989@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:41:39 +0900 Subject: [PATCH 3/8] =?UTF-8?q?[CHORE/#143]=20=EC=9E=90=EB=8F=99=20?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=9E=84=EC=8B=9C=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/presentation/splash/SplashViewModel.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/cherrish/android/presentation/splash/SplashViewModel.kt b/app/src/main/java/com/cherrish/android/presentation/splash/SplashViewModel.kt index 629282f68..a62445dcd 100644 --- a/app/src/main/java/com/cherrish/android/presentation/splash/SplashViewModel.kt +++ b/app/src/main/java/com/cherrish/android/presentation/splash/SplashViewModel.kt @@ -21,11 +21,12 @@ class SplashViewModel @Inject constructor( viewModelScope.launch { val id = tokenManager.getId() _sideEffect.emit( - if (id != null) { - SplashSideEffect.NavigateToHome - } else { - SplashSideEffect.NavigateToOnboarding - } + SplashSideEffect.NavigateToOnboarding +// if (id != null) { +// SplashSideEffect.NavigateToHome +// } else { +// SplashSideEffect.NavigateToOnboarding +// } ) } } From 1c38c276cc3707af9e09c20e9acd0651efdd1359 Mon Sep 17 00:00:00 2001 From: sohee <144779368+sohee6989@users.noreply.github.com> Date: Fri, 23 Jan 2026 01:22:40 +0900 Subject: [PATCH 4/8] =?UTF-8?q?[CHORE/#143]=202=EC=B0=A8=20qa=20=EB=B0=98?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/core/designsystem/theme/Color.kt | 4 ++-- .../ChallengeMissionProgressViewModel.kt | 11 ++++++++++- .../cherrish/android/presentation/home/HomeScreen.kt | 12 ++---------- .../android/presentation/home/HomeViewModel.kt | 2 +- .../presentation/home/component/ChallengeSection.kt | 10 ++++++---- .../presentation/home/type/CherrishGaugeType.kt | 4 ++-- 6 files changed, 23 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/cherrish/android/core/designsystem/theme/Color.kt b/app/src/main/java/com/cherrish/android/core/designsystem/theme/Color.kt index 927bb0f50..a0ece2828 100644 --- a/app/src/main/java/com/cherrish/android/core/designsystem/theme/Color.kt +++ b/app/src/main/java/com/cherrish/android/core/designsystem/theme/Color.kt @@ -38,9 +38,9 @@ val green3 = Color(0xFF9AD342) val shadow = Color(0xFF9098A7).copy(alpha = 0.12f) val gradation = Color(0xFFFFFDFD) -val gradation2 = Color(0xFFFAE0E6) +val gradation2 = Color(0xFFFFE0E0) -val graStart = Color(0xFFFFF7f7) +val graStart = Color(0xFFFFEBEB) val graEnd = Color(0xFFFFFDFD) val bottomSheetScrimColor = Color(0x1A464C52) diff --git a/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt b/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt index c4df655bb..c77d18b77 100644 --- a/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt +++ b/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt @@ -98,13 +98,22 @@ class ChallengeMissionProgressViewModel @Inject constructor( } private fun ChallengeMissionProgressResponseModel.toUiState(): ChallengeMissionProgressUiState { - val cherryType = CherryType.entries.first { it.step == cherryLevel } + val stepForUi = when (cherryLevel) { + 0, 1 -> 1 + else -> cherryLevel + } + + val cherryType = CherryType.entries.firstOrNull { it.step == stepForUi } + ?: CherryType.MONGRONG + val isMaxLevel = cherryType == CherryType.KKUKKU + val remainingText = if (isMaxLevel) { "챌린지 완료까지 ${remainingRoutinesToNextLevel}개의 미션을 수행해야 해요!" } else { "체리가 크려면 ${remainingRoutinesToNextLevel}개의 미션을 수행해야 해요!" } + val completeButtonText = if (isMaxLevel) { "챌린지 완료하기" } else { diff --git a/app/src/main/java/com/cherrish/android/presentation/home/HomeScreen.kt b/app/src/main/java/com/cherrish/android/presentation/home/HomeScreen.kt index 6accbbc01..e9577c6e0 100644 --- a/app/src/main/java/com/cherrish/android/presentation/home/HomeScreen.kt +++ b/app/src/main/java/com/cherrish/android/presentation/home/HomeScreen.kt @@ -10,7 +10,6 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush @@ -27,8 +26,8 @@ import com.cherrish.android.core.designsystem.theme.graStart import com.cherrish.android.presentation.home.component.ChallengeSection import com.cherrish.android.presentation.home.component.PlanBoxSection import com.cherrish.android.presentation.home.component.UpcomingPlanSection -import java.time.LocalDate import kotlinx.collections.immutable.persistentListOf +import java.time.LocalDate @Composable fun HomeRoute( @@ -44,6 +43,7 @@ fun HomeRoute( is HomeSideEffect.NavigateToChallenge -> { navigateToChallenge() } + is HomeSideEffect.NavigateToCalendar -> { navigateToCalendar(sideEffect.date) } @@ -81,14 +81,6 @@ private fun HomeScreen( onAddPlanClick: () -> Unit, modifier: Modifier = Modifier ) { - LaunchedEffect(uiState.selectedIndex) { - val gauge = uiState.gauges.getOrNull(uiState.selectedIndex) - android.util.Log.d( - "HomeScreen", - "selectedIndex=${uiState.selectedIndex}, gauge=$gauge, image=${gauge?.image}" - ) - } - Box( modifier = modifier .fillMaxSize() diff --git a/app/src/main/java/com/cherrish/android/presentation/home/HomeViewModel.kt b/app/src/main/java/com/cherrish/android/presentation/home/HomeViewModel.kt index a7bdd5de6..dc9c57620 100644 --- a/app/src/main/java/com/cherrish/android/presentation/home/HomeViewModel.kt +++ b/app/src/main/java/com/cherrish/android/presentation/home/HomeViewModel.kt @@ -59,7 +59,7 @@ class HomeViewModel @Inject constructor( ) ) } - }.onLogFailure {} + }.onLogFailure { } } } diff --git a/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt b/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt index 955396027..4072e60a6 100644 --- a/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt +++ b/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt @@ -45,10 +45,12 @@ fun ChallengeSection( challengeName: String? = "웰니스 • 마음챙김", challengeRate: Int = 0 ) { + val hasChallenge = !challengeName.isNullOrBlank() + Box( modifier = modifier.fillMaxWidth() ) { - if (currentStep != 0 && imageRes != null) { + if (hasChallenge && imageRes != null) { Image( painter = painterResource(id = imageRes), contentDescription = null, @@ -71,9 +73,9 @@ fun ChallengeSection( Spacer(modifier = Modifier.height(10.dp)) - if (currentStep == 0) { + if (!hasChallenge) { NoChallenge( - currentStep = currentStep, + currentStep = 0, gauges = gauges, onChallengeStartClick = onChallengeStartClick ) @@ -97,7 +99,7 @@ private fun Challenge( challengeRate: Int, modifier: Modifier = Modifier ) { - val safeStep = currentStep.coerceIn(1, gauges.size) + val safeStep = currentStep.coerceIn(0, gauges.lastIndex) Column( modifier = modifier diff --git a/app/src/main/java/com/cherrish/android/presentation/home/type/CherrishGaugeType.kt b/app/src/main/java/com/cherrish/android/presentation/home/type/CherrishGaugeType.kt index 049fc7619..43af98131 100644 --- a/app/src/main/java/com/cherrish/android/presentation/home/type/CherrishGaugeType.kt +++ b/app/src/main/java/com/cherrish/android/presentation/home/type/CherrishGaugeType.kt @@ -5,9 +5,9 @@ import com.cherrish.android.R enum class CherrishGaugeType( val step: Int, - @DrawableRes val image: Int? + @DrawableRes val image: Int ) { - LEVEL0(step = 0, image = null), + LEVEL0(step = 0, image = R.drawable.img_home_lv1), LEVEL1(step = 1, image = R.drawable.img_home_lv1), LEVEL2(step = 2, image = R.drawable.img_home_lv2), LEVEL3(step = 3, image = R.drawable.img_home_lv3), From 5f8a10ea4861f8022bdb138e590265147f2e373f Mon Sep 17 00:00:00 2001 From: sohee <144779368+sohee6989@users.noreply.github.com> Date: Fri, 23 Jan 2026 02:35:14 +0900 Subject: [PATCH 5/8] =?UTF-8?q?[FIX/#143]=20=EC=B1=8C=EB=A6=B0=EC=A7=80=20?= =?UTF-8?q?gauge=20=EB=B0=98=EC=98=81=20=EC=98=A4=EB=A5=98=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChallengeMissionProgressCherrygrowth.kt | 8 +++++--- .../ChallengeMissionProgressScreen.kt | 2 ++ .../ChallengeMissionProgressUiState.kt | 1 + .../ChallengeMissionProgressViewModel.kt | 17 +++++++++-------- .../home/component/ChallengeSection.kt | 4 ++-- 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/cherrish/android/presentation/challenge/component/ChallengeMissionProgressCherrygrowth.kt b/app/src/main/java/com/cherrish/android/presentation/challenge/component/ChallengeMissionProgressCherrygrowth.kt index 010d4eb7d..6cb7a0a42 100644 --- a/app/src/main/java/com/cherrish/android/presentation/challenge/component/ChallengeMissionProgressCherrygrowth.kt +++ b/app/src/main/java/com/cherrish/android/presentation/challenge/component/ChallengeMissionProgressCherrygrowth.kt @@ -31,6 +31,7 @@ import kotlinx.collections.immutable.toImmutableList @Composable fun ChallengeMissionProgressCherrygrowth( cherryType: CherryType, + gaugeStep: Int, remainingGuideText: String, challengeProgress: Int, modifier: Modifier = Modifier @@ -86,7 +87,7 @@ fun ChallengeMissionProgressCherrygrowth( CherryGrowthProgressSection( challengeProgress = challengeProgress, - cherryType = cherryType, + gaugeStep = gaugeStep, modifier = Modifier .fillMaxWidth() .padding(horizontal = 18.dp) @@ -121,7 +122,7 @@ private fun CherryGrowthSection( @Composable private fun CherryGrowthProgressSection( challengeProgress: Int, - cherryType: CherryType, + gaugeStep: Int, modifier: Modifier = Modifier ) { Column( @@ -147,7 +148,7 @@ private fun CherryGrowthProgressSection( } CherrishGaugeBar( - currentStep = cherryType.step, + currentStep = gaugeStep, gauges = CherrishGaugeType.entries.toImmutableList() ) @@ -179,6 +180,7 @@ private fun ChallengeMissionProgressCherrygrowthPreview() { } ChallengeMissionProgressCherrygrowth( cherryType = type, + gaugeStep = 0, remainingGuideText = remainingGuide, challengeProgress = progress ) diff --git a/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressScreen.kt b/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressScreen.kt index 98bc3123f..e8ee624cf 100644 --- a/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressScreen.kt +++ b/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressScreen.kt @@ -91,6 +91,7 @@ private fun ChallengeMissionprogressScreen( item { ChallengeMissionProgressCherrygrowth( cherryType = uiState.cherryType, + gaugeStep = uiState.gaugeStep, remainingGuideText = uiState.remainingGuideText, challengeProgress = uiState.progressPercentage ) @@ -162,6 +163,7 @@ private fun ChallengeMissionprogressScreenPreview() { challengeName = "피부 컨디션 챌린지", currentDay = 3, cherryType = CherryType.BBANGBBANG, + gaugeStep = 0, remainingCount = 3, progressPercentage = 25, remainingGuideText = "체리가 크려면 3개의 미션을 수행해야 해요!", diff --git a/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressUiState.kt b/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressUiState.kt index 5b484e278..420446332 100644 --- a/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressUiState.kt +++ b/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressUiState.kt @@ -9,6 +9,7 @@ data class ChallengeMissionProgressUiState( val challengeId: Long, val challengeName: String, val currentDay: Int, + val gaugeStep: Int, val cherryType: CherryType, val remainingCount: Int, val progressPercentage: Int, diff --git a/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt b/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt index c77d18b77..3aa02276c 100644 --- a/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt +++ b/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt @@ -98,12 +98,16 @@ class ChallengeMissionProgressViewModel @Inject constructor( } private fun ChallengeMissionProgressResponseModel.toUiState(): ChallengeMissionProgressUiState { - val stepForUi = when (cherryLevel) { + // ✅ 게이지는 서버값 그대로: 0이면 아무것도 활성화 X + val gaugeStep = cherryLevel.coerceIn(0, 4) + + // ✅ 이미지는 0,1 둘 다 몽롱(Lv1)로 + val stepForCherry = when (cherryLevel) { 0, 1 -> 1 else -> cherryLevel } - val cherryType = CherryType.entries.firstOrNull { it.step == stepForUi } + val cherryType = CherryType.entries.firstOrNull { it.step == stepForCherry } ?: CherryType.MONGRONG val isMaxLevel = cherryType == CherryType.KKUKKU @@ -114,19 +118,16 @@ private fun ChallengeMissionProgressResponseModel.toUiState(): ChallengeMissionP "체리가 크려면 ${remainingRoutinesToNextLevel}개의 미션을 수행해야 해요!" } - val completeButtonText = if (isMaxLevel) { - "챌린지 완료하기" - } else { - "오늘 미션 종료하기" - } + val completeButtonText = if (isMaxLevel) "챌린지 완료하기" else "오늘 미션 종료하기" return ChallengeMissionProgressUiState( challengeId = challengeId, challengeName = title, currentDay = currentDay, - progressPercentage = progressPercentage, cherryType = cherryType, + gaugeStep = gaugeStep, remainingCount = remainingRoutinesToNextLevel, + progressPercentage = progressPercentage, routines = todayRoutines.map { routine -> ChallengeRoutineUiModel( routineId = routine.routineId, diff --git a/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt b/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt index 4072e60a6..a5dc3a1c2 100644 --- a/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt +++ b/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt @@ -99,7 +99,7 @@ private fun Challenge( challengeRate: Int, modifier: Modifier = Modifier ) { - val safeStep = currentStep.coerceIn(0, gauges.lastIndex) +// val safeStep = currentStep.coerceIn(0, gauges.lastIndex) Column( modifier = modifier @@ -141,7 +141,7 @@ private fun Challenge( Spacer(modifier = Modifier.height(16.dp)) CherrishGaugeBar( - currentStep = safeStep, + currentStep = currentStep, gauges = gauges ) } From d3bba7493db69a73238751fa787947c3d464b926 Mon Sep 17 00:00:00 2001 From: sohee <144779368+sohee6989@users.noreply.github.com> Date: Fri, 23 Jan 2026 02:36:06 +0900 Subject: [PATCH 6/8] =?UTF-8?q?[CHORE/#143]=20ktlint=20=EC=B2=B4=ED=81=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cherrish/android/presentation/home/HomeScreen.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/cherrish/android/presentation/home/HomeScreen.kt b/app/src/main/java/com/cherrish/android/presentation/home/HomeScreen.kt index e9577c6e0..92b93763a 100644 --- a/app/src/main/java/com/cherrish/android/presentation/home/HomeScreen.kt +++ b/app/src/main/java/com/cherrish/android/presentation/home/HomeScreen.kt @@ -26,8 +26,8 @@ import com.cherrish.android.core.designsystem.theme.graStart import com.cherrish.android.presentation.home.component.ChallengeSection import com.cherrish.android.presentation.home.component.PlanBoxSection import com.cherrish.android.presentation.home.component.UpcomingPlanSection -import kotlinx.collections.immutable.persistentListOf import java.time.LocalDate +import kotlinx.collections.immutable.persistentListOf @Composable fun HomeRoute( From e34e47e4d9232ae666897f7db93405951044d35e Mon Sep 17 00:00:00 2001 From: Kim Nahyeon Date: Fri, 23 Jan 2026 03:00:23 +0900 Subject: [PATCH 7/8] =?UTF-8?q?[CHORE/#143]=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=A3=BC=EC=84=9D=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../missionprogress/ChallengeMissionProgressViewModel.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt b/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt index 3aa02276c..2b8eed4e2 100644 --- a/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt +++ b/app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt @@ -98,10 +98,8 @@ class ChallengeMissionProgressViewModel @Inject constructor( } private fun ChallengeMissionProgressResponseModel.toUiState(): ChallengeMissionProgressUiState { - // ✅ 게이지는 서버값 그대로: 0이면 아무것도 활성화 X val gaugeStep = cherryLevel.coerceIn(0, 4) - // ✅ 이미지는 0,1 둘 다 몽롱(Lv1)로 val stepForCherry = when (cherryLevel) { 0, 1 -> 1 else -> cherryLevel @@ -118,7 +116,7 @@ private fun ChallengeMissionProgressResponseModel.toUiState(): ChallengeMissionP "체리가 크려면 ${remainingRoutinesToNextLevel}개의 미션을 수행해야 해요!" } - val completeButtonText = if (isMaxLevel) "챌린지 완료하기" else "오늘 미션 종료하기" + val completeButtonText = if (isMaxLevel) "챌린지 종료하기" else "오늘 미션 종료하기" return ChallengeMissionProgressUiState( challengeId = challengeId, From 2987191dc6bd46bf99ec7990b7782370de5ac658 Mon Sep 17 00:00:00 2001 From: Kim Nahyeon Date: Fri, 23 Jan 2026 03:01:43 +0900 Subject: [PATCH 8/8] =?UTF-8?q?[CHORE/#143]=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=A3=BC=EC=84=9D=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/presentation/home/component/ChallengeSection.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt b/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt index a5dc3a1c2..002bb9310 100644 --- a/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt +++ b/app/src/main/java/com/cherrish/android/presentation/home/component/ChallengeSection.kt @@ -99,8 +99,6 @@ private fun Challenge( challengeRate: Int, modifier: Modifier = Modifier ) { -// val safeStep = currentStep.coerceIn(0, gauges.lastIndex) - Column( modifier = modifier .fillMaxWidth()