Skip to content

hotfix: 피드 홈 UI 수정#804

Open
s9hn wants to merge 1 commit intomasterfrom
hotfix/803
Open

hotfix: 피드 홈 UI 수정#804
s9hn wants to merge 1 commit intomasterfrom
hotfix/803

Conversation

@s9hn
Copy link
Member

@s9hn s9hn commented Feb 8, 2026

📌𝘐𝘴𝘴𝘶𝘦𝘴

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

📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵

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

Summary by CodeRabbit

릴리스 노트

홈 화면에 새로운 검색 기능이 추가되었습니다. 홈 화면의 전반적인 레이아웃이 개선되어 더 나은 사용성을 제공합니다. 섹션 라벨도 업데이트되었습니다.

  • New Features

    • 홈 화면에 새로운 검색 기능 추가
  • Style

    • 홈 화면 레이아웃 및 요소 간격 최적화
    • 홈 섹션 라벨 텍스트 업데이트

- 검색바 도입
- 기능 간 간격 조정
- 기능명 강조를 위한 문구 수정
@github-actions github-actions bot requested review from devfeijoa and m6z1 February 8, 2026 10:35
@s9hn s9hn changed the base branch from develop to master February 8, 2026 10:35
@s9hn s9hn changed the title Hotfix/803 hotfix: 피드 홈 UI 수정 #803 Feb 8, 2026
@coderabbitai
Copy link

coderabbitai bot commented Feb 8, 2026

Walkthrough

일반 검색 기능을 홈 화면에 추가합니다. HomeFragment에 새로운 클릭 핸들러를 구현하여 검색 버튼 상호작용을 처리하고, 레이아웃에 검색 UI 요소를 도입하며, 문자열 리소스를 업데이트합니다.

Changes

Cohort / File(s) Summary
UI 로직
app/src/main/java/com/into/websoso/ui/main/home/HomeFragment.kt
새로운 onNormalSearchButtonClick() 메서드 추가하여 clHomeNormalSearch에 클릭 리스너를 설정하고, "general_search" 이벤트를 추적한 후 NormalExploreActivity를 실행합니다. onViewCreated()에서 초기화되어 홈 화면 로드 시 자동으로 연결됩니다.
레이아웃
app/src/main/res/layout/fragment_home.xml
새로운 검색 UI 클러스터(cl_home_normal_search)를 추가하고, 여러 UI 요소의 여백 값을 조정하여 수직 리듬을 개선합니다. 로고 상단 여백 20dp→10dp, NestedScrollView 상단 여백 30dp→10dp 감소, 이후 요소들의 제약 조건 및 여백을 재조정합니다.
문자열 리소스
core/resource/src/main/res/values/strings.xml
홈 화면 관련 문자열 값에 장식 문자(이모지, 특수 기호) 추가하여 UI 표현을 개선합니다. home_today_popular, home_recommend_novel, home_nickname_interest_feed 문자열을 업데이트합니다.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested labels

🍯 [FEAT]

Suggested reviewers

  • m6z1

Poem

🐰 새로운 검색 버튼이 톡톡 튀어나와,
레이아웃 정렬은 깔끔하게 쏘옥,
여백 줄이고 UI 꾸미고,
일반 검색의 문이 열렸네요 ✨📚

