Skip to content

Conversation

@librawish808
Copy link
Collaborator

@librawish808 librawish808 commented Oct 2, 2025

🔗 관련 이슈

📙 작업 설명

  • 홈 화면, 상세화면 UI를 수정하였습니다.

TODO

  • NameBar 알림 배지 기능과 HomeMedicineContainer의 아이콘 표시는 현재 UI 확인을 위한 임시 구현이 되어 있으며 관련 서버 API 업데이트가 필요합니다.

  • AI 한줄요약 미기록, 다음복약시간 미기록, 추가 개발 UI에 관한 질문은 피그마에 남겨놓았습니다. 해결이 되면 수정하겠습니다.

📸 스크린샷 또는 시연 영상 (선택)

스크린샷 2025-10-03 오전 3 25 06
Screen_recording_20251003_033648.webm

💬 추가 설명 or 리뷰 포인트 (선택)

  • 현재 홈화면과 주간통계화면에서 네임바의 알림 개수가 표시되는데 이 데이터를 각각의 로직에서 관리를 해야될지 아님 MainViewModel같은 공통 로직을 만드는게 좋을지 의견요청드립니다

Summary by CodeRabbit

  • 신규 기능

    • NameBar에 알림 배지(숫자) 추가 및 스낵바 도입.
    • 홈 화면에 “오늘의 건강 통계” 요약 카드 추가.
  • UI/UX

    • TopAppBar 구성·색상·구분선 개선 및 전반적 간격·타이포그래피 조정.
    • 캘린더, 날짜선택자, 혈당·복약·수면·상세 화면 레이아웃·스타일 업데이트.
    • 드롭다운·토글 화살표 아이콘 교체 및 배지/타이포 일부 개선.
  • 리팩터

    • 복약 관련 상태에서 todayTakenCount 제거로 시그니처 정리.
  • 에셋

    • 여러 아이콘(알림, 하트, 스마일, 약, 화살표 등) 추가·교체·삭제.

@coderabbitai
Copy link

coderabbitai bot commented Oct 2, 2025

Walkthrough

홈/상세 UI 전반의 레이아웃·타이포·간격 조정, 알림 배지 컴포넌트 추가 및 NameBar API 확장, MedicineUiState에서 todayTakenCount 제거와 관련 호출 정리, 다수 드로어블 리소스의 추가/교체/삭제를 포함한 변경입니다.

Changes

Cohort / File(s) Summary
Medicine 상태 리팩터링
app/src/main/java/.../data/dto/response/MedicineResponseDto.kt, app/src/main/java/.../data/repositoryimpl/MedicineRepositoryImpl.kt, app/src/main/java/.../ui/feature/homedetail/medicine/viewmodel/MedicineUiState.kt, app/src/main/java/.../ui/feature/homedetail/medicine/component/MedicineDetailCard.kt, app/src/main/java/.../ui/feature/homedetail/medicine/screen/MedicineDetail.kt, app/src/main/java/.../ui/feature/home/component/HomeMedicineContainer.kt
MedicineUiState에서 todayTakenCount 제거; DTO/리포지토리/컴포넌트 호출부에서 해당 인자 제거 및 호출 정리; MedicineDetailCard 시그니처 조정 및 내부 아이콘 매핑 방식으로 전환.
NameBar 및 알림 배지 도입
app/src/main/java/.../ui/common/component/NameBar.kt, app/src/main/java/.../ui/common/component/NotificationIconWithBadge.kt, app/src/main/java/.../ui/feature/home/screen/HomeScreen.kt, app/src/main/java/.../ui/feature/statistics/screen/StatisticsScreen.kt
NameBarnotificationCount: Int 파라미터 추가; NotificationIconWithBadge 신규 컴포넌트 추가; Home/Statistics 등 호출부에 count 인자 적용(프리뷰 포함) 및 홈에 SnackbarHost 연결.
TopAppBar 재구성 및 상세 화면 적용
app/src/main/java/.../ui/common/component/TopAppBar.kt, app/src/main/java/.../ui/feature/homedetail/*/screen/*.kt
TopAppBar를 Column+Row 구조로 재배치해 백버튼·제목 정렬과 하단 Divider 추가; 상세 화면들에 TopAppBar 적용 및 배경/간격 정리.
드롭다운/화살표 아이콘 교체
app/src/main/java/.../ui/common/component/DefaultDropDown.kt, app/src/main/java/.../ui/common/component/SpecialNoteItem.kt, app/src/main/java/.../ui/feature/calendar/DateSelector.kt, app/src/main/res/drawable/ic_arrow_down.xml, app/src/main/res/drawable/ic_arrow_down_small.xml, app/src/main/res/drawable/ic_arrow_down_big.xml
닫힘 상태 화살표 아이콘 리소스를 ic_arrow_down_small(일부는 ic_arrow_down_big)으로 교체; 기존 ic_arrow_down.xml 삭제, 소형/대형 새 벡터 추가.
캘린더·위클리 스타일 업데이트
app/src/main/java/.../ui/feature/calendar/WeeklyCalendar.kt
요일/날짜 타이포·색상 조정, 선택일에 원형 배경 적용 및 소폭 간격 변경.
홈 화면 및 카드 스타일/구조 변경
app/src/main/java/.../ui/feature/home/screen/HomeScreen.kt, app/src/main/java/.../ui/feature/home/component/*.kt
요약 카드 구조 단순화(데이터 유무에 따른 배경), 스낵바 호스트 추가, 여러 카드/컨테이너의 타이포·간격·아이콘·패딩 수정.
혈당 관련 UI 개선
app/src/main/java/.../ui/feature/homedetail/glucoselevel/component/GlucoseListItem.kt, .../GlucoseTimingButton.kt, .../GlucoseDetail.kt
리스트 아이템 레이아웃/패딩 재배치, 타이밍 버튼의 선택 상태별 동적 스타일 적용, 화면 간격/임포트 정리.
상세화면(식사/수면/건강/정신) 레이아웃·간격 조정
app/src/main/java/.../ui/feature/homedetail/*/component/*, .../screen/*
Card에서 외부 modifier 위임, 타이포 통일(R_/M_), 스페이서 증가 및 배경 적용 등 시각적 리플로우.
HomeUiState null 안전화
app/src/main/java/.../ui/feature/home/viewmodel/HomeUiState.kt
balloonMessagedto.aiSummary.orEmpty()로 변경해 null 안전 처리.
드로어블 리소스 대규모 변경
app/src/main/res/drawable/* (여러 파일)
여러 아이콘의 크기·뷰포트·패스·색상·그라디언트 재정의, 신규 아이콘 추가(ic_notification, ic_heart, ic_smile, 약 아이콘들 등), 일부 아이콘 삭제(ic_pills_basic, ic_arrow_down) 및 벡터 구조 변경.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    actor User as 사용자
    participant Home as HomeScreen
    participant NameBar as NameBar
    participant Badge as NotificationIconWithBadge
    participant Snackbar as SnackbarHost

    User->>Home: 화면 진입
    Home->>NameBar: NameBar(notificationCount)
    NameBar->>Badge: 렌더(notificationCount)
    alt notificationCount > 0
        Badge-->>NameBar: 배지(숫자, "99" cap)
    end
    User->>Badge: 탭
    Badge-->>Home: onClick 콜백
    Home->>Snackbar: show(snackbarHostState)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~55 minutes

Suggested labels

P2

Suggested reviewers

  • ProtossManse

Poem

아이콘이 반짝, 화살표는 작아졌네 ⬇️
이름바에 배지 하나, 소식이 살짝 떠올라 🔔
복약 카드는 가벼워지고 칸은 넓어져
캘린더는 동그라미로 오늘을 따듯히 표시해요 ○
픽셀들이 정돈되어 베타를 향해 걷네요 🚶‍♀️

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Title Check ✅ Passed PR 제목은 홈화면과 상세화면 UI 변경을 명확히 요약하고 있으며, '[Feat]' 태그와 '#130' 이슈 번호를 포함해 변경 의도를 잘 전달합니다. 파일 리스트나 이모지 없이 간결하게 작성되어 스캔할 때 핵심이 바로 파악돼요. 따라서 브랜치 히스토리에서 이 PR의 목적을 쉽게 이해할 수 있습니다.
Linked Issues Check ✅ Passed PR의 변경사항은 홈화면과 상세화면 UI 수정 요구사항(#130)을 모두 잘 반영합니다. 홈 화면에서는 네임바, 요약 카드, 각 컨테이너 컴포넌트가 업데이트됐고 상세 화면에서도 DetailCard와 레이아웃이 하나도 빠짐없이 적용돼요. 따라서 연결된 이슈의 작업 목록을 충족해 목표 범위 내 구현이 완전합니다.
Out of Scope Changes Check ✅ Passed PR은 홈 및 상세 화면 UI 수정에 필요한 코드 및 리소스 변경만 포함하고 있네요. DTO 매핑부터 드로어블 리소스 추가·삭제, 컴포저블 레이아웃 변경까지 모두 UI 변경 맥락에 딱 맞습니다. 기능 요구사항과 무관한 의도치 않은 변경은 발견되지 않습니다.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ 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 feat/home-ui-#130

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.

@librawish808 librawish808 self-assigned this Oct 2, 2025
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: 6

🧹 Nitpick comments (8)
app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/glucoselevel/component/GlucoseListItem.kt (1)

28-99: UI 업데이트 잘 반영되었습니다!

레이아웃 구조 개선, 패딩·간격 조정, 텍스트 색상 업데이트(gray4 → gray6), trailing comma 추가 등 디자인 수정사항이 깔끔하게 적용되었습니다. 로직 변경 없이 UI만 개선된 점도 좋습니다.

선택적 제안: 중복 정렬 속성 제거

Line 34의 horizontalAlignment = Alignment.StartColumn의 기본값이므로 생략 가능합니다. 명시적으로 표기하는 것도 나쁘지 않지만, 코드 간결성을 위해 제거해도 무방합니다.

필요시 아래 diff 적용:

 Column(
     modifier = modifier.fillMaxWidth(),
-    horizontalAlignment = Alignment.Start,
 ) {
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeMedicineContainer.kt (6)

36-64: 대용량 주석 코드를 정리하거나 이슈로 추적하는 것을 고려해보세요.

복약 상태 아이콘 리스트를 위한 구현 코드가 주석으로 남아있습니다. PR 설명에서 언급한 대로 서버 API 업데이트 대기 중인 것으로 보이지만, 약 30줄에 가까운 주석 코드는 가독성을 저해할 수 있습니다.

다음 중 하나를 고려해보세요:

  • 별도 브랜치나 개발 문서에 보관하고 현재 파일에서는 제거
  • GitHub 이슈로 전환하여 추적 (코드 스니펫 포함)
  • 최소한 주석 범위를 축소하고 핵심 로직만 간략히 남기기

82-101: 하드코딩된 문자열을 리소스로 분리하는 것을 권장합니다.

"복약" 문자열이 하드코딩되어 있습니다. 향후 다국어 지원이나 문구 변경 시 유지보수를 위해 strings.xml로 분리하는 것이 좋습니다.

-                Text(
-                    "복약",
-                    style = MediCareCallTheme.typography.R_16,
-                    color = MediCareCallTheme.colors.gray8,
-                )
+                Text(
+                    text = stringResource(R.string.home_medicine_title),
+                    style = MediCareCallTheme.typography.R_16,
+                    color = MediCareCallTheme.colors.gray8,
+                )

125-125: "회 하루 복용" 문자열도 리소스로 분리를 권장합니다.

앞서 지적한 것과 마찬가지로 UI 문자열은 strings.xml로 관리하는 것이 좋습니다.


152-152: 문자열 템플릿에 하드코딩된 텍스트를 리소스로 분리하세요.

"다음 복약 : " 및 "약" 접미사가 하드코딩되어 있습니다. 포맷팅 문자열로 리소스화하는 것을 권장합니다.

<!-- strings.xml -->
<string name="next_dose_time_format">다음 복약 : %s약</string>
-                            Text(
-                                text = "다음 복약 : ${medicine.nextDoseTime}약",
-                                style = MediCareCallTheme.typography.R_14,
-                                color = MediCareCallTheme.colors.main,
-                            )
+                            Text(
+                                text = stringResource(R.string.next_dose_time_format, medicine.nextDoseTime),
+                                style = MediCareCallTheme.typography.R_14,
+                                color = MediCareCallTheme.colors.main,
+                            )

164-190: 중첩된 Column이 불필요해 보입니다.

Line 164의 Column()은 현재 단일 Text 컴포넌트만 포함하고 있습니다 (주석 처리된 코드 제외). TODO 완료 전까지는 Column을 제거하고 Text만 렌더링하는 것이 더 간결합니다.

-                        Column() {
-                            //TODO: 복약 상태 아이콘 리스트
-                            // ... (commented code lines 166-183)
-                            Text(
-                                text = "${medicine.todayTakenCount}/${medicine.todayRequiredCount}회 복용",
-                                style = MediCareCallTheme.typography.R_14,
-                                color = MediCareCallTheme.colors.gray5,
-                            )
-                        }
+                        //TODO: 복약 상태 아이콘 리스트 - 구현 시 Column 복원
+                        Text(
+                            text = "${medicine.todayTakenCount}/${medicine.todayRequiredCount}회 복용",
+                            style = MediCareCallTheme.typography.R_14,
+                            color = MediCareCallTheme.colors.gray5,
+                        )

TODO 완료 시 Column을 다시 추가하면 됩니다.


186-186: 문자열 템플릿 "회 복용"도 리소스로 분리하세요.

복용 횟수를 표시하는 문자열도 리소스화를 권장합니다.

<!-- strings.xml -->
<string name="dose_count_format">%1$d/%2$d회 복용</string>
-                            Text(
-                                text = "${medicine.todayTakenCount}/${medicine.todayRequiredCount}회 복용",
-                                style = MediCareCallTheme.typography.R_14,
-                                color = MediCareCallTheme.colors.gray5,
-                            )
+                            Text(
+                                text = stringResource(
+                                    R.string.dose_count_format,
+                                    medicine.todayTakenCount,
+                                    medicine.todayRequiredCount
+                                ),
+                                style = MediCareCallTheme.typography.R_14,
+                                color = MediCareCallTheme.colors.gray5,
+                            )
app/src/main/java/com/konkuk/medicarecall/ui/common/component/NotificationIconWithBadge.kt (1)

46-70: 배지 표시 로직 잘 구현되어 있습니다.

알림 개수가 0보다 클 때만 배지를 표시하고, 99를 초과하면 "99"로 캡핑하는 로직이 깔끔하게 구현되었습니다.

한 가지 고려사항: 배지 위치 오프셋 값(offset(x = (-3).dp, y = (-6).dp))이 하드코딩되어 있는데, 향후 알림 아이콘 크기가 변경될 경우를 대비해 비율 기반 오프셋이나 컴포저블 파라미터로 조정 가능하게 하는 것도 좋을 것 같습니다.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 28817aa and 08da563.

⛔ Files ignored due to path filters (16)
  • icon/char_medi.svg is excluded by !**/*.svg
  • icon/ic_arrow_down.svg is excluded by !**/*.svg
  • icon/ic_arrow_down_big.svg is excluded by !**/*.svg
  • icon/ic_glucose.svg is excluded by !**/*.svg
  • icon/ic_heart.svg is excluded by !**/*.svg
  • icon/ic_notification.svg is excluded by !**/*.svg
  • icon/ic_pill_taken.svg is excluded by !**/*.svg
  • icon/ic_pill_uncheck.svg is excluded by !**/*.svg
  • icon/ic_pill_untaken.svg is excluded by !**/*.svg
  • icon/ic_pills.svg is excluded by !**/*.svg
  • icon/ic_ricebowl.svg is excluded by !**/*.svg
  • icon/ic_ricebowl_eat.svg is excluded by !**/*.svg
  • icon/ic_ricebowl_skip.svg is excluded by !**/*.svg
  • icon/ic_ricebowl_uncheck.svg is excluded by !**/*.svg
  • icon/ic_sleep.svg is excluded by !**/*.svg
  • icon/ic_smile.svg is excluded by !**/*.svg
📒 Files selected for processing (50)
  • app/src/main/java/com/konkuk/medicarecall/data/dto/response/MedicineResponseDto.kt (0 hunks)
  • app/src/main/java/com/konkuk/medicarecall/data/repositoryimpl/MedicineRepositoryImpl.kt (0 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/common/component/DefaultDropDown.kt (1 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/common/component/NameBar.kt (4 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/common/component/NotificationIconWithBadge.kt (1 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/common/component/SpecialNoteItem.kt (1 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/common/component/TopAppBar.kt (2 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/calendar/DateSelector.kt (1 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/calendar/WeeklyCalendar.kt (5 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeGlucoseLevelContainer.kt (5 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeMealContainer.kt (4 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeMedicineContainer.kt (4 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeSleepContainer.kt (3 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeStateHealthContainer.kt (2 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeStateMentalContainer.kt (2 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/home/screen/HomeScreen.kt (9 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/home/viewmodel/HomeUiState.kt (1 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/glucoselevel/component/GlucoseListItem.kt (3 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/glucoselevel/component/GlucoseTimingButton.kt (3 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/glucoselevel/screen/GlucoseDetail.kt (3 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/meal/component/MealDetailCard.kt (2 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/meal/screen/MealDetail.kt (5 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/medicine/component/MedicineDetailCard.kt (6 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/medicine/screen/MedicineDetail.kt (5 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/medicine/viewmodel/MedicineUiState.kt (0 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/sleep/component/SleepDetailCard.kt (5 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/sleep/screen/SleepDetail.kt (3 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/statehealth/component/StateHealthDetailCard.kt (5 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/statehealth/screen/StateHealthDetail.kt (4 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/statemental/component/StateMentalDetailCard.kt (3 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/statemental/screen/StateMentalDetail.kt (5 hunks)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/statistics/screen/StatisticsScreen.kt (2 hunks)
  • app/src/main/res/drawable/char_medi.xml (1 hunks)
  • app/src/main/res/drawable/ic_arrow_down.xml (0 hunks)
  • app/src/main/res/drawable/ic_arrow_down_big.xml (1 hunks)
  • app/src/main/res/drawable/ic_arrow_down_small.xml (1 hunks)
  • app/src/main/res/drawable/ic_glucose.xml (1 hunks)
  • app/src/main/res/drawable/ic_heart.xml (1 hunks)
  • app/src/main/res/drawable/ic_notification.xml (1 hunks)
  • app/src/main/res/drawable/ic_pill_taken.xml (1 hunks)
  • app/src/main/res/drawable/ic_pill_uncheck.xml (1 hunks)
  • app/src/main/res/drawable/ic_pill_untaken.xml (1 hunks)
  • app/src/main/res/drawable/ic_pills.xml (1 hunks)
  • app/src/main/res/drawable/ic_pills_basic.xml (0 hunks)
  • app/src/main/res/drawable/ic_ricebowl.xml (1 hunks)
  • app/src/main/res/drawable/ic_ricebowl_eat.xml (1 hunks)
  • app/src/main/res/drawable/ic_ricebowl_skip.xml (1 hunks)
  • app/src/main/res/drawable/ic_ricebowl_uncheck.xml (1 hunks)
  • app/src/main/res/drawable/ic_sleep.xml (1 hunks)
  • app/src/main/res/drawable/ic_smile.xml (1 hunks)
💤 Files with no reviewable changes (5)
  • app/src/main/java/com/konkuk/medicarecall/data/repositoryimpl/MedicineRepositoryImpl.kt
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/medicine/viewmodel/MedicineUiState.kt
  • app/src/main/res/drawable/ic_pills_basic.xml
  • app/src/main/res/drawable/ic_arrow_down.xml
  • app/src/main/java/com/konkuk/medicarecall/data/dto/response/MedicineResponseDto.kt
🧰 Additional context used
🧬 Code graph analysis (4)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/screen/HomeScreen.kt (9)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/CareCallSnackBar.kt (1)
  • CareCallSnackBar (13-25)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeMealContainer.kt (1)
  • HomeMealContainer (30-158)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeMedicineContainer.kt (1)
  • HomeMedicineContainer (31-199)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeSleepContainer.kt (1)
  • HomeSleepContainer (33-161)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeStateHealthContainer.kt (1)
  • HomeStateHealthContainer (29-104)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeStateMentalContainer.kt (1)
  • HomeStateMentalContainer (29-104)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeGlucoseLevelContainer.kt (1)
  • HomeGlucoseLevelContainer (28-118)
app/src/main/java/com/konkuk/medicarecall/ui/common/component/NameDropdown.kt (1)
  • NameDropdown (37-120)
app/src/main/java/com/konkuk/medicarecall/ui/theme/Theme.kt (1)
  • MediCareCallTheme (38-60)
app/src/main/java/com/konkuk/medicarecall/ui/common/component/NameBar.kt (1)
app/src/main/java/com/konkuk/medicarecall/ui/common/component/NotificationIconWithBadge.kt (1)
  • NotificationIconWithBadge (28-72)
app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/meal/screen/MealDetail.kt (1)
app/src/main/java/com/konkuk/medicarecall/ui/common/component/TopAppBar.kt (1)
  • TopAppBar (26-75)
app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/medicine/screen/MedicineDetail.kt (1)
app/src/main/java/com/konkuk/medicarecall/ui/common/component/TopAppBar.kt (1)
  • TopAppBar (26-75)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: ci-build
🔇 Additional comments (68)
app/src/main/res/drawable/ic_glucose.xml (1)

2-15: 새 아이콘 크기 및 스타일 정상

신규 뷰포트/사이즈와 색상, 스트로크 조합 모두 디자인 의도에 맞게 적용된 것으로 보입니다. 추가 우려 사항 없습니다.

app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/statemental/component/StateMentalDetailCard.kt (3)

33-33: 제공된 modifier 파라미터를 올바르게 사용하고 있습니다.

Card의 modifier로 제공된 파라미터를 직접 사용하는 것은 컴포저블의 재사용성을 높이는 좋은 패턴입니다. 이제 호출하는 쪽에서 카드의 크기와 제약을 자유롭게 제어할 수 있습니다.


70-70: 간격 조정으로 가독성이 개선되었습니다.

  • 제목과 내용 사이 간격을 4.dp → 12.dp로 증가 (Line 70)
  • 리스트 아이템 간 간격 2.dp 추가 (Line 87)
  • 불릿과 텍스트 사이 간격을 8.dp → 12.dp로 증가 (Line 96)

이러한 간격 조정은 시각적 계층 구조를 명확하게 만들어 UI의 가독성을 향상시킵니다.

Also applies to: 87-87, 96-96


93-93: 타이포그래피 변경으로 시각적 강조가 강화되었습니다.

리스트 아이템의 텍스트 스타일을 R_16(Regular)에서 M_16(Medium)으로 변경하여 심리상태 요약 내용의 가독성과 시각적 무게감이 향상되었습니다.

Also applies to: 99-99

app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/statehealth/component/StateHealthDetailCard.kt (4)

58-58: LGTM! 카드 내부 섹션 간격 확대.

섹션 간 수직 간격을 20dp에서 32dp로 늘려 시각적 여유를 개선했습니다. UI 개선 의도와 잘 맞습니다.


69-69: LGTM! 헤더 아래 간격 통일.

"건강징후 요약"과 "증상 분석" 헤더 아래 Spacer를 4dp에서 12dp로 증가시켜 가독성을 높였습니다. 두 섹션에서 일관되게 적용된 점이 좋습니다.

Also applies to: 107-107


83-90: LGTM! 타이포그래피 토큰 통일 및 간격 조정.

증상 목록의 불릿과 텍스트를 R_16에서 M_16으로 변경하고, 불릿과 텍스트 사이 간격을 8dp에서 12dp로 늘렸습니다. 전체 PR의 디자인 시스템 통일 방향과 일치합니다.


119-119: LGTM! 증상 분석 텍스트 타이포그래피 통일.

증상 분석 텍스트에도 M_16 타이포그래피를 적용해 전체 카드 내 텍스트 스타일을 일관되게 유지했습니다.

app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/meal/component/MealDetailCard.kt (2)

65-65: LGTM! 간격 조정이 자연스럽네요.

식사 시간과 설명 사이 간격을 8dp에서 12dp로 늘려 가독성을 개선했습니다. 전반적인 UI 개편의 일환으로 적절한 변경입니다.


85-85: 색상 일관성 개선, 좋습니다!

기록 전 상태 텍스트를 gray4에서 gray8로 변경하여 기록 후 상태(78번 줄)와 동일한 색상을 사용하게 되었습니다. 가독성도 개선되고 일관성도 확보되었네요.

app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/glucoselevel/component/GlucoseTimingButton.kt (3)

27-30: 깔끔한 동적 스타일링 구현이네요!

선택 상태에 따른 색상과 타이포그래피를 명확하게 분리해서 가독성이 좋습니다. 하드코딩된 값들을 변수로 추출한 것도 유지보수성 측면에서 좋은 개선이에요.


32-57: Card 구현이 잘 되어 있습니다.

동적 스타일 변수들을 적절히 활용하고 있고, Compose의 표준 패턴을 따르고 있어요. clickable 모디파이어와 중앙 정렬 Box 구조도 적절합니다.


61-77: 프리뷰 함수들이 잘 구성되어 있네요.

선택/비선택 상태를 모두 커버하는 프리뷰가 있어서 디자인 확인이 용이하겠어요. trailing comma 추가도 코드 스타일 일관성을 높여줍니다.

app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/glucoselevel/screen/GlucoseDetail.kt (2)

42-42: LGTM! 임포트 정리 잘 되었습니다.

HomeViewModel, GlucoseViewModel, GlucoseTiming 임포트가 깔끔하게 정리되었네요. 기능에는 영향 없는 구조 개선입니다.

Also applies to: 48-49


171-171: 간격 조정 확인했습니다.

TopAppBar 아래 24dp, 그래프와 상세 정보 사이 44dp로 여백이 조정되었네요. 시각적 분리가 더 명확해질 것 같습니다.

Also applies to: 222-222

app/src/main/java/com/konkuk/medicarecall/ui/feature/home/viewmodel/HomeUiState.kt (1)

25-25: null 안전성 처리 확인 완료

HomeUiState.from()에서 모든 nullable 필드(dto.sleep, dto.healthStatus, dto.mentalStatus, dto.bloodSugar)도 Elvis 연산자(?:)나 안전 호출(?.) 후 기본값을 잘 지정하고 있으므로 추가 수정 불필요합니다.

app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeMedicineContainer.kt (3)

110-130: 전체 복약 상태 계산 로직이 명확합니다.

medicines 리스트를 순회하며 총 복용 횟수와 필요 횟수를 계산하는 로직이 직관적이고 올바르게 구현되어 있습니다.


150-156: nextDoseTime 조건 처리가 적절합니다.

null, 빈 문자열, 그리고 "-" 케이스를 모두 방어하고 있어 안전한 렌더링이 보장됩니다.


202-221: Preview 함수들이 유용합니다.

다양한 상태(복약 기록 있음/미기록)를 커버하는 Preview 함수들이 잘 작성되어 있어 UI 개발 시 유용할 것 같습니다.

app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeGlucoseLevelContainer.kt (6)

35-35: 외부 modifier 사용으로 변경 👍

modifier를 직접 사용하도록 변경하여 외부에서 크기 및 레이아웃을 제어할 수 있게 개선되었습니다. Compose 모범 사례에 부합합니다.


48-49: 패딩 조정 확인

Column에 명시적으로 20.dp 패딩을 적용하여 레이아웃을 조정했습니다. 변경사항이 명확하고 문제없습니다.


57-65: 아이콘 패딩 조정 확인

고정 크기에서 다방향 패딩으로 변경하여 아이콘 주변 여백을 세밀하게 조정했습니다. 좌우 패딩이 비대칭(start=7dp, end=6dp)인 점이 시각적 균형을 위한 의도적 조정인 것으로 보입니다.


67-67: 간격 조정 확인

아이콘과 텍스트 사이 간격을 4.dp에서 2.dp로 줄여 더 밀착된 레이아웃을 구현했습니다.


77-77: 수직 간격 증가 확인

타이틀과 콘텐츠 사이 간격을 8.dp에서 20.dp로 늘려 가독성을 개선했습니다.


106-106: 타이포그래피 토큰 일관성 확인 필요
HomeGlucoseLevelContainer에서 mg/dL 단위 텍스트를 R_16M_16으로 변경하셨습니다. 하지만 WeeklySummaryCard, WeeklySleepCard 등 유사 컴포넌트의 단위/라벨 텍스트는 여전히 R_16을 사용 중입니다. 디자인 가이드 의도인지, 다른 컴포넌트에도 일괄 적용이 필요한지 검토 부탁드립니다.

app/src/main/res/drawable/ic_heart.xml (1)

1-9: 새로운 하트 아이콘이 잘 정의되었습니다.

벡터 드로어블 정의가 올바르며, 건강 상태 표시에 사용하기 적합한 핑크톤 컬러(#FA6878)가 적용되었습니다.

app/src/main/res/drawable/ic_pill_untaken.xml (1)

1-12: 복용하지 않은 약 아이콘이 명확하게 정의되었습니다.

32dp 크기의 벡터 드로어블로, 두 가지 톤의 빨간색(#FF4949, #FF9F9F)을 사용한 디자인이 복용하지 않은 상태를 직관적으로 표현합니다.

app/src/main/res/drawable/ic_arrow_down_big.xml (1)

1-9: 큰 아래 화살표 아이콘이 적절하게 정의되었습니다.

NameBar의 접힌 상태에 사용될 18dp x 19dp 크기의 화살표 아이콘입니다. 회색 컬러(#AFAFAF)가 UI 요소로 적절합니다.

app/src/main/res/drawable/ic_smile.xml (1)

1-21: 스마일 아이콘이 세심하게 디자인되었습니다.

얼굴, 눈, 입을 별도 경로로 정의하여 24dp 크기의 웃는 표정을 표현했습니다. 입 부분은 stroke 속성을 사용해 선으로 그려지도록 구현되었고, 노란색 얼굴(#FFCC3D)과 어두운 눈/입(#1F1F1F)의 대비가 명확합니다.

app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeStateMentalContainer.kt (4)

38-38: modifier 전파가 올바르게 개선되었습니다.

외부에서 전달된 modifier를 직접 적용하여 Card에 스타일 체이닝이 가능하도록 변경했습니다. 컴포넌트 재사용성을 높이는 좋은 패턴입니다.


61-61: 새로운 스마일 아이콘으로 교체되었습니다.

ic_state_mental에서 ic_smile로 변경하여 심리상태 UI를 업데이트했습니다. 새로 추가된 드로어블 리소스와 일치합니다.


69-70: 타이포그래피와 색상이 업데이트되었습니다.

제목 스타일을 SB_18에서 R_16으로, 색상을 main에서 gray8로 변경하여 시각적 계층을 조정했습니다.


75-75: 간격이 적절히 증가되었습니다.

제목과 본문 사이의 spacer를 8dp에서 20dp로 늘려 가독성을 개선했습니다.

app/src/main/res/drawable/ic_notification.xml (1)

1-9: 알림 아이콘이 명확하게 정의되었습니다.

28dp 크기의 벡터 드로어블로, 회색(#949494) 벨 모양이 알림 UI에 적합합니다. PR 컨텍스트에 따르면 새로운 NotificationIconWithBadge 컴포넌트와 함께 사용됩니다.

app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/statemental/screen/StateMentalDetail.kt (3)

4-4: 필요한 import 구문이 추가되었습니다.

background modifier, TopAppBar, CalendarUiState, CalendarViewModel, MediCareCallTheme 등 새로 사용되는 컴포넌트와 테마에 대한 import가 명시적으로 추가되었습니다.

Also applies to: 28-28, 32-32, 37-37


107-107: 배경색이 테마로 적용되었습니다.

메인 콘텐츠 Column에 MediCareCallTheme.colors.bg를 배경으로 설정하여 일관된 테마를 유지합니다.


117-117: 간격 조정으로 레이아웃이 개선되었습니다.

DateSelector 이후 spacer를 10dp에서 24dp로, 캘린더 이후 spacer를 24dp에서 32dp로 증가시켜 시각적 계층과 가독성을 향상시켰습니다.

Also applies to: 127-127

app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeMealContainer.kt (5)

36-36: trailing comma가 일관되게 추가되었습니다.

Kotlin 스타일 가이드에 따라 함수 매개변수, 람다, 수정자 체인 등에 trailing comma를 추가하여 코드 일관성과 diff 가독성을 개선했습니다.

Also applies to: 55-55, 58-58, 60-60, 63-63, 68-68, 70-70, 95-95, 100-100, 107-107, 120-120, 126-126, 139-139, 147-147, 170-170


50-50: modifier 전파가 개선되었습니다.

외부에서 전달된 modifier를 직접 사용하도록 변경하여 컴포넌트 재사용성을 높였습니다. 다른 컨테이너 컴포넌트들과 일관된 패턴입니다.


82-83: 타이포그래피와 색상이 업데이트되었습니다.

제목 스타일을 R_16으로, 색상을 gray8로 변경하여 다른 홈 컨테이너 컴포넌트들과 시각적 일관성을 유지합니다.


78-78: 간격이 조정되었습니다.

아이콘과 텍스트 사이 간격을 8dp로, 제목과 본문 사이 간격을 20dp로 설정하여 다른 컴포넌트들과 일관된 레이아웃을 유지합니다.

Also applies to: 88-88


73-73: 이미지 패딩이 조정되었습니다.

아이콘 이미지들의 패딩 값을 조정하여 시각적 균형을 개선했습니다.

Also applies to: 104-104, 123-123, 144-144

app/src/main/java/com/konkuk/medicarecall/ui/common/component/NotificationIconWithBadge.kt (1)

75-86: 프리뷰 케이스가 충실합니다.

다양한 알림 개수 케이스(1, 9, 12, 99, 100, 0)를 모두 커버하고 있어 UI 확인이 용이합니다. 특히 경계값(99/100)과 배지 미표시(0) 케이스를 포함한 점이 좋습니다.

app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/medicine/screen/MedicineDetail.kt (2)

101-109: 배경 테마와 간격 조정이 일관되게 적용되었습니다.

MediCareCallTheme.colors.bg 배경 적용과 TopAppBar 하단 4dp 간격 추가가 다른 상세 화면들(MealDetail, SleepDetail 등)과 동일한 패턴을 따르고 있어 UI 일관성이 유지됩니다.


121-131: 간격 증가 변경사항 확인되었습니다.

DateSelector 하단 간격을 10dp→12dp, 캘린더 이후 간격을 24dp→32dp로 조정하여 시각적 여유 공간을 확보했습니다. 디자인 의도에 부합하는 변경으로 보입니다.

app/src/main/res/drawable/ic_pills.xml (2)

6-11: 두 가지 색상을 사용한 디자인으로 변경되었습니다.

빨강(#F4485B)과 노랑(#FFD000) 두 가지 색상으로 구성된 알약 디자인으로 변경되어 더 직관적인 시각적 표현이 되었습니다. 기존 단색 디자인 대비 색상 대비가 명확해져 가독성이 개선될 것으로 예상됩니다.


2-5: 아이콘 크기 축소 확인 (HomeMedicineContainer.kt:90)
Vector 크기가 24×25dp에서 19×19dp로 변경되었습니다. HomeMedicineContainer 컴포저블(90행) 등 이 아이콘이 사용되는 모든 화면에서 작은 크기나 고밀도 디스플레이에서도 시인성이 충분한지 검증해 주세요.

app/src/main/java/com/konkuk/medicarecall/ui/common/component/TopAppBar.kt (1)

32-74: TopAppBar 레이아웃 리팩토링이 깔끔합니다.

Row 기반 구조에서 Column 루트로 변경하고, 타이틀 중앙 정렬을 Box의 weight를 사용해 구현한 점이 좋습니다. HorizontalDivider를 Column 내부로 통합하여 구조가 더 명확해졌습니다.

타이틀 색상도 gray10으로 변경하여 테마 일관성이 향상되었습니다.

app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/meal/screen/MealDetail.kt (2)

97-105: MedicineDetail과 동일한 패턴으로 일관성 있게 적용되었습니다.

배경 테마(MediCareCallTheme.colors.bg) 적용과 TopAppBar 하단 4dp 간격이 MedicineDetail.kt와 동일하게 구현되어 화면 간 일관성이 유지됩니다.


130-139: 간격 조정이 적절합니다.

캘린더 이후 간격을 24dp→32dp, MealDetailCard 사이 간격을 8dp→12dp로 증가하여 시각적 여유가 확보되었습니다. 다른 상세 화면들과 유사한 간격 패턴을 따릅니다.

app/src/main/java/com/konkuk/medicarecall/ui/feature/calendar/DateSelector.kt (1)

53-53: 아이콘 에셋 업데이트가 일관되게 적용되었습니다.

월 선택 드롭다운 아이콘이 ic_arrow_down에서 ic_arrow_down_small로 변경되었습니다. DefaultDropDown, SpecialNoteItem 등 다른 컴포넌트들과 동일한 작은 화살표 아이콘을 사용하도록 통일된 점이 좋습니다.

app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/sleep/component/SleepDetailCard.kt (2)

32-32: modifier 파라미터 사용이 개선되었습니다.

Card에서 새로운 Modifier를 생성하는 대신 받은 modifier 파라미터를 직접 사용하도록 변경된 점이 좋습니다. 호출하는 쪽에서 레이아웃을 더 유연하게 제어할 수 있습니다.


45-122: 간격 조정으로 레이아웃이 개선되었습니다.

주요 간격 변경사항:

  • Column verticalArrangement: 11dp→32dp
  • 라벨과 내용 사이 Spacer: 4dp→12dp

전반적으로 여유 공간이 확보되어 가독성이 향상될 것으로 보입니다. 다른 상세 카드 컴포넌트들과 유사한 간격 패턴을 따릅니다.

app/src/main/java/com/konkuk/medicarecall/ui/common/component/DefaultDropDown.kt (1)

102-102: 드롭다운 아이콘이 통일되었습니다.

닫힌 상태의 아이콘을 ic_arrow_down_small로 변경하여 DateSelector, SpecialNoteItem 등 다른 드롭다운 컴포넌트들과 동일한 작은 화살표를 사용합니다. 확장된 상태의 ic_arrow_up은 유지되어 시각적 대비가 명확합니다.

app/src/main/res/drawable/ic_pill_uncheck.xml (1)

1-12: 새 아이콘 리소스 추가 확인 완료

미기록 상태 표시용 알약 아이콘이 잘 정의되어 있네요. 색상 선택(회색 계열)도 "기록 안 됨" 상태를 표현하기에 적절해 보입니다.

app/src/main/res/drawable/ic_arrow_down_small.xml (1)

1-9: 드롭다운 아이콘 추가 확인

축소 상태 표시용 화살표 아이콘이 잘 추가되었습니다. 기존 ic_arrow_down.xml 삭제 후 small/big 변형으로 분리한 접근도 합리적이네요.

app/src/main/java/com/konkuk/medicarecall/ui/feature/statistics/screen/StatisticsScreen.kt (2)

39-40: import 재정렬 확인

import 순서 정리가 잘 되어 있습니다.


150-151: 알림 개수 하드코딩 확인

notificationCount = 4가 임시 값으로 설정되어 있는데, PR 설명에 이미 TODO로 명시되어 있네요. 서버 API 연동 전까지는 UI 확인용으로 적절해 보입니다.

참고로, HomeScreen과 StatisticsScreen에서 각각 알림 개수를 관리할지 MainViewModel 같은 공통 로직을 만들지에 대한 리뷰 포인트가 있다고 하셨는데, 지금은 각 화면에서 독립적으로 관리하는 구조로 보입니다. 추후 통합 시점에 맞춰 공통 로직으로 빼는 것도 고려해볼 만합니다.

app/src/main/res/drawable/ic_pill_taken.xml (1)

1-12: 복약 완료 아이콘 추가 확인

복약 완료 상태를 나타내는 알약 아이콘이 잘 추가되었습니다. 녹색 계열 색상이 "복용함" 상태를 명확하게 전달하네요.

app/src/main/java/com/konkuk/medicarecall/ui/common/component/SpecialNoteItem.kt (1)

125-125: 드롭다운 아이콘 업데이트 확인

축소 상태 아이콘을 ic_arrow_down_small로 변경한 것 확인했습니다. 다른 드롭다운 컴포넌트들과 일관성 있게 적용되었네요.

app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeStateHealthContainer.kt (3)

38-38: modifier 전달 개선 확인

modifier를 그대로 전달하도록 수정되어, 호출하는 쪽에서 Card 스타일을 제어할 수 있게 되었네요. 좋은 개선입니다.


61-71: 아이콘 및 타이포그래피 업데이트 확인

아이콘을 ic_heart로 변경하고, 타이포그래피를 R_16, 색상을 gray8로 조정한 것 확인했습니다. 다른 홈 컨테이너들과 일관된 스타일을 유지하는 방향으로 보입니다.


75-75: 간격 조정 확인

Spacer 높이가 8dp에서 20dp로 늘어났네요. 레이아웃 여백 조정으로 보입니다.

app/src/main/res/drawable/char_medi.xml (1)

1-42: 캐릭터 아이콘 리소스 업데이트 확인

벡터 드로어블이 더 작은 viewport(36x31)로 재작성되고, group/clip-path 구조로 정리되었네요. 파일 크기 감소와 구조 개선 측면에서 좋은 변경입니다.

app/src/main/java/com/konkuk/medicarecall/ui/feature/homedetail/statehealth/screen/StateHealthDetail.kt (4)

29-37: import 재정렬 확인

import 순서가 정리되었습니다. 가독성 개선이네요.


116-116: TopAppBar 하단 간격 추가 확인

TopAppBar 아래 4dp 간격이 추가되었습니다.


119-119: 배경색 추가 확인

내부 Column에 MediCareCallTheme.colors.bg 배경색이 추가되어, 전체 테마와 일관된 배경을 유지하게 되었네요.


129-139: 간격 조정 확인

DateSelector와 WeeklyCalendar, StateHealthDetailCard 사이 간격이 각각 24dp, 32dp로 늘어났습니다. 레이아웃 여백 개선으로 보입니다.

Comment on lines 41 to 45
modifier = modifier
.fillMaxWidth()
.height(56.dp)
.padding(horizontal = 10.dp)
.padding(horizontal = 16.dp, vertical = 14.dp)
.background(Color.White),
verticalAlignment = Alignment.CenterVertically,
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

외부 Modifier가 두 번 적용되고 있어요

NameBar에 전달한 modifier가 Box와 Row 모두에 붙으면서 Modifier.statusBarsPadding() 같은 게 두 번 먹여집니다. 홈 화면에서는 상단 패딩이 2배로 늘어나서 헤더가 내려앉아요. Row 쪽은 Modifier로 새로 시작하도록 바꿔주세요.

-        Row(
-            modifier = modifier
-                .fillMaxWidth()
-                .padding(horizontal = 16.dp, vertical = 14.dp)
-                .background(Color.White),
+        Row(
+            modifier = Modifier
+                .fillMaxWidth()
+                .padding(horizontal = 16.dp, vertical = 14.dp)
+                .background(Color.White),
📝 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
modifier = modifier
.fillMaxWidth()
.height(56.dp)
.padding(horizontal = 10.dp)
.padding(horizontal = 16.dp, vertical = 14.dp)
.background(Color.White),
verticalAlignment = Alignment.CenterVertically,
Row(
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 16.dp, vertical = 14.dp)
.background(Color.White),
verticalAlignment = Alignment.CenterVertically,
) {
//
}
🤖 Prompt for AI Agents
In app/src/main/java/com/konkuk/medicarecall/ui/common/component/NameBar.kt
around lines 41 to 45, the incoming modifier is being applied to both the Box
and the Row which causes statusBarsPadding (and other external modifiers) to
take effect twice; update the Row to start with a fresh Modifier (e.g., use
Modifier.fillMaxWidth().padding(...).background(...) or Modifier.then(...) as
needed) instead of reusing the external `modifier`, and keep the passed-in
`modifier` applied only to the outer Box so padding/status bar insets are not
doubled.

Comment on lines 133 to 136
MedicineDetailCard(
medicineName = medicine.medicineName,
todayTakenCount = medicine.todayTakenCount,
todayRequiredCount = medicine.todayRequiredCount,
doseStatusList = medicine.doseStatusList
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

🧩 Analysis chain

todayTakenCount 제거 확인 필요합니다.

MedicineDetailCard 호출에서 todayTakenCount 파라미터가 제거되었습니다. MedicineUiState 구조 변경에 따른 것으로 보이나, 실제 복용 개수 정보를 UI에서 어떻게 표시할지 확인이 필요합니다.

다음 스크립트로 MedicineDetailCard 컴포넌트 시그니처와 사용처를 확인해주세요:


🏁 Script executed:

#!/bin/bash
# MedicineDetailCard 함수 시그니처 확인
ast-grep --pattern $'@Composable
fun MedicineDetailCard($$$) {
  $$$
}'

# MedicineDetailCard 호출 위치 확인
rg -nP --type=kt -C3 'MedicineDetailCard\s*\('

Length of output: 13636


todayTakenCount 전달 누락 확인
MedicineDetailCard 시그니처에서 todayTakenCount 파라미터가 제거되어 UI에 복용 개수 정보가 전달되지 않습니다. 필요한 경우 MedicineUiState에 복용 개수 필드를 추가해 컴포넌트로 전달하거나, 복용 개수 표시 로직을 반영해주세요.

Comment on lines +14 to +26
android:pathData="M31.502,6.096C32.023,6.274 33.081,6.68 33.599,7.198C34.03,7.629 34.383,8.433 34.592,8.991C34.705,9.291 34.478,9.598 34.158,9.598L1.83,9.598C1.513,9.598 1.287,9.297 1.396,8.999C1.598,8.449 1.946,7.651 2.399,7.198C2.941,6.656 3.974,6.265 4.49,6.094C4.676,6.032 4.814,5.871 4.86,5.68C4.971,5.219 5.265,4.339 5.999,3.605C6.465,3.139 7.229,2.85 7.933,2.673C8.219,2.601 9.363,1.385 9.599,1.208C10.543,0.5 12.23,0.906 12.906,1.111C13.087,1.166 13.284,1.123 13.428,1.001C13.833,0.658 14.716,0.008 15.599,0.008C16.311,0.008 17.444,0.43 17.999,0.773C18.553,0.429 19.687,0.007 20.399,0.008C21.282,0.009 22.166,0.659 22.57,1.002C22.714,1.123 22.912,1.166 23.092,1.111C23.768,0.906 25.455,0.5 26.399,1.208C26.635,1.385 27.779,2.601 28.065,2.673C28.77,2.851 29.533,3.139 29.999,3.605C30.736,4.342 31.03,5.226 31.14,5.686C31.184,5.874 31.319,6.034 31.502,6.096Z">
<aapt:attr name="android:fillColor">
<gradient
android:startX="17.999"
android:startY="0.008"
android:endX="17.999"
android:endY="9.598"
android:type="linear">
<item android:offset="0" android:color="#FFEAE5D5"/>
<item android:offset="1" android:color="#FFF1EFE7"/>
</gradient>
</aapt:attr>
</path>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

낮은 API 호환성 문제
Line 14 경로가 그라디언트만 선언돼 있어서 API 23 이하에서는 기본 검정으로 칠해집니다. 홈/상세 화면에서 구버전 단말 테스트 시 색이 완전히 뒤집힐 거예요. 폴백용 android:fillColor를 추가해주세요.

-  <path
-      android:pathData="M31.502,6.096C32.023,6.274 33.081,6.68 33.599,7.198C34.03,7.629 34.383,8.433 34.592,8.991C34.705,9.291 34.478,9.598 34.158,9.598L1.83,9.598C1.513,9.598 1.287,9.297 1.396,8.999C1.598,8.449 1.946,7.651 2.399,7.198C2.941,6.656 3.974,6.265 4.49,6.094C4.676,6.032 4.814,5.871 4.86,5.68C4.971,5.219 5.265,4.339 5.999,3.605C6.465,3.139 7.229,2.85 7.933,2.673C8.219,2.601 9.363,1.385 9.599,1.208C10.543,0.5 12.23,0.906 12.906,1.111C13.087,1.166 13.284,1.123 13.428,1.001C13.833,0.658 14.716,0.008 15.599,0.008C16.311,0.008 17.444,0.43 17.999,0.773C18.553,0.429 19.687,0.007 20.399,0.008C21.282,0.009 22.166,0.659 22.57,1.002C22.714,1.123 22.912,1.166 23.092,1.111C23.768,0.906 25.455,0.5 26.399,1.208C26.635,1.385 27.779,2.601 28.065,2.673C28.77,2.851 29.533,3.139 29.999,3.605C30.736,4.342 31.03,5.226 31.14,5.686C31.184,5.874 31.319,6.034 31.502,6.096Z">
+  <path
+      android:pathData="M31.502,6.096C32.023,6.274 33.081,6.68 33.599,7.198C34.03,7.629 34.383,8.433 34.592,8.991C34.705,9.291 34.478,9.598 34.158,9.598L1.83,9.598C1.513,9.598 1.287,9.297 1.396,8.999C1.598,8.449 1.946,7.651 2.399,7.198C2.941,6.656 3.974,6.265 4.49,6.094C4.676,6.032 4.814,5.871 4.86,5.68C4.971,5.219 5.265,4.339 5.999,3.605C6.465,3.139 7.229,2.85 7.933,2.673C8.219,2.601 9.363,1.385 9.599,1.208C10.543,0.5 12.23,0.906 12.906,1.111C13.087,1.166 13.284,1.123 13.428,1.001C13.833,0.658 14.716,0.008 15.599,0.008C16.311,0.008 17.444,0.43 17.999,0.773C18.553,0.429 19.687,0.007 20.399,0.008C21.282,0.009 22.166,0.659 22.57,1.002C22.714,1.123 22.912,1.166 23.092,1.111C23.768,0.906 25.455,0.5 26.399,1.208C26.635,1.385 27.779,2.601 28.065,2.673C28.77,2.851 29.533,3.139 29.999,3.605C30.736,4.342 31.03,5.226 31.14,5.686C31.184,5.874 31.319,6.034 31.502,6.096Z"
+      android:fillColor="#FFEAE5D5">

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In app/src/main/res/drawable/ic_ricebowl_eat.xml around lines 14 to 26 the
<path> only declares a gradient via aapt:attr so on API ≤23 the shape renders
black; add a fallback android:fillColor attribute on the same <path> element
(set to the gradient start color, e.g. #FFEAE5D5) so older devices use that
solid color when the gradient is unsupported; place the android:fillColor
attribute directly on the <path> tag (before the aapt:attr block) and keep the
existing gradient block unchanged.

Comment on lines +14 to +26
android:pathData="M31.502,6.096C32.023,6.274 33.081,6.68 33.599,7.198C34.03,7.629 34.383,8.433 34.592,8.991C34.705,9.291 34.478,9.598 34.158,9.598L1.83,9.598C1.513,9.598 1.287,9.297 1.396,8.999C1.598,8.449 1.946,7.651 2.399,7.198C2.941,6.656 3.974,6.265 4.49,6.094C4.676,6.032 4.814,5.871 4.86,5.68C4.971,5.219 5.265,4.339 5.999,3.605C6.465,3.139 7.229,2.85 7.933,2.673C8.219,2.601 9.363,1.385 9.599,1.208C10.543,0.5 12.23,0.906 12.906,1.111C13.087,1.166 13.284,1.123 13.428,1.001C13.833,0.658 14.716,0.008 15.599,0.008C16.311,0.008 17.444,0.43 17.999,0.773C18.553,0.429 19.687,0.007 20.399,0.008C21.282,0.009 22.166,0.659 22.57,1.002C22.714,1.123 22.912,1.166 23.092,1.111C23.768,0.906 25.455,0.5 26.399,1.208C26.635,1.385 27.779,2.601 28.065,2.673C28.77,2.851 29.533,3.139 29.999,3.605C30.736,4.342 31.03,5.226 31.14,5.686C31.184,5.874 31.319,6.034 31.502,6.096Z">
<aapt:attr name="android:fillColor">
<gradient
android:startX="17.999"
android:startY="0.008"
android:endX="17.999"
android:endY="9.598"
android:type="linear">
<item android:offset="0" android:color="#FFEAE5D5"/>
<item android:offset="1" android:color="#FFF1EFE7"/>
</gradient>
</aapt:attr>
</path>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

API 24 미만 폴백 컬러 추가 필요
Line 14 경로가 <aapt:attr> 그라디언트만 들고 있어요. API 23 이하에서는 VectorDrawable 그라디언트가 무시되면서 기본값(검정)으로 칠해져 아이콘이 깨집니다. 동일 경로에 명시적인 android:fillColor를 넣어서 폴백 색을 확보해주세요.

-  <path
-      android:pathData="M31.502,6.096C32.023,6.274 33.081,6.68 33.599,7.198C34.03,7.629 34.383,8.433 34.592,8.991C34.705,9.291 34.478,9.598 34.158,9.598L1.83,9.598C1.513,9.598 1.287,9.297 1.396,8.999C1.598,8.449 1.946,7.651 2.399,7.198C2.941,6.656 3.974,6.265 4.49,6.094C4.676,6.032 4.814,5.871 4.86,5.68C4.971,5.219 5.265,4.339 5.999,3.605C6.465,3.139 7.229,2.85 7.933,2.673C8.219,2.601 9.363,1.385 9.599,1.208C10.543,0.5 12.23,0.906 12.906,1.111C13.087,1.166 13.284,1.123 13.428,1.001C13.833,0.658 14.716,0.008 15.599,0.008C16.311,0.008 17.444,0.43 17.999,0.773C18.553,0.429 19.687,0.007 20.399,0.008C21.282,0.009 22.166,0.659 22.57,1.002C22.714,1.123 22.912,1.166 23.092,1.111C23.768,0.906 25.455,0.5 26.399,1.208C26.635,1.385 27.779,2.601 28.065,2.673C28.77,2.851 29.533,3.139 29.999,3.605C30.736,4.342 31.03,5.226 31.14,5.686C31.184,5.874 31.319,6.034 31.502,6.096Z">
+  <path
+      android:pathData="M31.502,6.096C32.023,6.274 33.081,6.68 33.599,7.198C34.03,7.629 34.383,8.433 34.592,8.991C34.705,9.291 34.478,9.598 34.158,9.598L1.83,9.598C1.513,9.598 1.287,9.297 1.396,8.999C1.598,8.449 1.946,7.651 2.399,7.198C2.941,6.656 3.974,6.265 4.49,6.094C4.676,6.032 4.814,5.871 4.86,5.68C4.971,5.219 5.265,4.339 5.999,3.605C6.465,3.139 7.229,2.85 7.933,2.673C8.219,2.601 9.363,1.385 9.599,1.208C10.543,0.5 12.23,0.906 12.906,1.111C13.087,1.166 13.284,1.123 13.428,1.001C13.833,0.658 14.716,0.008 15.599,0.008C16.311,0.008 17.444,0.43 17.999,0.773C18.553,0.429 19.687,0.007 20.399,0.008C21.282,0.009 22.166,0.659 22.57,1.002C22.714,1.123 22.912,1.166 23.092,1.111C23.768,0.906 25.455,0.5 26.399,1.208C26.635,1.385 27.779,2.601 28.065,2.673C28.77,2.851 29.533,3.139 29.999,3.605C30.736,4.342 31.03,5.226 31.14,5.686C31.184,5.874 31.319,6.034 31.502,6.096Z"
+      android:fillColor="#FFEAE5D5">
📝 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
android:pathData="M31.502,6.096C32.023,6.274 33.081,6.68 33.599,7.198C34.03,7.629 34.383,8.433 34.592,8.991C34.705,9.291 34.478,9.598 34.158,9.598L1.83,9.598C1.513,9.598 1.287,9.297 1.396,8.999C1.598,8.449 1.946,7.651 2.399,7.198C2.941,6.656 3.974,6.265 4.49,6.094C4.676,6.032 4.814,5.871 4.86,5.68C4.971,5.219 5.265,4.339 5.999,3.605C6.465,3.139 7.229,2.85 7.933,2.673C8.219,2.601 9.363,1.385 9.599,1.208C10.543,0.5 12.23,0.906 12.906,1.111C13.087,1.166 13.284,1.123 13.428,1.001C13.833,0.658 14.716,0.008 15.599,0.008C16.311,0.008 17.444,0.43 17.999,0.773C18.553,0.429 19.687,0.007 20.399,0.008C21.282,0.009 22.166,0.659 22.57,1.002C22.714,1.123 22.912,1.166 23.092,1.111C23.768,0.906 25.455,0.5 26.399,1.208C26.635,1.385 27.779,2.601 28.065,2.673C28.77,2.851 29.533,3.139 29.999,3.605C30.736,4.342 31.03,5.226 31.14,5.686C31.184,5.874 31.319,6.034 31.502,6.096Z">
<aapt:attr name="android:fillColor">
<gradient
android:startX="17.999"
android:startY="0.008"
android:endX="17.999"
android:endY="9.598"
android:type="linear">
<item android:offset="0" android:color="#FFEAE5D5"/>
<item android:offset="1" android:color="#FFF1EFE7"/>
</gradient>
</aapt:attr>
</path>
<path
android:pathData="M31.502,6.096C32.023,6.274 33.081,6.68 33.599,7.198C34.03,7.629 34.383,8.433 34.592,8.991C34.705,9.291 34.478,9.598 34.158,9.598L1.83,9.598C1.513,9.598 1.287,9.297 1.396,8.999C1.598,8.449 1.946,7.651 2.399,7.198C2.941,6.656 3.974,6.265 4.49,6.094C4.676,6.032 4.814,5.871 4.86,5.68C4.971,5.219 5.265,4.339 5.999,3.605C6.465,3.139 7.229,2.85 7.933,2.673C8.219,2.601 9.363,1.385 9.599,1.208C10.543,0.5 12.23,0.906 12.906,1.111C13.087,1.166 13.284,1.123 13.428,1.001C13.833,0.658 14.716,0.008 15.599,0.008C16.311,0.008 17.444,0.43 17.999,0.773C18.553,0.429 19.687,0.007 20.399,0.008C21.282,0.009 22.166,0.659 22.57,1.002C22.714,1.123 22.912,1.166 23.092,1.111C23.768,0.906 25.455,0.5 26.399,1.208C26.635,1.385 27.779,2.601 28.065,2.673C28.77,2.851 29.533,3.139 29.999,3.605C30.736,4.342 31.03,5.226 31.14,5.686C31.184,5.874 31.319,6.034 31.502,6.096Z"
android:fillColor="#FFEAE5D5">
<aapt:attr name="android:fillColor">
<gradient
android:startX="17.999"
android:startY="0.008"
android:endX="17.999"
android:endY="9.598"
android:type="linear">
<item android:offset="0" android:color="#FFEAE5D5"/>
<item android:offset="1" android:color="#FFF1EFE7"/>
</gradient>
</aapt:attr>
</path>
🤖 Prompt for AI Agents
In app/src/main/res/drawable/ic_ricebowl_skip.xml around lines 14 to 26, the
<path> only supplies a gradient via <aapt:attr name="android:fillColor"> which
is ignored on API <24 causing the icon to render black; add an explicit
android:fillColor attribute on the same <path> (a solid hex color that matches
the intended fallback — e.g. one of the gradient colors) so older APIs use that
color while newer APIs will use the aapt-provided gradient.

Comment on lines +14 to +26
android:pathData="M31.502,6.096C32.023,6.274 33.081,6.68 33.599,7.198C34.03,7.629 34.383,8.433 34.592,8.991C34.705,9.291 34.478,9.598 34.158,9.598L1.83,9.598C1.513,9.598 1.287,9.297 1.396,8.999C1.598,8.449 1.946,7.651 2.399,7.198C2.941,6.656 3.974,6.265 4.49,6.094C4.676,6.032 4.814,5.871 4.86,5.68C4.971,5.219 5.265,4.339 5.999,3.605C6.465,3.139 7.229,2.85 7.933,2.673C8.219,2.601 9.363,1.385 9.599,1.208C10.543,0.5 12.23,0.906 12.906,1.111C13.087,1.166 13.284,1.123 13.428,1.001C13.833,0.658 14.716,0.008 15.599,0.008C16.311,0.008 17.444,0.43 17.999,0.773C18.553,0.429 19.687,0.007 20.399,0.008C21.282,0.009 22.166,0.659 22.57,1.002C22.714,1.123 22.912,1.166 23.092,1.111C23.768,0.906 25.455,0.5 26.399,1.208C26.635,1.385 27.779,2.601 28.065,2.673C28.77,2.851 29.533,3.139 29.999,3.605C30.736,4.342 31.03,5.226 31.14,5.686C31.184,5.874 31.319,6.034 31.502,6.096Z">
<aapt:attr name="android:fillColor">
<gradient
android:startX="17.999"
android:startY="0.008"
android:endX="17.999"
android:endY="9.598"
android:type="linear">
<item android:offset="0" android:color="#FFEAE5D5"/>
<item android:offset="1" android:color="#FFF1EFE7"/>
</gradient>
</aapt:attr>
</path>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

구버전 아이콘 색상 깨짐
Line 14의 패스도 그라디언트만 선언돼 있어서 지원 안 되는 단말에서는 검정으로 렌더링됩니다. 폴백 컬러를 추가해 주세요.

-  <path
-      android:pathData="M31.502,6.096C32.023,6.274 33.081,6.68 33.599,7.198C34.03,7.629 34.383,8.433 34.592,8.991C34.705,9.291 34.478,9.598 34.158,9.598L1.83,9.598C1.513,9.598 1.287,9.297 1.396,8.999C1.598,8.449 1.946,7.651 2.399,7.198C2.941,6.656 3.974,6.265 4.49,6.094C4.676,6.032 4.814,5.871 4.86,5.68C4.971,5.219 5.265,4.339 5.999,3.605C6.465,3.139 7.229,2.85 7.933,2.673C8.219,2.601 9.363,1.385 9.599,1.208C10.543,0.5 12.23,0.906 12.906,1.111C13.087,1.166 13.284,1.123 13.428,1.001C13.833,0.658 14.716,0.008 15.599,0.008C16.311,0.008 17.444,0.43 17.999,0.773C18.553,0.429 19.687,0.007 20.399,0.008C21.282,0.009 22.166,0.659 22.57,1.002C22.714,1.123 22.912,1.166 23.092,1.111C23.768,0.906 25.455,0.5 26.399,1.208C26.635,1.385 27.779,2.601 28.065,2.673C28.77,2.851 29.533,3.139 29.999,3.605C30.736,4.342 31.03,5.226 31.14,5.686C31.184,5.874 31.319,6.034 31.502,6.096Z">
+  <path
+      android:pathData="M31.502,6.096C32.023,6.274 33.081,6.68 33.599,7.198C34.03,7.629 34.383,8.433 34.592,8.991C34.705,9.291 34.478,9.598 34.158,9.598L1.83,9.598C1.513,9.598 1.287,9.297 1.396,8.999C1.598,8.449 1.946,7.651 2.399,7.198C2.941,6.656 3.974,6.265 4.49,6.094C4.676,6.032 4.814,5.871 4.86,5.68C4.971,5.219 5.265,4.339 5.999,3.605C6.465,3.139 7.229,2.85 7.933,2.673C8.219,2.601 9.363,1.385 9.599,1.208C10.543,0.5 12.23,0.906 12.906,1.111C13.087,1.166 13.284,1.123 13.428,1.001C13.833,0.658 14.716,0.008 15.599,0.008C16.311,0.008 17.444,0.43 17.999,0.773C18.553,0.429 19.687,0.007 20.399,0.008C21.282,0.009 22.166,0.659 22.57,1.002C22.714,1.123 22.912,1.166 23.092,1.111C23.768,0.906 25.455,0.5 26.399,1.208C26.635,1.385 27.779,2.601 28.065,2.673C28.77,2.851 29.533,3.139 29.999,3.605C30.736,4.342 31.03,5.226 31.14,5.686C31.184,5.874 31.319,6.034 31.502,6.096Z"
+      android:fillColor="#FFEAE5D5">
📝 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
android:pathData="M31.502,6.096C32.023,6.274 33.081,6.68 33.599,7.198C34.03,7.629 34.383,8.433 34.592,8.991C34.705,9.291 34.478,9.598 34.158,9.598L1.83,9.598C1.513,9.598 1.287,9.297 1.396,8.999C1.598,8.449 1.946,7.651 2.399,7.198C2.941,6.656 3.974,6.265 4.49,6.094C4.676,6.032 4.814,5.871 4.86,5.68C4.971,5.219 5.265,4.339 5.999,3.605C6.465,3.139 7.229,2.85 7.933,2.673C8.219,2.601 9.363,1.385 9.599,1.208C10.543,0.5 12.23,0.906 12.906,1.111C13.087,1.166 13.284,1.123 13.428,1.001C13.833,0.658 14.716,0.008 15.599,0.008C16.311,0.008 17.444,0.43 17.999,0.773C18.553,0.429 19.687,0.007 20.399,0.008C21.282,0.009 22.166,0.659 22.57,1.002C22.714,1.123 22.912,1.166 23.092,1.111C23.768,0.906 25.455,0.5 26.399,1.208C26.635,1.385 27.779,2.601 28.065,2.673C28.77,2.851 29.533,3.139 29.999,3.605C30.736,4.342 31.03,5.226 31.14,5.686C31.184,5.874 31.319,6.034 31.502,6.096Z">
<aapt:attr name="android:fillColor">
<gradient
android:startX="17.999"
android:startY="0.008"
android:endX="17.999"
android:endY="9.598"
android:type="linear">
<item android:offset="0" android:color="#FFEAE5D5"/>
<item android:offset="1" android:color="#FFF1EFE7"/>
</gradient>
</aapt:attr>
</path>
<path
android:pathData="M31.502,6.096C32.023,6.274 33.081,6.68 33.599,7.198C34.03,7.629 34.383,8.433 34.592,8.991C34.705,9.291 34.478,9.598 34.158,9.598L1.83,9.598C1.513,9.598 1.287,9.297 1.396,8.999C1.598,8.449 1.946,7.651 2.399,7.198C2.941,6.656 3.974,6.265 4.49,6.094C4.676,6.032 4.814,5.871 4.86,5.68C4.971,5.219 5.265,4.339 5.999,3.605C6.465,3.139 7.229,2.85 7.933,2.673C8.219,2.601 9.363,1.385 9.599,1.208C10.543,0.5 12.23,0.906 12.906,1.111C13.087,1.166 13.284,1.123 13.428,1.001C13.833,0.658 14.716,0.008 15.599,0.008C16.311,0.008 17.444,0.43 17.999,0.773C18.553,0.429 19.687,0.007 20.399,0.008C21.282,0.009 22.166,0.659 22.57,1.002C22.714,1.123 22.912,1.166 23.092,1.111C23.768,0.906 25.455,0.5 26.399,1.208C26.635,1.385 27.779,2.601 28.065,2.673C28.77,2.851 29.533,3.139 29.999,3.605C30.736,4.342 31.03,5.226 31.14,5.686C31.184,5.874 31.319,6.034 31.502,6.096Z"
android:fillColor="#FFEAE5D5">
<aapt:attr name="android:fillColor">
<gradient
android:startX="17.999"
android:startY="0.008"
android:endX="17.999"
android:endY="9.598"
android:type="linear">
<item android:offset="0" android:color="#FFEAE5D5"/>
<item android:offset="1" android:color="#FFF1EFE7"/>
</gradient>
</aapt:attr>
</path>
🤖 Prompt for AI Agents
In app/src/main/res/drawable/ic_ricebowl_uncheck.xml around lines 14 to 26, the
<path> only supplies a gradient inside aapt:attr so older devices render it as
black; add a solid android:fillColor attribute on the <path> (use one of the
gradient colors, e.g. #FFF1EFE7 or #FFEAE5D5) as a fallback placed on the path
element itself, then keep the existing aapt:attr gradient so modern devices use
the gradient while legacy devices use the solid color.

Comment on lines +14 to +26
android:pathData="M16.251,3.048C16.511,3.137 17.041,3.34 17.3,3.599C17.515,3.814 17.692,4.216 17.796,4.496C17.853,4.646 17.739,4.799 17.579,4.799L1.415,4.799C1.256,4.799 1.143,4.648 1.198,4.5C1.299,4.224 1.473,3.826 1.7,3.599C1.971,3.328 2.487,3.132 2.745,3.047C2.838,3.016 2.907,2.935 2.93,2.84C2.985,2.609 3.133,2.169 3.5,1.802C3.733,1.569 4.114,1.425 4.467,1.337C4.61,1.301 5.182,0.692 5.3,0.604C5.772,0.25 6.615,0.453 6.953,0.556C7.043,0.583 7.142,0.561 7.214,0.501C7.416,0.329 7.858,0.004 8.3,0.004C8.655,0.004 9.222,0.215 9.499,0.387C9.777,0.215 10.344,0.003 10.7,0.004C11.141,0.005 11.583,0.329 11.785,0.501C11.857,0.562 11.956,0.583 12.046,0.556C12.384,0.453 13.228,0.25 13.7,0.604C13.818,0.692 14.389,1.301 14.533,1.337C14.885,1.425 15.267,1.57 15.5,1.803C15.868,2.171 16.015,2.613 16.07,2.843C16.092,2.937 16.16,3.017 16.251,3.048Z">
<aapt:attr name="android:fillColor">
<gradient
android:startX="9.5"
android:startY="0.004"
android:endX="9.5"
android:endY="4.799"
android:type="linear">
<item android:offset="0" android:color="#FFEAE5D5"/>
<item android:offset="1" android:color="#FFF1EFE7"/>
</gradient>
</aapt:attr>
</path>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

VectorDrawable 그라디언트 폴백 누락
Line 14 경로도 그라디언트만 들고 있어서 API 23 이하에서는 검정색으로 표시됩니다. android:fillColor 기본값을 추가해 호환성을 확보해 주세요.

-  <path
-      android:pathData="M16.251,3.048C16.511,3.137 17.041,3.34 17.3,3.599C17.515,3.814 17.692,4.216 17.796,4.496C17.853,4.646 17.739,4.799 17.579,4.799L1.415,4.799C1.256,4.799 1.143,4.648 1.198,4.5C1.299,4.224 1.473,3.826 1.7,3.599C1.971,3.328 2.487,3.132 2.745,3.047C2.838,3.016 2.907,2.935 2.93,2.84C2.985,2.609 3.133,2.169 3.5,1.802C3.733,1.569 4.114,1.425 4.467,1.337C4.61,1.301 5.182,0.692 5.3,0.604C5.772,0.25 6.615,0.453 6.953,0.556C7.043,0.583 7.142,0.561 7.214,0.501C7.416,0.329 7.858,0.004 8.3,0.004C8.655,0.004 9.222,0.215 9.499,0.387C9.777,0.215 10.344,0.003 10.7,0.004C11.141,0.005 11.583,0.329 11.785,0.501C11.857,0.562 11.956,0.583 12.046,0.556C12.384,0.453 13.228,0.25 13.7,0.604C13.818,0.692 14.389,1.301 14.533,1.337C14.885,1.425 15.267,1.57 15.5,1.803C15.868,2.171 16.015,2.613 16.07,2.843C16.092,2.937 16.16,3.017 16.251,3.048Z">
+  <path
+      android:pathData="M16.251,3.048C16.511,3.137 17.041,3.34 17.3,3.599C17.515,3.814 17.692,4.216 17.796,4.496C17.853,4.646 17.739,4.799 17.579,4.799L1.415,4.799C1.256,4.799 1.143,4.648 1.198,4.5C1.299,4.224 1.473,3.826 1.7,3.599C1.971,3.328 2.487,3.132 2.745,3.047C2.838,3.016 2.907,2.935 2.93,2.84C2.985,2.609 3.133,2.169 3.5,1.802C3.733,1.569 4.114,1.425 4.467,1.337C4.61,1.301 5.182,0.692 5.3,0.604C5.772,0.25 6.615,0.453 6.953,0.556C7.043,0.583 7.142,0.561 7.214,0.501C7.416,0.329 7.858,0.004 8.3,0.004C8.655,0.004 9.222,0.215 9.499,0.387C9.777,0.215 10.344,0.003 10.7,0.004C11.141,0.005 11.583,0.329 11.785,0.501C11.857,0.562 11.956,0.583 12.046,0.556C12.384,0.453 13.228,0.25 13.7,0.604C13.818,0.692 14.389,1.301 14.533,1.337C14.885,1.425 15.267,1.57 15.5,1.803C15.868,2.171 16.015,2.613 16.07,2.843C16.092,2.937 16.16,3.017 16.251,3.048Z"
+      android:fillColor="#FFEAE5D5">
🤖 Prompt for AI Agents
In app/src/main/res/drawable/ic_ricebowl.xml around lines 14 to 26, the path
only defines a gradient via aapt:attr so on API 23 and below the shape renders
black; add a compatible fallback by adding an android:fillColor attribute on the
<path> with a sensible solid color (e.g., the gradient start color #FFEAE5D5)
before the <aapt:attr> block so older APIs have a solid fill while the aapt
gradient remains for newer devices.

Copy link
Contributor

@ikseong00 ikseong00 left a comment

Choose a reason for hiding this comment

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

res/drawable 디렉토리 말고, icon 디렉토리에 존재하는 리소스 파일들이 있는 것 같습니다!
확인하고 수정 부탁드려요!

그 외 부분들은 잘 하신 것 같습니다.
이 PR 머지하구, 홈 화면의 코드적인 수정사항들은 이후 회의 때 논의해보면 좋을 것 같습니다!

@librawish808
Copy link
Collaborator Author

librawish808 commented Oct 3, 2025

수정하였습니다!

@librawish808 librawish808 reopened this Oct 3, 2025
@librawish808 librawish808 changed the title [Feat] 홈화면 및 상세화면 UI 수정사항 반영 [Feat] 홈화면 및 상세화면 UI 수정사항 반영 #130 Oct 3, 2025
.background(Color.White)
text = "한 줄 요약",
style = MediCareCallTheme.typography.B_20, // Bold 스타일
color = MediCareCallTheme.colors.g50,
Copy link
Collaborator

@ProtossManse ProtossManse Oct 3, 2025

Choose a reason for hiding this comment

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

Suggested change
color = MediCareCallTheme.colors.g50,
color = if (hasSummaryData) {
MediCareCallTheme.colors.g50
} else {
MediCareCallTheme.colors.white
}

이 부분 분기 처리 필요할 것 같습니다!

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

수정하였습니다!

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 (1)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/screen/HomeScreen.kt (1)

264-266: 알림 개수 관리 방식에 대한 의견

현재 하드코딩된 알림 개수는 UI 확인용 임시 구현으로 적절합니다. 향후 실제 데이터 연동 시, 알림 개수 관리는 MainViewModel(또는 공통 레이어)에서 처리하는 것을 권장합니다:

권장 접근 방식:

  • MainViewModel 또는 공통 NotificationRepository에서 알림 개수를 StateFlow로 관리
  • 홈화면과 주간통계화면이 동일한 StateFlow를 구독
  • 알림 데이터 변경 시 자동으로 모든 구독자에게 전파

장점:

  • 단일 진실 공급원(Single Source of Truth) 보장
  • 화면 간 알림 개수 불일치 방지
  • 유지보수 용이

화면별로 개별 관리하면 동기화 문제와 중복 로직이 발생할 수 있습니다.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 57d3c0f and b28ae18.

📒 Files selected for processing (1)
  • app/src/main/java/com/konkuk/medicarecall/ui/feature/home/screen/HomeScreen.kt (9 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/screen/HomeScreen.kt (8)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/CareCallSnackBar.kt (1)
  • CareCallSnackBar (13-25)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeMealContainer.kt (1)
  • HomeMealContainer (30-158)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeMedicineContainer.kt (1)
  • HomeMedicineContainer (31-199)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeSleepContainer.kt (1)
  • HomeSleepContainer (33-161)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeStateHealthContainer.kt (1)
  • HomeStateHealthContainer (29-104)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeStateMentalContainer.kt (1)
  • HomeStateMentalContainer (29-104)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/component/HomeGlucoseLevelContainer.kt (1)
  • HomeGlucoseLevelContainer (28-118)
app/src/main/java/com/konkuk/medicarecall/ui/common/component/NameDropdown.kt (1)
  • NameDropdown (37-120)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: ci-build
🔇 Additional comments (3)
app/src/main/java/com/konkuk/medicarecall/ui/feature/home/screen/HomeScreen.kt (3)

166-180: LGTM! 이전 리뷰 코멘트 반영 완료

요약 카드의 배경색과 텍스트 색상을 데이터 유무에 따라 분기 처리하는 로직이 명확하고 올바르게 구현되었습니다. 이전 리뷰에서 제기된 색상 분기 처리 필요성이 잘 반영되었네요!


457-499: 미기록 상태 Preview 추가 굿!

미기록 상태를 확인할 수 있는 별도 Preview가 추가되어 UI 검증이 더 수월해졌습니다. 모든 데이터 필드가 비어있거나 null/zero로 설정되어 있어, 실제 사용자가 데이터를 아직 입력하지 않은 시나리오를 정확히 재현하고 있네요.

Preview 이름도 명확하게 작성되어 있어 개발자들이 쉽게 식별할 수 있습니다.


421-422: MedicineUiState 호출 인자 일치 확인
Preview에서 사용된 4개의 인자(String, Int, Int, String)는 home/viewmodel/HomeUiState.kt에 정의된 MedicineUiState 생성자와 완벽히 일치합니다. 변경 필요 없습니다.

@alswlekk alswlekk merged commit f1aebd4 into develop Oct 8, 2025
2 checks passed
@alswlekk alswlekk deleted the feat/home-ui-#130 branch October 8, 2025 03:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat] 홈화면 및 상세화면 UI 수정사항 반영

5 participants