Skip to content

Flt 28 1차 qa 박찬미 - #220

Merged
kimjw2003 merged 11 commits into
developfrom
FLT-28-1차-qa-박찬미
Aug 10, 2026

Hidden character warning

The head ref may contain hidden characters: "FLT-28-1\ucc28-qa-\ubc15\ucc2c\ubbf8"
Merged

Flt 28 1차 qa 박찬미#220
kimjw2003 merged 11 commits into
developfrom
FLT-28-1차-qa-박찬미

Conversation

@chanmi1125

@chanmi1125 chanmi1125 commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

📮 관련 이슈

  • closed #이슈번호

📌 작업 내용

  • 컬렉션 디테일 qa 반영 — footer 저작권 문단 제거
  • 컬렉션 상세 썸네일 기본 이미지 반영 — 썸네일 없을 때 기본 이미지 표시 로직 추가
  • 컬렉션 생성 뒤로가기 반영 — 뒤로가기 네비게이션 정리
  • 컬렉션 상세 그라데이션 — 상세 화면 썸네일에 그라데이션 오버레이 추가
  • 썸네일 이미지 비율 — 컬렉션 생성/상세 썸네일 비율 수정
  • 컨텐츠 이미지 비율 — 컨텐츠 이미지 비율 수정 (생성/상세 둘 다)
  • 컨텐츠 사진 추가 — 오늘 같이 작업한 것: 컨텐츠별 사진 최대 5장 선택 기능 (자체 갤러리 피커, 순서 번호 배지 포함), AndroidManifest.xml 권한 추가

📸 스크린샷

스크린샷

😅 미구현

  • [ ]

🫛 To. 리뷰어

Summary by CodeRabbit

  • 새로운 기능

    • 컬렉션 생성 시 시스템 포토 피커로 이미지를 한 번에 여러 장 선택할 수 있습니다.
    • 콘텐츠 이미지와 썸네일을 삭제할 수 있으며, 콘텐츠 이미지는 최대 5장까지 추가됩니다.
    • 썸네일이 없는 컬렉션에도 기본 이미지가 표시됩니다.
  • 개선 사항

    • 컬렉션 상세 화면에서 썸네일과 콘텐츠를 함께 스크롤할 수 있도록 개선했습니다.
    • 이미지 비율과 표시 방식이 조정되어 콘텐츠가 더 자연스럽게 보입니다.
    • 탐색 동작과 화면 배경 그라데이션을 개선했습니다.

- footer copyright 문단 없애기
…to FLT-28-1차-qa-박찬미

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
@chanmi1125 chanmi1125 self-assigned this Aug 10, 2026
@chanmi1125 chanmi1125 added the Feat ✨ 신규 기능을 추가하거나 기존 기능의 동작, 정책을 변경 label Aug 10, 2026
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@kimjw2003, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 39 minutes

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f089c486-9a26-436d-8afe-3e9d0f6c038b

📥 Commits

Reviewing files that changed from the base of the PR and between 9a23dd0 and cea3d3f.

📒 Files selected for processing (2)
  • app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateScreen.kt
  • app/src/main/java/com/flint/presentation/collectioncreate/GmsCompatPickMultipleVisualMedia.kt
📝 Walkthrough

Walkthrough

컬렉션 생성 화면이 Android 시스템 포토 피커의 단일·다중 선택을 지원합니다. 이미지 수를 최대 5개로 제한합니다. 컬렉션 상세 화면은 nullable 썸네일과 고정 상단 앱 바를 지원합니다. 썸네일과 콘텐츠 이미지의 표시 비율 및 그라데이션을 변경했습니다.

Changes

컬렉션 미디어 흐름

Layer / File(s) Summary
nullable 썸네일 데이터 계약
app/src/main/java/com/flint/data/dto/collection/response/CollectionDetailResponseDto.kt, app/src/main/java/com/flint/domain/model/collection/CollectionDetailModel.kt, app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateViewModel.kt
상세 응답과 도메인 모델의 thumbnailUrlString?을 사용합니다. 편집 상태는 null 또는 빈 썸네일을 정규화합니다.
포토 피커 다중 선택 흐름
app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateScreen.kt, app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateViewModel.kt, app/src/main/java/com/flint/presentation/collectioncreate/uistate/CollectionCreateUiState.kt
남은 슬롯에 따라 단일 또는 다중 포토 피커를 실행합니다. 선택 URI를 일괄 저장하고 최대 5개를 초과하지 않습니다. 썸네일 삭제 시 신규 URI와 기존 URL을 모두 제거합니다.
상세 화면 스크롤 및 썸네일 표시
app/src/main/java/com/flint/core/designsystem/theme/Color.kt, app/src/main/java/com/flint/presentation/collectiondetail/CollectionDetailScreen.kt, app/src/main/java/com/flint/presentation/collectiondetail/component/CollectionDetailThumbnail.kt, app/src/main/java/com/flint/presentation/collectiondetail/component/CollectionDetailContent.kt, app/src/main/java/com/flint/presentation/collectiondetail/component/CollectionCopyrightFooter.kt
썸네일을 LazyColumn 헤더로 이동하고 CollectionDetailTopAppBar를 고정합니다. null 썸네일에는 기본 이미지를 표시합니다. 썸네일 그라데이션과 이미지 ContentScale을 변경합니다.
생성 화면 이미지 표시 및 내비게이션
app/src/main/java/com/flint/presentation/collectioncreate/component/CollectionCreateContentImage.kt, app/src/main/java/com/flint/presentation/collectioncreate/component/CollectionCreateThumbnail.kt, app/src/main/java/com/flint/presentation/collectioncreate/navigation/CollectionCreateNavigation.kt
콘텐츠 이미지와 썸네일의 비율 및 ContentScale을 변경합니다. 생성 화면 이동 콜백을 navigateUp으로 연결합니다.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

