Skip to content

fix: 홈화면 1차 QA#902

Open
devfeijoa wants to merge 7 commits into
developfrom
fix/899
Open

fix: 홈화면 1차 QA#902
devfeijoa wants to merge 7 commits into
developfrom
fix/899

Conversation

@devfeijoa

@devfeijoa devfeijoa commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

📌𝘐𝘴𝘴𝘶𝘦𝘴

📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯

  • <지금 뜨는글> 소설 제목과 본문 사이의 간격에 4dp -> 8dp 로 수정됨에 따라 8dp로 수정

  • <지금 뜨는글> 제목 글자 수 최대 16자, 그 이후 텍스트 자르기 : 공백 제외 후 보이는 제목 글자수 16자만 보이게끔 수정

  • <지금 뜨는 글> 현재 서버에서 받아오는 글이 9개이나 6개만 보이게 하도록 수정

  • <오늘의 발견> 하단 한마디 부분에 블러 적용된 FFFFF 이미지로 수정 및 투명도는 70% 적용 ->
    피그마의 색상 #FFFFFFB2가 반영되어있었으나 노랗게 보이는 문제가 있어 의도한 색상이 보이도록 밑색을 넣은 뒤 투명도를 설정하여 변경

  • <오늘의 발견> 소설 제목 17자까지만 보이게 수정 : 공백 제외 보여지는 글자수가 17자가 되도록 수정

  • <오늘의 발견> 작품 표지 아래 썸네일 그림자 처리

📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵

지금 뜨는 글

Screenshot_20260616_145139

오늘의 발견

Screen_recording_20260617_170207.mp4

💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴

Summary by CodeRabbit

릴리스 노트

  • 버그 수정
    • Popular feeds/Popular novel의 말줄임 처리를 “유효 글자 수” 기준으로 개선하고, 말줄임 표시를 형태로 더 자연스럽게 변경했습니다.
  • UI 개선
    • Popular feeds 항목의 폭/제약 및 텍스트·스포일러 여백 구성을 조정해 표시 정렬을 더 일관되게 했습니다.
  • 디자인 업데이트
    • Popular novel 카드 배경 및 반투명 요소 스타일을 정리해 라운딩 표현을 개선했습니다.
  • 기타
    • 홈에서 인기 피드 페이지 구성(표시 개수/분할) 로직을 보정했습니다.

- 인기 피드 내용(`tv_popular_feed_content`)의 상단 여백을 4dp에서 8dp로 변경
- `item_popular_feed_slot.xml`의 패딩 값을 미세 조정하고 텍스트 뷰 너비를 `0dp`(match constraint)로 변경하여 레이아웃 최적화
- `PopularFeedsViewHolder`의 `ellipsizeByLength` 메서드 로직을 공백을 제외한 글자 수 기준으로 계산하도록 수정
- 제목 생략 시 노출되는 말줄임표 기호를 `...`에서 `…`으로 변경
- 인기 피드 노출 개수를 최대 6개로 제한하기 위해 `HOME_POPULAR_FEED_MAX_COUNT` 상수 추가
- `popularFeeds` 데이터를 페이지 단위로 가공하는 `toHomePopularFeedPages` 확장 함수 구현
- `HomeViewModel` 내 데이터 로딩 및 업데이트 로직에 개수 제한 및 청크 로직 통합 적용
@devfeijoa devfeijoa requested review from Sadturtleman, m6z1 and s9hn June 16, 2026 05:52
@devfeijoa devfeijoa self-assigned this Jun 16, 2026
@devfeijoa devfeijoa added 🔨 [FIX] 버그를 수정합니다. [👸 공주 은영] labels Jun 16, 2026
@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

HomeViewModel의 인기 피드 페이지 변환 로직에 최대 6개 제한 헬퍼(toHomePopularFeedPages())를 추가하고 3곳의 호출부를 교체했다. 공백을 제외한 유효 문자 수 기반으로 ellipsizeByLength(), toAuthorStatus(), takeWithEllipsis() 로직을 개선하고 말줄임표 문자를 통일했으며, 피드 슬롯 XML 레이아웃의 텍스트 뷰 너비와 여백이 조정됐고 배경 드로어블의 레이어 구조와 카드 UI가 개선됐다.

Changes

홈 화면 인기 피드 QA 수정

