[NDGL-122] 여행 도구 탭 UI 이슈 수정 및 홈 화면 닉네임 연결#39
Conversation
Walkthrough사용자 닉네임 관리 기능을 데이터 계층에 추가하고, 홈 화면에서 로드하며, 통화 계산기 섹션의 UI 상태 관리를 리팩토링하고 아이콘 리소스를 변경합니다. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 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 |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
feature/travel-helper/src/main/java/com/yapp/ndgl/feature/travelhelper/main/CurrencyCalculatorSection.kt (1)
113-119:⚠️ Potential issue | 🟠 Major스왑 액션에 접근성 레이블을 추가해 주세요.
클릭 가능한 스왑 컨트롤이 현재 보조기기에서 의미 없이 노출될 수 있습니다. 액션 의미를 읽을 수 있도록 레이블을 부여하는 게 좋습니다.
🔧 제안 수정안
Box( modifier = Modifier .size(32.dp) .clip(RoundedCornerShape(8.dp)) .background(NDGLTheme.colors.black50) - .clickable(onClick = onSwap), + .clickable( + onClickLabel = stringResource(R.string.travel_helper_currency_swap), + onClick = onSwap, + ), contentAlignment = Alignment.Center, ) { Icon( imageVector = ImageVector.vectorResource(CoreR.drawable.ic_24_change), - contentDescription = null, + contentDescription = stringResource(R.string.travel_helper_currency_swap), modifier = Modifier.size(24.dp), tint = NDGLTheme.colors.black900, ) }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@feature/travel-helper/src/main/java/com/yapp/ndgl/feature/travelhelper/main/CurrencyCalculatorSection.kt` around lines 113 - 119, The swap control in CurrencyCalculatorSection is missing an accessibility label; update the clickable Icon (currently using ImageVector.vectorResource and onSwap) to expose a clear contentDescription/semantics label (e.g., a localized "Swap currencies" string) and ensure its semantics role is set as a button so assistive technologies announce the action; modify the Icon usage or its Modifier (clickable/semantics) to provide the contentDescription and role while keeping onSwap as the click handler.
🧹 Nitpick comments (1)
data/auth/src/main/java/com/yapp/ndgl/data/auth/local/LocalAuthDataSource.kt (1)
48-57: 닉네임이 암호화 없이 저장됩니다.
accessToken과uuid는cryptoManager.encrypt/decrypt를 사용하여 암호화되지만,nickname은 평문으로 저장됩니다. 닉네임은 민감한 정보가 아니므로 의도적인 설계일 수 있으나, 일관성 측면에서 확인이 필요합니다.만약 의도된 동작이라면 무시해도 됩니다.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@data/auth/src/main/java/com/yapp/ndgl/data/auth/local/LocalAuthDataSource.kt` around lines 48 - 57, The nickname is being stored in plaintext while accessToken/uuid use cryptoManager.encrypt/decrypt; update setNickname and getNickname to use the same crypto APIs so storage is consistent: in setNickname(nickname: String) call cryptoManager.encrypt(nickname) and store the cipher text to NICKNAME_KEY, and in getNickname() map the stored value through cryptoManager.decrypt(...) (handling null/empty and decryption errors similar to how accessToken/uuid are handled, e.g., via handleException()) so callers receive the decrypted nickname. Ensure you reference NICKNAME_KEY, getNickname, setNickname, and the existing cryptoManager.encrypt/decrypt methods when making the change.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Outside diff comments:
In
`@feature/travel-helper/src/main/java/com/yapp/ndgl/feature/travelhelper/main/CurrencyCalculatorSection.kt`:
- Around line 113-119: The swap control in CurrencyCalculatorSection is missing
an accessibility label; update the clickable Icon (currently using
ImageVector.vectorResource and onSwap) to expose a clear
contentDescription/semantics label (e.g., a localized "Swap currencies" string)
and ensure its semantics role is set as a button so assistive technologies
announce the action; modify the Icon usage or its Modifier (clickable/semantics)
to provide the contentDescription and role while keeping onSwap as the click
handler.
---
Nitpick comments:
In
`@data/auth/src/main/java/com/yapp/ndgl/data/auth/local/LocalAuthDataSource.kt`:
- Around line 48-57: The nickname is being stored in plaintext while
accessToken/uuid use cryptoManager.encrypt/decrypt; update setNickname and
getNickname to use the same crypto APIs so storage is consistent: in
setNickname(nickname: String) call cryptoManager.encrypt(nickname) and store the
cipher text to NICKNAME_KEY, and in getNickname() map the stored value through
cryptoManager.decrypt(...) (handling null/empty and decryption errors similar to
how accessToken/uuid are handled, e.g., via handleException()) so callers
receive the decrypted nickname. Ensure you reference NICKNAME_KEY, getNickname,
setNickname, and the existing cryptoManager.encrypt/decrypt methods when making
the change.
ℹ️ Review info
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
core/ui/src/main/res/drawable/ic_24_change.xmldata/auth/src/main/java/com/yapp/ndgl/data/auth/local/LocalAuthDataSource.ktdata/auth/src/main/java/com/yapp/ndgl/data/auth/repository/AuthRepository.ktfeature/home/src/main/java/com/yapp/ndgl/feature/home/main/HomeViewModel.ktfeature/travel-helper/src/main/java/com/yapp/ndgl/feature/travelhelper/main/CurrencyCalculatorSection.ktfeature/travel-helper/src/main/res/drawable/ic_24_updown.xml
💤 Files with no reviewable changes (1)
- feature/travel-helper/src/main/res/drawable/ic_24_updown.xml
NDGL-122 여행 도구 탭 UI 이슈 수정 및 홈 화면 닉네임 연결
연관 문서
스크린샷 (Optional)
변경사항
테스트 체크 리스트
Summary by CodeRabbit
새로운 기능
개선 사항