포토 피커 이미지 선택

sequenceDiagram
  participant CollectionCreateScreen
  participant AndroidPhotoPicker
  participant CollectionCreateViewModel
  CollectionCreateScreen->>AndroidPhotoPicker: 남은 슬롯 수로 선택 요청
  AndroidPhotoPicker-->>CollectionCreateScreen: URI 목록 반환
  CollectionCreateScreen->>CollectionCreateViewModel: addContentImageUris 호출
  CollectionCreateViewModel-->>CollectionCreateScreen: 최대 5개 이미지 상태 반영
Loading

컬렉션 상세 화면 표시

sequenceDiagram
  participant CollectionDetailScreen
  participant LazyColumn
  participant CollectionDetailThumbnail
  participant CollectionDetailTopAppBar
  CollectionDetailScreen->>LazyColumn: 썸네일과 콘텐츠 목록 구성
  LazyColumn->>CollectionDetailThumbnail: nullable thumbnailUrl 전달
  CollectionDetailScreen->>CollectionDetailTopAppBar: 고정 앱 바 동작 연결
  CollectionDetailThumbnail-->>LazyColumn: 기본 이미지 또는 네트워크 이미지 렌더링
Loading

Possibly related PRs

Suggested labels: 📱 UI

Suggested reviewers: kimjw2003

Poem

토끼가 고른 사진 다섯 장,
포토 피커 바구니에 담고,
썸네일은 null이어도 반짝,
그라데이션 아래 포근히 쉬네.
스크롤 앱 바도 깡총! 🐇

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

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.
Title check ❓ Inconclusive 제목에 QA 작업임은 나타나지만 컬렉션 및 콘텐츠 화면의 주요 변경 사항을 구체적으로 설명하지 않습니다. 컬렉션 상세, 썸네일, 이미지 선택 등 주요 변경 사항을 요약하는 구체적인 제목으로 수정하세요.
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed 작업 내용은 주요 변경 사항을 대부분 설명하지만 스크린샷과 리뷰어 안내는 실제 내용으로 보완되지 않았습니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch FLT-28-1차-qa-박찬미

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateScreen.kt`:
- Around line 141-150: Update the image-selection callback around
pendingMaxSelectable so that when its value is 0, display a toast and exit
before checking permissions or opening the gallery picker. Preserve the existing
permission and picker flow when at least one image remains selectable.

In
`@app/src/main/java/com/flint/presentation/collectiondetail/component/CollectionCopyrightFooter.kt`:
- Line 18: Remove the CollectionCopyrightFooter() invocation from
CollectionDetailScreen so the copyright footer is no longer displayed. If
CollectionCopyrightFooter has no remaining usages, delete the component and its
associated file or declarations as well.
🪄 Autofix

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: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ca951c88-5fae-4ed3-8084-0a3acfaebcc4

📥 Commits

Reviewing files that changed from the base of the PR and between 47fc9bf and 8c5b246.

📒 Files selected for processing (14)
  • app/src/main/AndroidManifest.xml
  • app/src/main/java/com/flint/core/designsystem/theme/Color.kt
  • app/src/main/java/com/flint/data/dto/collection/response/CollectionDetailResponseDto.kt
  • app/src/main/java/com/flint/domain/model/collection/CollectionDetailModel.kt
  • app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateScreen.kt
  • app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateViewModel.kt
  • app/src/main/java/com/flint/presentation/collectioncreate/component/CollectionCreateContentImage.kt
  • app/src/main/java/com/flint/presentation/collectioncreate/component/CollectionCreateThumbnail.kt
  • app/src/main/java/com/flint/presentation/collectioncreate/component/GalleryImagePickerDialog.kt
  • app/src/main/java/com/flint/presentation/collectioncreate/navigation/CollectionCreateNavigation.kt
  • app/src/main/java/com/flint/presentation/collectiondetail/CollectionDetailScreen.kt
  • app/src/main/java/com/flint/presentation/collectiondetail/component/CollectionCopyrightFooter.kt
  • app/src/main/java/com/flint/presentation/collectiondetail/component/CollectionDetailContent.kt
  • app/src/main/java/com/flint/presentation/collectiondetail/component/CollectionDetailThumbnail.kt

chanmi1125 and others added 3 commits August 10, 2026 22:50
MediaStore를 직접 조회하던 커스텀 갤러리 다이얼로그를 제거하고
PickMultipleVisualMedia로 교체해 최대 5장 제한을 OS가 강제하도록 함.

- maxItems는 1이면 크래시하므로 남은 자리 수에 따라 분기
  (0장 토스트 / 1장 단일 선택 / 2~5장 다중 선택)
- 포토피커는 권한이 불필요하므로 READ_MEDIA_IMAGES,
  READ_EXTERNAL_STORAGE 및 권한 요청 코드 제거
- 시스템 피커는 선택 상태를 미리 지정할 수 없어
  setContentImageUris를 addContentImageUris(추가 방식)로 변경

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@kimjw2003
kimjw2003 merged commit 7d09106 into develop Aug 10, 2026
2 checks passed
@kimjw2003
kimjw2003 deleted the FLT-28-1차-qa-박찬미 branch August 10, 2026 14:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feat ✨ 신규 기능을 추가하거나 기존 기능의 동작, 정책을 변경

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants