Skip to content

Conversation

@junseo511
Copy link
Member

@junseo511 junseo511 commented Jul 6, 2025

📌𝘐𝘴𝘴𝘶𝘦𝘴

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

  • 디자인 여백 디테일 조정
  • 로딩 애니메이션 추가
  • 커스텀 스크롤 구현

📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵

Screen_recording_20250706_232016.mp4

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

Summary by CodeRabbit

  • 신규 기능

    • 피드 생성 화면에서 업로드 중 전체 화면 로딩 애니메이션이 표시됩니다.
    • 이미지 첨부 시, 첨부 이미지가 있을 때만 관련 뷰가 동적으로 표시됩니다.
  • 스타일

    • 피드 작성 화면의 마진 및 패딩이 일부 조정되어 UI가 개선되었습니다.
  • 버그 수정

    • 피드 내용 입력란에서 스크롤이 부드럽게 동작하도록 개선되었습니다.

@junseo511 junseo511 requested a review from a team July 6, 2025 14:24
@junseo511 junseo511 self-assigned this Jul 6, 2025
@junseo511 junseo511 added ♻️ [REFACTOR] 기존 코드를 리팩토링합니다. 🔮 법사 준서 labels Jul 6, 2025
@coderabbitai
Copy link

coderabbitai bot commented Jul 6, 2025

Walkthrough

이번 변경사항은 피드 생성 화면에서 EditText 스크롤 개선, 이미지 첨부 관련 동적 표시, 업로드 중 로딩 애니메이션 오버레이 추가, 그리고 UI 여백 조정이 포함되어 있습니다. 주요 로직 추가는 모두 액티비티 내부의 private 메서드로 구현되었습니다.

Changes

파일/경로 변경 요약
app/src/main/java/com/into/websoso/ui/createFeed/CreateFeedActivity.kt EditText 스크롤 개선 및 GIF 로딩 애니메이션 관련 private 메서드 추가, Coil 및 스크롤 관련 import 추가
app/src/main/res/layout/activity_create_feed.xml 여백 조정, 이미지 첨부 ComposeView 동적 표시, 업로드 중 로딩 오버레이 추가 및 마진/패딩 조정

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CreateFeedActivity
    participant ViewModel

    User->>CreateFeedActivity: EditText에 입력/스크롤 시도
    CreateFeedActivity->>CreateFeedActivity: setupCustomScroll()로 내부 스크롤 허용

    User->>CreateFeedActivity: 피드 업로드 시작
    CreateFeedActivity->>ViewModel: 업로드 상태 변경 요청
    ViewModel-->>CreateFeedActivity: uploading = true
    CreateFeedActivity->>CreateFeedActivity: 로딩 오버레이 및 애니메이션 표시 (setupLoadingAnimation)
    ViewModel-->>CreateFeedActivity: uploading = false
    CreateFeedActivity->>CreateFeedActivity: 로딩 오버레이 숨김
Loading

Assessment against linked issues

