Conversation
- `feature/collection/build.gradle.kts`: collection 피처 모듈 빌드 스크립트 정의 및 네임스페이스 설정 - `feature/collection/src/main/AndroidManifest.xml`: 모듈용 매니페스트 파일 추가 - `settings.gradle.kts`: 프로젝트 모듈 목록에 `:feature:collection` 추가
- `libs.versions.toml`: Navigation Compose 라이브러리 버전(2.9.8) 및 카탈로그 정의 추가 - `feature/collection/build.gradle.kts`: `navigation-compose` 라이브러리 의존성 추가 적용
- `CollectionScreen.kt`: `CollectionScreen` 컴포저블 구현 및 프리뷰 추가
- `CollectionActivity.kt`: Hilt 의존성 주입을 위해 `CollectionActivity` 클래스에 `@AndroidEntryPoint` 어노테이션 추가
- `AndroidManifest.xml`: 컬렉션 화면 진입을 위한 `CollectionActivity` 추가 및 세로 방향(portrait) 고정 설정
- `fragment_my_page.xml`: 컬렉션 진입점을 위한 `ComposeView`(`cv_my_page_collection_entry`) 및 하단 구분선(`view_my_page_collection_divider`) 추가 - `fragment_my_page.xml`: 기존 장르 취향 섹션 및 취향 분석 섹션의 상단 제약 조건을 신규 구분선 기준으로 변경하여 레이아웃 구조 조정
- `MyPageFragment.kt`: `cvMyPageCollectionEntry`에 `CollectionEntry` 컴포저블을 적용하는 `setupCollectionEntry` 함수 추가 - `MyPageFragment.kt`: 컬렉션 화면으로 이동하는 `navigateToCollection` 함수 구현 및 연결 - `MyPageFragment.kt`: Compose View의 효율적인 생명주기 관리를 위한 `ViewCompositionStrategy` 설정 추가
|
Warning Review limit reached
Next review available in: 28 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. Walkthrough컬렉션 feature 모듈과 Compose 기반 화면을 추가했습니다. Changes컬렉션 기능
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to The PR adds the collection entry flow and navigation structure without any supplied actionable merge-blocking risk; it is merge-ready after normal checks and review. Sequence Diagram(s)sequenceDiagram
participant MyPageFragment
participant CollectionActivity
participant CollectionNavHost
participant CollectionScreen
MyPageFragment->>CollectionActivity: 컬렉션 클릭 후 Intent로 시작
CollectionActivity->>CollectionNavHost: CollectionNavHost 표시
CollectionNavHost->>CollectionScreen: collection 경로로 이동
CollectionScreen-->>CollectionActivity: 컬렉션 화면 표시
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 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 |
|
@coderabbitai review |
✅ Action performedReview finished.
|
- `CollectionEntry.kt`: 클릭 시 중복 호출을 방지하기 위해 `clickable`을 `debouncedClickable`로 변경 - `MyPageFragment.kt`: UI 컴포넌트 수준에서 중복 클릭이 제어됨에 따라 `navigateToCollection` 내의 `singleEventHandler.throttleFirst` 로직 제거
- `CollectionEntry.kt`: `buildAnnotatedString`을 사용하여 여러 개의 `Text` 컴포저블로 나뉘어 있던 컬렉션 개수 표시 로직을 단일 컴포저블로 통합 및 스타일링 코드 최적화
📌𝘐𝘴𝘴𝘶𝘦𝘴
📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯
Overview
컬렉션 기능을 기존 앱과 분리해 확장할 수 있도록
feature:collection모듈과 전용 진입 구조를 추가합니다.마이페이지의 컬렉션 항목에서 별도
CollectionActivity로 이동하고, Activity 내부에서는 Navigation Compose 기반의CollectionNavHost가 컬렉션 화면 흐름을 담당합니다.작업 배경
기존
app모듈의 마이페이지는 XML 기반 화면이므로, 컬렉션 진입 UI만ComposeView로 삽입해 기존 화면 구조를 유지했습니다.컬렉션 내부 화면은 이후 목록·생성·검색 화면이 추가될 것을 고려해 별도 feature 모듈과 Activity, NavHost를 진입 경계로 사용합니다.
이 PR은 컬렉션 전체 작업을 나눈 Stacked PR의 첫 번째 단계이며, 실제 컬렉션 목록과 생성·검색 기능은 후속 PR에서 다룹니다.
주요 변경 사항
1. 컬렉션 feature 모듈 구성
feature:collection모듈 및 AndroidManifest 추가app모듈에 컬렉션 모듈 연결2.9.8등록2. 컬렉션 전용 Activity 및 내부 Navigation 구성
CollectionActivity추가@AndroidEntryPoint적용exported=false로 등록WebsosoTheme안에서CollectionNavHost실행CollectionScreen연결3. 마이페이지 컬렉션 진입부 연결
ComposeView추가DisposeOnViewTreeLifecycleDestroyed적용CollectionEntry구현SingleEventHandler.throttleFirst패턴 재사용CollectionActivity실행이번 PR에서 제외한 범위
위 기능은 후속 Stacked PR에서 단계별로 추가합니다.
검증
./gradlew testDebugUnitTest :app:assembleDebug ktlintCheck --console=plain📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵
💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴
리뷰 포인트
app → feature:collection의존 방향이 기존 멀티 모듈 구조에 적합한지ComposeView생명주기 설정이 적절한지0으로 표시되는 점Stacked PR 안내
developfeat/933feat/933을 base로 하여 컬렉션 목록 UI 변경만 분리할 예정입니다.Summary by CodeRabbit
새로운 기능