Skip to content

[NDGL-122] 여행 도구 탭 UI 이슈 수정 및 홈 화면 닉네임 연결#39

Merged
jihee-dev merged 2 commits intodevelopfrom
feature/NDGL-122/fix-ui-issue
Feb 26, 2026
Merged

[NDGL-122] 여행 도구 탭 UI 이슈 수정 및 홈 화면 닉네임 연결#39
jihee-dev merged 2 commits intodevelopfrom
feature/NDGL-122/fix-ui-issue

Conversation

@jihee-dev
Copy link
Copy Markdown
Member

@jihee-dev jihee-dev commented Feb 26, 2026

NDGL-122 여행 도구 탭 UI 이슈 수정 및 홈 화면 닉네임 연결


연관 문서

스크린샷 (Optional)

환율 계산기 영역 UI 수정 홈 화면 닉네임 연결
image image

변경사항

  • 여행 도구 탭 환율 계산기 아이콘 변경 및 편집 활성, 비활성 영역 구분
  • 홈 화면 추천 여행 섹션 타이틀에 닉네임 추가

테스트 체크 리스트

  • 여행 도구 환율 계산기 UI 확인
  • 홈 화면 추천 여행 섹션 제목에서 닉네임 확인

Summary by CodeRabbit

새로운 기능

  • 홈 화면에 사용자 닉네임이 표시됩니다.

개선 사항

  • 통화 계산기의 편집 상태 UI가 개선되었습니다.
  • 통화 계산기 아이콘이 업데이트되었습니다.

@jihee-dev jihee-dev self-assigned this Feb 26, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Feb 26, 2026

Walkthrough

사용자 닉네임 관리 기능을 데이터 계층에 추가하고, 홈 화면에서 로드하며, 통화 계산기 섹션의 UI 상태 관리를 리팩토링하고 아이콘 리소스를 변경합니다.

Changes

Cohort / File(s) Summary
Icon Resources
core/ui/src/main/res/drawable/ic_24_change.xml, feature/travel-helper/src/main/res/drawable/ic_24_updown.xml
새로운 24x24dp 변경 아이콘 추가 및 기존 위아래 화살표 아이콘 제거.
Auth Data Layer
data/auth/src/main/java/com/yapp/ndgl/data/auth/local/LocalAuthDataSource.kt, data/auth/src/main/java/com/yapp/ndgl/data/auth/repository/AuthRepository.kt
닉네임 저장 및 조회를 위한 메서드 추가. 인증 성공 시 닉네임 설정, 세션 종료 시 닉네임 제거.
Home Screen Integration
feature/home/src/main/java/com/yapp/ndgl/feature/home/main/HomeViewModel.kt
AuthRepository 의존성 추가 및 ViewModel 초기화 시 사용자 닉네임 로드 기능 구현.
Currency Calculator Refactoring
feature/travel-helper/src/main/java/com/yapp/ndgl/feature/travelhelper/main/CurrencyCalculatorSection.kt
showCurrencySelector 플래그를 isEditable로 변경. 아이콘 참조 업데이트, 조건부 UI 로직 수정, 텍스트 색상 및 입력 스타일을 편집 상태에 따라 동적으로 변경. Preview 컴포저블 추가.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목은 Jira 이슈 번호, 여행 도구 탭 UI 수정, 홈 화면 닉네임 연결 등 변경사항의 주요 내용을 정확하게 요약하고 있습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/NDGL-122/fix-ui-issue

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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: 닉네임이 암호화 없이 저장됩니다.

accessTokenuuidcryptoManager.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

📥 Commits

Reviewing files that changed from the base of the PR and between 31e3ddf and 9a1dd08.

📒 Files selected for processing (6)
  • core/ui/src/main/res/drawable/ic_24_change.xml
  • data/auth/src/main/java/com/yapp/ndgl/data/auth/local/LocalAuthDataSource.kt
  • data/auth/src/main/java/com/yapp/ndgl/data/auth/repository/AuthRepository.kt
  • feature/home/src/main/java/com/yapp/ndgl/feature/home/main/HomeViewModel.kt
  • feature/travel-helper/src/main/java/com/yapp/ndgl/feature/travelhelper/main/CurrencyCalculatorSection.kt
  • feature/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

@jihee-dev jihee-dev merged commit 3b96dca into develop Feb 26, 2026
4 checks passed
@jihee-dev jihee-dev deleted the feature/NDGL-122/fix-ui-issue branch February 26, 2026 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant