Conversation
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 57 minutes and 14 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
Walkthrough작성 화면의 폴더 선택, 이미지 편집 버튼, 바텀시트 항목 및 관련 드로어블들을 수정했습니다. 썸네일 폴백 로직·체크마크 아이콘·잠금 아이콘 색상·레이아웃 패딩/정렬과 새로운 벡터 리소스들이 추가/교체되었습니다. Changes
Possibly related PRs
🚥 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🧪 Generate unit tests (beta)
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 |
| autoSize = TextAutoSize.StepBased( | ||
| minFontSize = 12.sp, | ||
| maxFontSize = 14.sp, | ||
| stepSize = 0.25.sp, | ||
| ), | ||
| maxLines = 1, | ||
| overflow = TextOverflow.Ellipsis |
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
presentation/src/main/java/daily/dayo/presentation/screen/write/WriteFolderScreen.kt (1)
268-291:⚠️ Potential issue | 🟡 Minor기본 폴더 로고가 썸네일 영역에서 세로로 잘릴 수 있습니다.
folder.thumbnailImage가 비어 있으면thumbnailModel은R.drawable.img_default_folder_dayo_logo가 되는데,RoundImageView는 항상ContentScale.Crop을 적용합니다. 이 로고는 44×46 비율이므로 정사각형 컨테이너에서 위아래가 미세하게 잘립니다.정사각형 로고 에셋을 사용하거나, 로고만
ContentScale.Fit으로 처리하는 조건문을 추가하면 일관된 렌더링을 보장할 수 있습니다.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@presentation/src/main/java/daily/dayo/presentation/screen/write/WriteFolderScreen.kt` around lines 268 - 291, thumbnailModel currently becomes a drawable resource (R.drawable.img_default_folder_dayo_logo) when folder.thumbnailImage is blank but RoundImageView always uses ContentScale.Crop, which crops the default 44×46 logo; update the rendering branch that creates RoundImageView so it detects whether thumbnailModel is a local drawable (Int) vs a remote URL (String) and set the image scaling accordingly — use ContentScale.Fit (or equivalent) when thumbnailModel is the drawable placeholder and keep ContentScale.Crop for URL images; reference thumbnailModel, RoundImageView, folder.thumbnailImage and placeholderResId to locate and adjust the component props or overload to accept a contentScale parameter.
🧹 Nitpick comments (2)
presentation/src/main/java/daily/dayo/presentation/view/dialog/BottomSheetDialog.kt (1)
131-145:Arrangement.SpaceBetween와weight(1f)조합 정리 제안 (nit).
Text에Modifier.weight(1f)가 적용되어 남는 공간을 전부 차지하므로,Row의horizontalArrangement = Arrangement.SpaceBetween은 사실상 동작하지 않습니다. 의도(좌 아이콘 – 텍스트 – 우 체크 아이콘 정렬)는weight만으로 충분히 달성되니, 가독성 측면에서Arrangement.Start로 바꾸거나SpaceBetween을 제거하는 편이 깔끔합니다. 기능상 문제는 없습니다.♻️ 제안 diff
Row( modifier = Modifier ... .padding(vertical = 8.dp, horizontal = 12.dp), - horizontalArrangement = Arrangement.SpaceBetween, verticalAlignment = Alignment.CenterVertically ) {🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@presentation/src/main/java/daily/dayo/presentation/view/dialog/BottomSheetDialog.kt` around lines 131 - 145, The Row currently uses horizontalArrangement = Arrangement.SpaceBetween while the Text uses Modifier.weight(1f), making SpaceBetween redundant; in BottomSheetDialog (the Row that contains Icon, Spacer, Text, etc.) replace Arrangement.SpaceBetween with Arrangement.Start (or remove the arrangement) so layout intent (left icon - expanding text - right check icon) is achieved by the weight alone and improves readability; update the Row declaration where Arrangement.SpaceBetween appears and keep the existing Modifier.weight(1f) on the Text and icons unchanged.presentation/src/main/java/daily/dayo/presentation/screen/write/WriteScreen.kt (1)
693-708: 문자열 리소스 반복 조회 — 루프 밖으로 빼는 것을 권장
joinToString람다 내부에서 태그마다ContextCompat.getString(...)을 호출하고 있어 동일 리소스를 N번 로드합니다. 한 번만 읽어format만 반복하도록 바꾸면 깔끔하고 리컴포지션 비용도 줄어듭니다. 또한 컴포저블에서는stringResource(...)를 쓰는 편이 관용적입니다.♻️ 제안 diff
- val tag = tags.joinToString(separator = ", ") { - ContextCompat.getString(context, R.string.write_post_select_tag_contents).format(it) - } + val tagTemplate = stringResource(R.string.write_post_select_tag_contents) + val tag = tags.joinToString(separator = ", ") { tagTemplate.format(it) }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@presentation/src/main/java/daily/dayo/presentation/screen/write/WriteScreen.kt` around lines 693 - 708, tags.joinToString 호출 내부에서 반복적으로 ContextCompat.getString을 호출해 동일 리소스를 N번 불러오고 있으니, getString 호출을 joinToString 밖으로 빼고 포맷 문자열만 반복 사용하도록 변경하세요; 구체적으로 WriteScreen의 tags 처리부에서 val tagFormat = stringResource(R.string.write_post_select_tag_contents) (또는 ContextCompat.getString(context, ... ) 한 번만 호출)로 포맷 문자열을 미리 가져오고 joinToString { tagFormat.format(it) }로 변경하여 리컴포지션 비용을 줄이세요.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@presentation/src/main/java/daily/dayo/presentation/screen/write/WriteFolderScreen.kt`:
- Around line 300-308: Replace the hardcoded accessibility label "Selected"
passed to the Image composable's contentDescription with a string resource
lookup; update the Image call in WriteFolderScreen.kt (the Image that uses
painterResource(id = R.drawable.ic_check_corner_round) and contentDescription =
"Selected") to use contentDescription =
stringResource(R.string.some_selected_label) and add the corresponding entry in
strings.xml (e.g., <string name="some_selected_label">Selected</string>) so
TalkBack and localization are supported.
In `@presentation/src/main/res/drawable/ic_check_corner_round.xml`:
- Around line 1-6: The vector drawable sets android:autoMirrored="true" which
causes the checkmark to flip in RTL; update the vector drawable (root <vector>
element) to remove the android:autoMirrored attribute or set
android:autoMirrored="false" so the checkmark does not mirror in RTL
environments, leaving the rest of the <vector> attributes (android:width,
android:height, android:viewportWidth, android:viewportHeight) unchanged.
In `@presentation/src/main/res/drawable/img_default_folder_dayo_logo.xml`:
- Around line 1-6: The vector drawable currently sets
android:autoMirrored="true", which causes the brand logo to be flipped in RTL
locales; update the <vector> element to disable mirroring by setting
android:autoMirrored="false" (or remove the attribute) so the logo remains
unmirrored in RTL environments; locate the <vector> tag that contains
android:width/android:height/android:viewportWidth/android:viewportHeight and
change android:autoMirrored accordingly.
---
Outside diff comments:
In
`@presentation/src/main/java/daily/dayo/presentation/screen/write/WriteFolderScreen.kt`:
- Around line 268-291: thumbnailModel currently becomes a drawable resource
(R.drawable.img_default_folder_dayo_logo) when folder.thumbnailImage is blank
but RoundImageView always uses ContentScale.Crop, which crops the default 44×46
logo; update the rendering branch that creates RoundImageView so it detects
whether thumbnailModel is a local drawable (Int) vs a remote URL (String) and
set the image scaling accordingly — use ContentScale.Fit (or equivalent) when
thumbnailModel is the drawable placeholder and keep ContentScale.Crop for URL
images; reference thumbnailModel, RoundImageView, folder.thumbnailImage and
placeholderResId to locate and adjust the component props or overload to accept
a contentScale parameter.
---
Nitpick comments:
In
`@presentation/src/main/java/daily/dayo/presentation/screen/write/WriteScreen.kt`:
- Around line 693-708: tags.joinToString 호출 내부에서 반복적으로 ContextCompat.getString을
호출해 동일 리소스를 N번 불러오고 있으니, getString 호출을 joinToString 밖으로 빼고 포맷 문자열만 반복 사용하도록
변경하세요; 구체적으로 WriteScreen의 tags 처리부에서 val tagFormat =
stringResource(R.string.write_post_select_tag_contents) (또는
ContextCompat.getString(context, ... ) 한 번만 호출)로 포맷 문자열을 미리 가져오고 joinToString {
tagFormat.format(it) }로 변경하여 리컴포지션 비용을 줄이세요.
In
`@presentation/src/main/java/daily/dayo/presentation/view/dialog/BottomSheetDialog.kt`:
- Around line 131-145: The Row currently uses horizontalArrangement =
Arrangement.SpaceBetween while the Text uses Modifier.weight(1f), making
SpaceBetween redundant; in BottomSheetDialog (the Row that contains Icon,
Spacer, Text, etc.) replace Arrangement.SpaceBetween with Arrangement.Start (or
remove the arrangement) so layout intent (left icon - expanding text - right
check icon) is achieved by the weight alone and improves readability; update the
Row declaration where Arrangement.SpaceBetween appears and keep the existing
Modifier.weight(1f) on the Text and icons unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 1c2dce4a-ee55-476a-849c-578f3a2ae1fc
📒 Files selected for processing (6)
presentation/src/main/java/daily/dayo/presentation/screen/write/WriteFolderScreen.ktpresentation/src/main/java/daily/dayo/presentation/screen/write/WriteScreen.ktpresentation/src/main/java/daily/dayo/presentation/view/dialog/BottomSheetDialog.ktpresentation/src/main/res/drawable/ic_check_corner_round.xmlpresentation/src/main/res/drawable/ic_lock.xmlpresentation/src/main/res/drawable/img_default_folder_dayo_logo.xml
작업 내용
참고
PR 요약: Design QA 기반 Write UI 수정
모듈별 기능 영향도
1. WriteScreen.kt (이미지 편집 및 요약 레이아웃)
2. WriteFolderScreen.kt (폴더 선택 스크린)
3. BottomSheetDialog.kt (카테고리 바텀시트)
해결된 이슈 참조
위험 포인트
필수 검증 및 테스트
기능 테스트
기기/언어별 검증
회귀 테스트
결론: UI/리소스 중심의 디자인 QA 수정으로 사용자 가시성 및 디자인 일관성이 개선되며, 주요 리스크는 이미지 로드 플로우와 텍스트 자동 크기 조정, 그리고 drawable autoMirrored 변경에 따른 RTL/미러링 동작이다. 위 항목 중심으로 기기·언어·네트워크 환경에서 검증을 권장한다.