Conversation
📝 WalkthroughWalkthrough파티 상세 화면에서 업로드 일시 표시를 상대 시간(예: "4시간 전") 형식에서 절대 날짜(예: "2026-01-22") 형식으로 변경합니다. 새로운 확장 함수를 통해 ISO 형식 타임스탬프를 파싱하여 로컬라이제이션된 날짜 문자열로 변환합니다. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 분 Modern Android Development 관점의 검토 의견이 변경은 다음 사항들이 긍정적입니다: ✅ 확장 함수 활용: ✅ 예외 처리: ✅ 리소스 문자열 사용: 다국어 지원을 위해 하드코딩된 문자열 대신
🚥 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 |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In
`@app/src/main/java/com/poti/android/presentation/party/detail/component/PartyDetailHeaderInfo.kt`:
- Around line 68-72: In PartyDetailHeaderInfo (the composable using
partyDetail.uploadTime.toPartyUploadDate()), avoid showing just the label when
parsing fails by conditionally rendering the Text: call toPartyUploadDate() and
if it returns null either hide the entire Text composable or use the raw
uploadTime string as a fallback; specifically, replace the unconditional Text
that uses stringResource(R.string.party_detail_upload_date_label,
(partyDetail.uploadTime.toPartyUploadDate() ?: "")) with a conditional that only
emits the Text when the parsed date is non-null (or passes the original
uploadTime into the stringResource when you choose fallback).
In `@app/src/main/res/values/strings.xml`:
- Line 70: The string resource party_detail_upload_date_label currently includes
literal double quotes (" %s 등록 ") that will be shown in the UI; remove the
surrounding quotes and use a proper format placeholder (e.g., change the value
to use %1$s 등록) so formatted text is substituted without visible quotes,
updating the string resource party_detail_upload_date_label accordingly.
🧹 Nitpick comments (1)
app/src/main/java/com/poti/android/core/common/extension/StringExt.kt (1)
7-14: 서버 포맷이 ISO_LOCAL_DATE_TIME일 경우 현재 코드는 정상 동작합니다.도메인 모델의 주석에서
uploadTime포맷이"2026-01-22T06:21:20.697608"(오프셋 없음)으로 명시되어 있고, 현재LocalDateTime.parse(this)는 이 포맷을 기본값으로 처리합니다. 따라서 문서화된 포맷에서는 파싱이 성공합니다.다만 서버가 향후 timezone 정보를 포함한 포맷으로 변경할 가능성에 대비하려면, 다음처럼 더 방어적으로 처리하는 것을 고려해볼 수 있습니다:
OffsetDateTime.parse()나ISO_DATE_TIME.parseBest()로 확장하기- 파싱 실패 시 로깅 추가하여 디버깅 용이하게 하기
현재 코드는 예외를 잘 처리하고 있지만, 서버 포맷 변경에 대한 사전 대비로 검토하길 권장합니다.
| Text( | ||
| text = partyDetail.uploadTime, | ||
| text = stringResource(R.string.party_detail_upload_date_label, (partyDetail.uploadTime.toPartyUploadDate() ?: "")), | ||
| style = PotiTheme.typography.body14m, | ||
| color = PotiTheme.colors.gray800, | ||
| ) |
There was a problem hiding this comment.
파싱 실패 시 ‘등록’만 노출되는 UI를 막아주세요.
현재 ?: ""로 인해 날짜 파싱 실패 시 “등록”만 표시됩니다. null일 때는 해당 Text를 숨기거나 원본 문자열로 fallback하는 쪽이 안전합니다.
🔧 숨김 처리 예시
- Text(
- text = stringResource(R.string.party_detail_upload_date_label, (partyDetail.uploadTime.toPartyUploadDate() ?: "")),
- style = PotiTheme.typography.body14m,
- color = PotiTheme.colors.gray800,
- )
+ val uploadDate = partyDetail.uploadTime.toPartyUploadDate()
+ if (uploadDate != null) {
+ Text(
+ text = stringResource(R.string.party_detail_upload_date_label, uploadDate),
+ style = PotiTheme.typography.body14m,
+ color = PotiTheme.colors.gray800,
+ )
+ }📝 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.
| Text( | |
| text = partyDetail.uploadTime, | |
| text = stringResource(R.string.party_detail_upload_date_label, (partyDetail.uploadTime.toPartyUploadDate() ?: "")), | |
| style = PotiTheme.typography.body14m, | |
| color = PotiTheme.colors.gray800, | |
| ) | |
| val uploadDate = partyDetail.uploadTime.toPartyUploadDate() | |
| if (uploadDate != null) { | |
| Text( | |
| text = stringResource(R.string.party_detail_upload_date_label, uploadDate), | |
| style = PotiTheme.typography.body14m, | |
| color = PotiTheme.colors.gray800, | |
| ) | |
| } |
🤖 Prompt for AI Agents
In
`@app/src/main/java/com/poti/android/presentation/party/detail/component/PartyDetailHeaderInfo.kt`
around lines 68 - 72, In PartyDetailHeaderInfo (the composable using
partyDetail.uploadTime.toPartyUploadDate()), avoid showing just the label when
parsing fails by conditionally rendering the Text: call toPartyUploadDate() and
if it returns null either hide the entire Text composable or use the raw
uploadTime string as a fallback; specifically, replace the unconditional Text
that uses stringResource(R.string.party_detail_upload_date_label,
(partyDetail.uploadTime.toPartyUploadDate() ?: "")) with a conditional that only
emits the Text when the parsed date is non-null (or passes the original
uploadTime into the stringResource when you choose fallback).
| </string-array> | ||
| <string name="party_detail_join_party">분철팟 참여하기</string> | ||
| <string name="party_detail_join_party_closed">마감된 분철팟이에요</string> | ||
| <string name="party_detail_upload_date_label">"%s 등록"</string> |
There was a problem hiding this comment.
문자열 리소스에 따옴표가 그대로 노출됩니다.
현재 값이 "%s 등록" 형태라 UI에 따옴표가 함께 표시될 수 있습니다. 요구사항이 따옴표 없는 표기라면 제거해주세요.
🔧 수정 제안
- <string name="party_detail_upload_date_label">"%s 등록"</string>
+ <string name="party_detail_upload_date_label">%s 등록</string>📝 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.
| <string name="party_detail_upload_date_label">"%s 등록"</string> | |
| <string name="party_detail_upload_date_label">%s 등록</string> |
🤖 Prompt for AI Agents
In `@app/src/main/res/values/strings.xml` at line 70, The string resource
party_detail_upload_date_label currently includes literal double quotes (" %s 등록
") that will be shown in the UI; remove the surrounding quotes and use a proper
format placeholder (e.g., change the value to use %1$s 등록) so formatted text is
substituted without visible quotes, updating the string resource
party_detail_upload_date_label accordingly.
| </string-array> | ||
| <string name="party_detail_join_party">분철팟 참여하기</string> | ||
| <string name="party_detail_join_party_closed">마감된 분철팟이에요</string> | ||
| <string name="party_detail_upload_date_label">"%s 등록"</string> |
There was a problem hiding this comment.
p2: " <- 이거 들어가도 잘 뜨는건가요?(진짜모름)
스크린샷에는 안보이넹
Related issue 🛠️
Work Description ✏️
Screenshot 📸
Uncompleted Tasks 😅
To Reviewers 📢
Summary by CodeRabbit
릴리스 노트
✏️ Tip: You can customize this high-level summary in your review settings.