🚥 Pre-merge checks | ✅ 2 | ❌ 3
❌ Failed checks (2 warnings, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning PR 설명에서 '작업 설명'과 '스크린샷' 섹션이 비어있으며, '리뷰어에게' 섹션도 내용이 없어 필수 정보가 불완전합니다. 작업 설명 섹션을 추가하여 UI 변경 사항(검색 바 추가, 간격 조정, 텍스트 변경)을 상세히 설명하고, 스크린샷을 포함하며, 리뷰어를 위한 추가 설명을 제공해주세요.
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.
Linked Issues check ❓ Inconclusive 연결된 이슈 #803은 개요, 자식 이슈, 특이사항 섹션이 모두 비어있어 구체적인 요구사항이 없습니다. 코드 변경사항은 커밋 메시지의 의도와 일치하지만, 이슈에서 명확한 요구사항을 확인할 수 없습니다. 이슈 #803에 구체적인 요구사항(개요, 변경 대상, 예상 결과)을 추가하여 PR이 요구사항을 충족하는지 명확히 검증할 수 있도록 해주세요.
✅ Passed checks (2 passed)
Check name Status Explanation
Out of Scope Changes check ✅ Passed 모든 변경사항(HomeFragment.kt의 검색 클릭 핸들러, fragment_home.xml의 UI 구성, strings.xml의 텍스트)이 홈 화면 UI 수정이라는 범위 내에 있으며, 범위를 벗어난 변경은 없습니다.
Title check ✅ Passed 풀 리퀘스트 제목은 홈 UI 수정이라는 변경사항의 핵심을 명확하게 전달하고 있습니다.

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

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch hotfix/803

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

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@app/src/main/java/com/into/websoso/ui/main/home/HomeFragment.kt`:
- Around line 115-121: onNormalSearchButtonClick uses startActivity(intent)
which bypasses the existing ActivityResultLauncher and prevents the result
handling that onPostInterestNovelClick achieves; replace the startActivity call
to launch NormalExploreActivity via the same startActivityLauncher (call
startActivityLauncher.launch(NormalExploreActivity.getIntent(requireContext())))
so the returned NormalExploreBack.RESULT_OK will trigger
homeViewModel.updateFeed() and homeViewModel.updateNovel() as in
onPostInterestNovelClick; ensure you reference the same startActivityLauncher
instance used elsewhere in the fragment.

In `@app/src/main/res/layout/fragment_home.xml`:
- Around line 53-88: cl_home_normal_search (the clickable search entry) and
iv_home_normal_search (the ImageView) lack accessible labels; add descriptive
accessibility text so screen readers can announce the control. Update
cl_home_normal_search to be focusable/clickable for accessibility and set
android:contentDescription to a concise string resource like
"@string/explore_normal_search" (or use tv_home_normal_hint's text) and set
iv_home_normal_search's android:contentDescription to the same string (or to
`@null` if you mark the container as the accessible element and set
android:importantForAccessibility="yes" on cl_home_normal_search and
android:importantForAccessibility="no" on iv_home_normal_search) so TalkBack
correctly describes the control.

Comment on lines +115 to +121
private fun onNormalSearchButtonClick() {
binding.clHomeNormalSearch.setOnClickListener {
tracker.trackEvent("general_search")
val intent = NormalExploreActivity.getIntent(requireContext())
startActivity(intent)
}
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

startActivity 대신 startActivityLauncher를 사용해야 합니다.

onPostInterestNovelClick() (Line 304-312)에서 동일한 NormalExploreActivitystartActivityLauncher.launch()로 실행하고 있으며, 이를 통해 NormalExploreBack.RESULT_OK 결과를 수신하여 homeViewModel.updateFeed()homeViewModel.updateNovel()을 호출합니다 (Line 76-80).

반면 이 메서드는 startActivity(intent)를 사용하므로, 검색 화면에서 돌아왔을 때 결과 콜백이 동작하지 않아 홈 화면의 피드/소설 데이터가 갱신되지 않습니다.

🐛 startActivityLauncher 사용으로 수정
 private fun onNormalSearchButtonClick() {
     binding.clHomeNormalSearch.setOnClickListener {
         tracker.trackEvent("general_search")
         val intent = NormalExploreActivity.getIntent(requireContext())
-        startActivity(intent)
+        startActivityLauncher.launch(intent)
     }
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
private fun onNormalSearchButtonClick() {
binding.clHomeNormalSearch.setOnClickListener {
tracker.trackEvent("general_search")
val intent = NormalExploreActivity.getIntent(requireContext())
startActivity(intent)
}
}
private fun onNormalSearchButtonClick() {
binding.clHomeNormalSearch.setOnClickListener {
tracker.trackEvent("general_search")
val intent = NormalExploreActivity.getIntent(requireContext())
startActivityLauncher.launch(intent)
}
}
🤖 Prompt for AI Agents
In `@app/src/main/java/com/into/websoso/ui/main/home/HomeFragment.kt` around lines
115 - 121, onNormalSearchButtonClick uses startActivity(intent) which bypasses
the existing ActivityResultLauncher and prevents the result handling that
onPostInterestNovelClick achieves; replace the startActivity call to launch
NormalExploreActivity via the same startActivityLauncher (call
startActivityLauncher.launch(NormalExploreActivity.getIntent(requireContext())))
so the returned NormalExploreBack.RESULT_OK will trigger
homeViewModel.updateFeed() and homeViewModel.updateNovel() as in
onPostInterestNovelClick; ensure you reference the same startActivityLauncher
instance used elsewhere in the fragment.

Comment on lines +53 to +88
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_home_normal_search"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:layout_marginTop="12dp"
android:background="@drawable/btn_explore_gray50_radius_14dp"
android:paddingHorizontal="16dp"
android:paddingVertical="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

<TextView
android:id="@+id/tv_home_normal_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/explore_normal_search_hint"
android:textAppearance="@style/label1"
android:textColor="@color/gray_200_949399"
app:layout_constraintBottom_toBottomOf="@id/cl_home_normal_search"
app:layout_constraintStart_toStartOf="@id/cl_home_normal_search"
app:layout_constraintTop_toTopOf="@id/cl_home_normal_search" />

<ImageView
android:id="@+id/iv_home_normal_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_explore_search"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

검색 영역에 접근성(contentDescription) 설정이 필요합니다.

cl_home_normal_search는 클릭 가능한 검색 진입점이지만, contentDescription이 설정되어 있지 않습니다. 내부 ImageViewcontentDescription@null로 지정되어 있어, TalkBack 등 스크린 리더 사용자가 이 요소의 용도를 인식할 수 없습니다.

♿ 접근성 개선 제안
 <androidx.constraintlayout.widget.ConstraintLayout
     android:id="@+id/cl_home_normal_search"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_marginHorizontal="20dp"
     android:layout_marginTop="12dp"
     android:background="@drawable/btn_explore_gray50_radius_14dp"
+    android:contentDescription="@string/explore_normal_search_hint"
     android:paddingHorizontal="16dp"
     android:paddingVertical="12dp"
🤖 Prompt for AI Agents
In `@app/src/main/res/layout/fragment_home.xml` around lines 53 - 88,
cl_home_normal_search (the clickable search entry) and iv_home_normal_search
(the ImageView) lack accessible labels; add descriptive accessibility text so
screen readers can announce the control. Update cl_home_normal_search to be
focusable/clickable for accessibility and set android:contentDescription to a
concise string resource like "@string/explore_normal_search" (or use
tv_home_normal_hint's text) and set iv_home_normal_search's
android:contentDescription to the same string (or to `@null` if you mark the
container as the accessible element and set
android:importantForAccessibility="yes" on cl_home_normal_search and
android:importantForAccessibility="no" on iv_home_normal_search) so TalkBack
correctly describes the control.

@s9hn s9hn changed the title hotfix: 피드 홈 UI 수정 #803 hotfix: 피드 홈 UI 수정 Feb 8, 2026
Copy link
Member

@m6z1 m6z1 left a comment

Choose a reason for hiding this comment

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

고생했어요 산군 🐯

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.

hotfix: 피드 홈 UI 수정

2 participants