Layer / File(s) Summary
인기 피드 최대 개수 제한 헬퍼 및 상수
app/src/main/java/com/into/websoso/ui/main/home/HomeViewModel.kt
HOME_POPULAR_FEED_MAX_COUNT = 6 상수와 toHomePopularFeedPages() private extension을 추가하여 인기 피드를 최대 6개로 제한한 후 페이지 크기로 분할하며, fetchUserHomeData, fetchGuestData, updateFeed 3곳의 popularFeeds 매핑을 새 헬퍼 호출로 교체한다.
공백 제외 문자 수 기반 말줄임 개선
app/src/main/java/com/into/websoso/ui/main/home/adpater/PopularFeedsViewHolder.kt, app/src/main/java/com/into/websoso/ui/main/home/adpater/PopularNovelTextExtensions.kt, core/resource/src/main/res/values/strings.xml
ellipsizeByLength(), toAuthorStatus(), takeWithEllipsis()를 공백을 제외한 유효 문자 수를 누적하여 최대 길이 초과 시 trimEnd()"…"으로 처리하도록 개선하고, 말줄임표 문자를 "...""…"으로 통일한다.
피드 슬롯 레이아웃 너비/여백 조정
app/src/main/res/layout/item_popular_feed_slot.xml
루트 ConstraintLayout 패딩을 개별 속성으로 세분화하고, 타이틀·본문·스포일러 텍스트 뷰 너비를 0dp(match constraints)로 변경하며 본문 marginTop4dp8dp로 조정한다.
배경 드로어블 레이어 구조 및 카드 UI 개선
app/src/main/res/drawable/bg_popular_novel_bottom_radius_14dp.xml, app/src/main/res/layout/item_popular_novel.xml
bg_popular_novel_bottom_radius_14dp.xml을 단일 shape에서 2개 레이어를 가진 layer-list로 변경하여 밑색(#F6F6F8)과 반투명 흰색(#B2FFFFFF)을 순차 적용하고, item_popular_novel.xml의 배경 참조를 변경한다. 소설 커버 영역을 MaterialCardView로 래핑하여 라운딩과 제약 속성을 재구성한다.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • Team-WSS/WSS-Android#871: HomeViewModel.kt의 인기 피드 페이징 로직을 수정하는 메인 PR과 fetchUserHomeData의 호출 방식을 변경하는 PR로 동일한 함수 레벨에서 연결된다.
  • Team-WSS/WSS-Android#885: HomeViewModelpopularFeeds 페이징 로직과 PopularFeedsViewHolder의 말줄임표 처리 방식을 수정한 PR로 동일한 코드 경로를 건드린다.
  • Team-WSS/WSS-Android#898: PopularNovelTextExtensions.kttakeWithEllipsis() 개선과 item_popular_novel.xml 및 관련 drawable 리소스 변경을 함께 다룬다.

Suggested labels

🏹 궁사 명지

Suggested reviewers

  • s9hn
  • m6z1
  • Sadturtleman

Poem

🐰 토끼가 피드를 세어보니,
여섯 개까지만 허락했네.
공백은 빼고 글자만 세며,
으로 깔끔히 마무리!
레이아웃도 0dp로 쫙 펼쳐
홈 화면이 반짝반짝 ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 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 (4 passed)
Check name Status Explanation
Title check ✅ Passed 제목이 PR의 주요 변경사항을 명확하게 반영하고 있습니다. 홈화면 1차 QA 피드백 반영이라는 핵심 목표를 간결하게 표현했습니다.
Linked Issues check ✅ Passed 코드 변경사항이 이슈 #899의 모든 주요 목표를 충족합니다: 16자 제목 자르기(공백 제외), 6개 항목 제한, 색상 레이어 조정, 17자 제목 표시, 그림자 처리.
Out of Scope Changes check ✅ Passed 모든 변경사항이 이슈 #899의 홈화면 QA 피드백 구현 범위 내에 있으며, 관련 없는 변경은 없습니다.
Description check ✅ Passed Pull request description follows the template with all required sections properly filled: Issues (#899), Work Description with detailed changes, Screenshot, and note to reviewers.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/899

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.

- 불필요한 배경 리소스(`bg_popular_novel_translucent_radius_14dp`) 삭제 및 `item_popular_novel`의 배경을 공통 리소스로 교체
- 인기 작품 아이템 하단 영역 배경(`bg_popular_novel_bottom_radius_14dp`)에 `layer-list`를 적용하여 색상 및 투명도 레이어 수정

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
app/src/main/res/drawable/bg_popular_novel_bottom_radius_14dp.xml (1)

4-4: ⚡ Quick win

하드코딩된 색상 값을 @color 리소스로 추출하는 것을 고려하세요.

현재 #F6F6F8#B2FFFFFF 색상이 하드코딩되어 있습니다. 디자인 시스템의 일관성과 유지보수성을 위해 이 색상들을 colors.xml에 정의하고 참조하는 것이 좋습니다.

♻️ 색상 리소스 추출 예시

colors.xml에 색상 추가:

<color name="popular_novel_bottom_base">`#F6F6F8`</color>
<color name="popular_novel_bottom_overlay">`#B2FFFFFF`</color>

이 파일에 적용:

     <item>
         <shape android:shape="rectangle">
-            <solid android:color="`#F6F6F8`" />
+            <solid android:color="`@color/popular_novel_bottom_base`" />
             <corners
                 android:bottomLeftRadius="14dp"
                 android:bottomRightRadius="14dp" />
         </shape>
     </item>

     <item>
         <shape android:shape="rectangle">
-            <solid android:color="`#B2FFFFFF`" />
+            <solid android:color="`@color/popular_novel_bottom_overlay`" />
             <corners
                 android:bottomLeftRadius="14dp"
                 android:bottomRightRadius="14dp" />
         </shape>
     </item>

Also applies to: 13-13

🤖 Prompt for 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.

In `@app/src/main/res/drawable/bg_popular_novel_bottom_radius_14dp.xml` at line 4,
Extract the hardcoded color values from the drawable file into Android color
resources. In app/src/main/res/values/colors.xml (or create it if it doesn't
exist), add color definitions for popular_novel_bottom_base with value `#F6F6F8`
and popular_novel_bottom_overlay with value `#B2FFFFFF`. Then in
app/src/main/res/drawable/bg_popular_novel_bottom_radius_14dp.xml at line 4,
replace the hardcoded solid color android:color="`#F6F6F8`" with
android:color="`@color/popular_novel_bottom_base`" and at line 13, replace the
hardcoded color android:color="`#B2FFFFFF`" with
android:color="`@color/popular_novel_bottom_overlay`".
🤖 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.

Nitpick comments:
In `@app/src/main/res/drawable/bg_popular_novel_bottom_radius_14dp.xml`:
- Line 4: Extract the hardcoded color values from the drawable file into Android
color resources. In app/src/main/res/values/colors.xml (or create it if it
doesn't exist), add color definitions for popular_novel_bottom_base with value
`#F6F6F8` and popular_novel_bottom_overlay with value `#B2FFFFFF`. Then in
app/src/main/res/drawable/bg_popular_novel_bottom_radius_14dp.xml at line 4,
replace the hardcoded solid color android:color="`#F6F6F8`" with
android:color="`@color/popular_novel_bottom_base`" and at line 13, replace the
hardcoded color android:color="`#B2FFFFFF`" with
android:color="`@color/popular_novel_bottom_overlay`".

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: fc9eb257-69a3-44c7-875c-b3ae60f1e489

📥 Commits

Reviewing files that changed from the base of the PR and between 4f14ab3 and 8f641d8.

📒 Files selected for processing (3)
  • app/src/main/res/drawable/bg_popular_novel_bottom_radius_14dp.xml
  • app/src/main/res/drawable/bg_popular_novel_translucent_radius_14dp.xml
  • app/src/main/res/layout/item_popular_novel.xml
💤 Files with no reviewable changes (1)
  • app/src/main/res/drawable/bg_popular_novel_translucent_radius_14dp.xml
✅ Files skipped from review due to trivial changes (1)
  • app/src/main/res/layout/item_popular_novel.xml

- `PopularNovelTextExtensions.kt`: 제목 생략 처리 시 공백을 제외한 화면에 보이는 글자 수를 기준으로 하도록 `takeWithEllipsis` 로직 고도화
- `strings.xml`: 제목 생략 기호를 일반 마침표 3개(...)에서 생략 부호(…)로 변경

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 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/into/websoso/ui/main/home/adpater/PopularNovelTextExtensions.kt`:
- Around line 50-55: The truncation logic in the takeWhile lambda correctly
implements the character counting mechanism using maxLength and visibleLength,
but the actual maxLength value being passed is 17 when the requirement specifies
a limit of 16 characters (excluding whitespace). Locate where maxLength is
defined or passed as a parameter to this function and change the value from 17
to 16 to align with the PR requirement of displaying only 16 characters
excluding whitespace.
🪄 Autofix (Beta)

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

Run ID: 7e7e8c0c-1a7a-4d33-9a28-99bb98d1283b

📥 Commits

Reviewing files that changed from the base of the PR and between 8f641d8 and 7049228.

📒 Files selected for processing (2)
  • app/src/main/java/com/into/websoso/ui/main/home/adpater/PopularNovelTextExtensions.kt
  • core/resource/src/main/res/values/strings.xml

- `PopularNovelEntity.toAuthorStatus`에서 작가명이 최대 길이를 초과할 경우 말줄임표(...)를 표시하도록 로직 수정
- `item_popular_novel.xml`: 소설 커버 이미지와 장르 아이콘을 `MaterialCardView`로 감싸 그림자(`cardElevation`) 및 라운드 처리 적용
- 커버 이미지의 라운드 처리 방식을 커스텀 속성에서 `MaterialCardView` 속성(`cardCornerRadius`)으로 변경
- 카드 뷰 내부 아이콘들의 배치 방식을 `ConstraintLayout` 제약 조건에서 `layout_gravity` 활용 방식으로 수정
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[👸 공주 은영] 🔨 [FIX] 버그를 수정합니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: 홈화면 1차 QA

2 participants