-
Notifications
You must be signed in to change notification settings - Fork 0
[FIX/#135] 1차 QA 디자인 반영 #140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Walkthrough이 PR은 QA 피드백에 따라 챌린지 플로우 전체에 루틴명(routineName)을 전파하고, UI 컴포넌트들의 텍스트를 하드코딩된 문자열에서 동적 파라미터로 변경합니다. 또한 UI 간격과 버튼 레이블을 조정하고 체리 레벨 계산 로직을 수정합니다. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~35 minutes Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
sohee6989
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
app/src/main/java/com/cherrish/android/presentation/challenge/loading/ChallengeLoadingScreen.kt (1)
64-70: paddingValues를 먼저 적용해 인셋 겹침을 방지하세요Scaffold의
paddingValues는 루트 컨테이너에 먼저 적용하는 것이 안전합니다. 현재 추가 패딩이 먼저 적용되어 있어 순서 변경을 권장합니다. Based on learnings, ...🧩 제안 변경
modifier = modifier .fillMaxSize() .background(color = CherrishTheme.colors.gray0) - .padding(horizontal = 10.dp) .padding(paddingValues) + .padding(horizontal = 10.dp) .navigationBarsPadding(),
🤖 Fix all issues with AI agents
In
`@app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt`:
- Around line 100-103: The mapping in
ChallengeMissionProgressResponseModel.toUiState() uses CherryType.entries.first
{ it.step == cherryLevel } which will throw if no match; change to a safe lookup
(e.g., CherryType.entries.find/firstOrNull { it.step == cherryLevel } ?:
<safeFallback>) and use that result for cherryType and isMaxLevel; choose a
sensible fallback (for example CherryType.KKUKKU or CherryType.entries.last()/an
explicit UNKNOWN/default enum value) so the UI doesn't crash when the server
returns an unknown cherryLevel.
🧹 Nitpick comments (1)
app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressScreen.kt (1)
77-83: Scaffold paddingValues 적용 순서 정렬 권장
인셋 우선 반영을 위해 root modifier에서 paddingValues를 먼저 적용하는 패턴으로 맞춰 주세요.♻️ 제안 변경
- modifier = modifier - .fillMaxSize() - .background(CherrishTheme.colors.gray100) - .padding(paddingValues), + modifier = modifier + .padding(paddingValues) + .fillMaxSize() + .background(CherrishTheme.colors.gray100),Based on learnings, 패딩 적용 순서를 맞춰 주세요.
| private fun ChallengeMissionProgressResponseModel.toUiState(): ChallengeMissionProgressUiState { | ||
| val cherryType = CherryType.entries.first { it.step == cherryLevel } | ||
| val isMaxLevel = cherryType == CherryType.KKUKKU | ||
| val remainingText = if (isMaxLevel) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cherryLevel 매핑 실패 시 크래시 가능성
CherryType.entries.first { ... }는 매칭 실패 시 예외를 던집니다. 서버가 신규 레벨을 내려보내면 즉시 크래시하므로 안전한 fallback을 두는 편이 좋습니다.
🛠️ 제안 변경
- val cherryType = CherryType.entries.first { it.step == cherryLevel }
+ val cherryType = CherryType.entries
+ .firstOrNull { it.step == cherryLevel }
+ ?: CherryType.entries.first()📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| private fun ChallengeMissionProgressResponseModel.toUiState(): ChallengeMissionProgressUiState { | |
| val cherryType = CherryType.entries.first { it.step == cherryLevel } | |
| val isMaxLevel = cherryType == CherryType.KKUKKU | |
| val remainingText = if (isMaxLevel) { | |
| private fun ChallengeMissionProgressResponseModel.toUiState(): ChallengeMissionProgressUiState { | |
| val cherryType = CherryType.entries | |
| .firstOrNull { it.step == cherryLevel } | |
| ?: CherryType.entries.first() | |
| val isMaxLevel = cherryType == CherryType.KKUKKU | |
| val remainingText = if (isMaxLevel) { |
🤖 Prompt for AI Agents
In
`@app/src/main/java/com/cherrish/android/presentation/challenge/missionprogress/ChallengeMissionProgressViewModel.kt`
around lines 100 - 103, The mapping in
ChallengeMissionProgressResponseModel.toUiState() uses CherryType.entries.first
{ it.step == cherryLevel } which will throw if no match; change to a safe lookup
(e.g., CherryType.entries.find/firstOrNull { it.step == cherryLevel } ?:
<safeFallback>) and use that result for cherryType and isMaxLevel; choose a
sensible fallback (for example CherryType.KKUKKU or CherryType.entries.last()/an
explicit UNKNOWN/default enum value) so the UI doesn't crash when the server
returns an unknown cherryLevel.
usuuhyn
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.


Related issue 🛠
Work Description ✏️
Screenshot 📸
Uncompleted Tasks 😅
To Reviewers 📢
디자인 및 기획 수정 사항 반영 했습니다 !
마이페이지 관련 수정 사항은 디자이너님이 기기대응 이후에 다시 말씀해주신다고 하셔서 일단 반영 안 했습니다!!
Summary by CodeRabbit
변경 사항
새로운 기능
버그 수정
UX/UI 개선
✏️ Tip: You can customize this high-level summary in your review settings.