Objective (이슈 번호) Addressed Explanation
여백 조정 (#719)
로딩 추가 (#719)

Assessment against linked issues: Out-of-scope changes

(해당 변경사항에서 이슈 목표와 무관한 기능적 코드 변경은 발견되지 않았습니다.)

Suggested reviewers

  • yeonjeen
  • m6z1

Poem

로딩이 빙글빙글, 여백도 딱 맞게
스크롤은 부드럽게, 토끼도 춤추네!
이미지 첨부, 로딩 오버레이
QA 반영 완료, 기분 좋은 오늘이야 🐰✨

── 코드를 사랑하는 토끼 드림

✨ Finishing Touches
  • 📝 Generate Docstrings

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot requested review from m6z1, s9hn and yeonjeen July 6, 2025 14:24
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: 0

🧹 Nitpick comments (2)
app/src/main/res/layout/activity_create_feed.xml (1)

321-341: 로딩 오버레이 구현을 개선할 수 있습니다.

로딩 오버레이가 잘 구현되었지만, 접근성 향상을 위해 개선할 수 있습니다.

다음 diff를 적용하여 접근성을 개선하세요:

         <androidx.constraintlayout.widget.ConstraintLayout
             android:layout_width="0dp"
             android:layout_height="0dp"
             android:background="@color/black_60_99000000"
+            android:contentDescription="@string/loading_description"
+            android:focusable="true"
             app:isVisible="@{viewModel.uploading}"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent"
             tools:visibility="gone">

             <ImageView
                 android:id="@+id/iv_create_feed_load"
                 android:layout_width="50dp"
                 android:layout_height="50dp"
+                android:contentDescription="@string/loading_animation"
                 android:src="@drawable/ic_load_load"
                 app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="parent"
                 app:layout_constraintTop_toTopOf="parent" />
         </androidx.constraintlayout.widget.ConstraintLayout>
app/src/main/java/com/into/websoso/ui/createFeed/CreateFeedActivity.kt (1)

250-257: ImageLoader 성능 최적화를 고려해보세요.

GIF 로딩 구현이 올바르게 되어 있지만, 성능 최적화를 위해 ImageLoader를 lazy property로 만들 수 있습니다.

다음과 같이 개선할 수 있습니다:

+    private val gifImageLoader by lazy {
+        ImageLoader
+            .Builder(this)
+            .components {
+                add(ImageDecoderDecoder.Factory())
+            }.build()
+    }
+
     private fun setupLoadingAnimation() {
-        val gifImageLoader = ImageLoader
-            .Builder(this)
-            .components {
-                add(ImageDecoderDecoder.Factory())
-            }.build()
         binding.ivCreateFeedLoad.load(ic_load_load, gifImageLoader)
     }
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1b409f8 and 3896fe6.

📒 Files selected for processing (2)
  • app/src/main/java/com/into/websoso/ui/createFeed/CreateFeedActivity.kt (5 hunks)
  • app/src/main/res/layout/activity_create_feed.xml (5 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: build
🔇 Additional comments (5)
app/src/main/res/layout/activity_create_feed.xml (2)

110-110: 간격 조정이 적절하게 적용되었습니다.

QA 피드백을 반영한 디자인 간격 조정이 일관성 있게 적용되었습니다.

Also applies to: 146-146, 183-183


236-236: 동적 가시성 바인딩이 올바르게 구현되었습니다.

첨부된 이미지가 있을 때만 ComposeView가 표시되도록 하는 로직이 정확합니다.

app/src/main/java/com/into/websoso/ui/createFeed/CreateFeedActivity.kt (3)

3-3: 필요한 import 구문들이 적절히 추가되었습니다.

커스텀 스크롤과 로딩 애니메이션 구현에 필요한 import들이 올바르게 추가되었습니다.

Also applies to: 7-7, 14-16, 36-36


68-68: 새로운 기능 초기화 메서드 호출이 적절히 추가되었습니다.

onCreate()에서 setupCustomScroll()과 setupLoadingAnimation() 메서드 호출이 올바른 위치에 배치되었습니다.

Also applies to: 74-74


97-109: 커스텀 스크롤 구현이 올바르게 작성되었습니다.

EditText 내부 스크롤이 부모 뷰의 터치 이벤트 가로채기와 충돌하지 않도록 적절히 처리되었습니다. @SuppressLint 어노테이션 사용도 적절합니다.

Copy link
Member

@s9hn s9hn left a comment

Choose a reason for hiding this comment

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

고생하셨씁니다

}

private fun setupLoadingAnimation() {
val gifImageLoader = ImageLoader
Copy link
Member

Choose a reason for hiding this comment

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

a: 추후에 DI로 관리해도 좋을것같아요

Copy link
Member

@yeonjeen yeonjeen left a comment

Choose a reason for hiding this comment

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

수고하셨습니당!!

@junseo511 junseo511 merged commit fe7fd74 into develop Jul 7, 2025
2 of 3 checks passed
@m6z1 m6z1 deleted the feat/719 branch August 11, 2025 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

♻️ [REFACTOR] 기존 코드를 리팩토링합니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refactor: 사진소소 1차 QA 반영

4 participants