-
Notifications
You must be signed in to change notification settings - Fork 0
Feature/#43 #75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Feature/#43 #75
Conversation
์ํฌ์ค๋ฃจํ
๋ง ์์ ์์คํ
์ ์๋ก์ด ๋ณ๊ฒฝ ์ฌํญ
์์ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ ธ๋ ฅ๐ฏ 4 (๋ณต์กํจ) | โฑ๏ธ ~45๋ถ ๐ฅ Pre-merge checks | โ 1 | โ 2โ Failed checks (1 warning, 1 inconclusive)
โ Passed checks (1 passed)
โ๏ธ Tip: You can configure your own custom pre-merge checks in the settings. โจ Finishing touches
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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
๐ค Fix all issues with AI agents
In `@feature/home/src/main/java/com/example/home/screen/HomeScreen.kt`:
- Around line 228-241: The click handler onRecommendClick sets
hasRequestedRecommend = true too early (before validating
selectedEmotion/selectedTask), causing the UI to show "requested" even when no
request is made; change it so hasRequestedRecommend is only assigned true inside
the conditional where selectedEmotion != null && selectedTask != null (i.e.,
after onClearNeedMoreNotice() and immediately before or after
onRecommendRequest(selectedEmotion!!, selectedTask!!, 10)), and remove the
initial pre-check assignment so no flag is set when inputs are missing.
In
`@feature/home/src/main/java/com/example/home/ui/top/bar/component/SelectedSummaryRow.kt`:
- Around line 50-58: The current code uses require checks that will throw on
invalid IDs (in selectedEmotionIcon and selectedTaskLabel); change these to
defensive lookups and return sensible fallbacks instead of crashing: for
selectedEmotionIcon, replace the require/idx logic with a safe lookup (use
emotionIds.indexOf(selectedEmotionId) followed by colorIcons.getOrNull(idx) or a
default icon when null) and for selectedTaskLabel, avoid requireNotNull and use
situations.firstOrNull { it.id == selectedTaskId }?.name ?: fallbackLabel or
null so the caller/UI can skip rendering or show a placeholder; update any UI
that consumes selectedEmotionIcon/selectedTaskLabel to handle null/default
values.
In `@feature/home/src/main/java/com/example/home/ui/top/bar/HomeTopBar.kt`:
- Around line 231-238: The Image in HomeTopBar.kt currently sets
contentDescription = null making the clickable expand icon inaccessible; update
the Image composable to provide a descriptive contentDescription using
stringResource (e.g., stringResource(R.string.expand_section) or a suitable
existing string) and pass that instead of null, ensuring the description
references the onExpandClick action so screen readers announce the purpose; if
no string exists, add a new string resource like "Expand" and use
stringResource(...) for the contentDescription.
In `@feature/home/src/main/res/drawable/ic_anger_gray.xml`:
- Around line 24-29: Remove the duplicated circle path elements that repeat the
same android:pathData and android:fillColor; specifically find the path elements
with android:pathData="M33,25C33,26.105 31.657,27 30,27C28.343,27 27,26.105
27,25C27,23.895 28.343,23 30,23C31.657,23 33,23.895 33,25Z" and
android:pathData="M17,25C17,26.105 15.657,27 14,27C12.343,27 11,26.105
11,25C11,23.895 12.343,23 14,23C15.657,23 17,23.895 17,25Z" where they appear
twice, and delete the second occurrences (the duplicates) while keeping a single
instance of each path with android:fillColor="#CFCFCF".
In `@feature/home/src/main/res/drawable/ic_irritation_gray.xml`:
- Around line 18-22: gradient ์์ ๋ด์ ๊ฐ์ android:offset="0"์ด ๋ ๋ฒ ์ฌ์ฉ๋์ด ์ค๋ณต๋ ์คํ์ด
๋ฌด์๋ฉ๋๋ค; gradient ํ๊ทธ(gradient)๋ฅผ ์ฐพ์ item ์์๋ค(ํ์ฌ ๋ ๊ฐ์ android:offset="0"์ ๊ฐ์ง item)์
์์ ํ์ฌ ์๋๋ ๊ทธ๋ผ๋ฐ์ด์
์ด ๋์ค๋๋ก ํ๋์ offset์ ๋ณ๊ฒฝ(์: ์ฒซ์งธ๋ฅผ 0, ๋์งธ๋ฅผ 0.5 ๋ฑ์ผ๋ก ์กฐ์ )ํ๊ฑฐ๋ ์ค๋ณต๋ ์์ stop์ด
๋ถํ์ํ๋ฉด ํด๋น item์ ์ญ์ ํ์ฌ ์ค๋ณต์ ์ ๊ฑฐํ์ธ์.
๐งน Nitpick comments (4)
design/src/main/java/com/example/design/theme/color/ThemeColorScheme.kt (1)
9-10: ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ผ๊ด์ฑ ๊ฒํ
backgroundmaincolor๊ฐ ๊ธฐ์กดmaincolor์ ๋์ผํ ์๋ฌธ์ ํจํด์ ๋ฐ๋ฅด๊ณ ์์ต๋๋ค. Kotlin ํ์ค camelCase ์ปจ๋ฒค์ (backgroundMainColor)๊ณผ๋ ๋ค๋ฅด์ง๋ง, ์ฝ๋๋ฒ ์ด์ค ๋ด ๊ธฐ์กด ํจํด๊ณผ ์ผ๊ด์ฑ์ด ์์ผ๋ฏ๋ก ํ์ฌ ์ํ๋ก ์ ์งํด๋ ๋ฌด๋ฐฉํฉ๋๋ค.feature/home/src/main/java/com/example/home/ui/top/bar/component/SelectedSummaryRow.kt (1)
67-76: ๋ชจ์๋ฆฌ shape ๋ถ์ผ์น ์ ๋ฆฌ ๊ถ์ฅ
clip(10dp)vsbackground(18dp)vsborder(10dp)๊ฐ ๋ถ์ผ์น๋ผ ๋ชจ์๋ฆฌ ํ์ง์ด ๋ค์ญ๋ ์ญํด์ง ์ ์์ต๋๋ค. ๋์ผ shape ์์๋ก ํต์ผํ๋ ํธ์ด ์์ ํฉ๋๋ค.โป๏ธ ์ ์ ์์
+ val chipShape = RoundedCornerShape(10.dp) + Row( modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically ) { @@ Box( modifier = Modifier .size(32.dp) - .clip(RoundedCornerShape(10.dp)) - .background(brush = LocalColorTheme.current.backgroundmaincolor, shape = RoundedCornerShape(18.dp)) + .clip(chipShape) + .background(brush = LocalColorTheme.current.backgroundmaincolor, shape = chipShape) .border( width = 1.dp, brush = Basic.maincolor, - shape = RoundedCornerShape(10.dp) + shape = chipShape ), contentAlignment = Alignment.Center ) {feature/home/src/main/java/com/example/home/screen/HomeScreen.kt (2)
139-193: ์ฃผ์ ์ฒ๋ฆฌ๋ ์ด์ ๊ตฌํ์ ์ ๊ฑฐ๋ฅผ ๊ถ์ฅํฉ๋๋ค.๋๋์ ์ฃผ์ ๋ธ๋ก์ด ๋จ์ ์์ผ๋ฉด ์ ์ง๋ณด์/๋ฆฌ๋ทฐ ์ ํผ๋์ ์ค๋๋ค. ํ์ ์๋ค๋ฉด ์ญ์ ํ๊ณ , ์ฐธ๊ณ ๋ชฉ์ ์ด๋ผ๋ฉด ๋ฌธ์๋ ADR๋ก ์ฎ๊ฒจ ์ฃผ์ธ์.
244-273: footerHeight์ 800.dp ํ๋์ฝ๋ฉ์ ํ๋ฉด๋ณ ์ฌ๋ฐฑ ๊ณผ๋ค ์ํ์ด ์์ต๋๋ค.์ํ ๊ธฐ๊ธฐ์์ 800.dp๊ฐ ํ๋ฉด๋ณด๋ค ์ปค ๋ถํ์ํ ๋น ์คํฌ๋กค์ด ์๊ธธ ์ ์์ต๋๋ค. screenHeight ๋น์จ ๊ธฐ๋ฐ์ผ๋ก ์/ํํ์ ๋๋ ๋ฐฉ์์ผ๋ก ์กฐ์ ๊ฒํ ํด ์ฃผ์ธ์.
| val onRecommendClick: () -> Unit = { | ||
| hasRequestedRecommend = true // ํด๋ฆญ ๊ธฐ๋ก | ||
| // ์ ํ ์์ด๋ ์ ํ๋๊ฑด ์คํฌ๋กค์ด ๋ด๋น | ||
| // ์ถ์ฒ ์์ฒญ์ ์ ํ์ด ์์ด์ผ๋ง | ||
| if (selectedEmotion != null && selectedTask != null) { | ||
| onClearNeedMoreNotice() // ์ด์ ์๋ด ๋๊ธฐ | ||
| onClearNeedMoreNotice() | ||
| onRecommendRequest(selectedEmotion!!, selectedTask!!, 10) | ||
| showRecs = true | ||
|
|
||
| // ์ถ์ฒ ๋๋ ์ผ๋ฉด ๊ฐ์ ์ ํ(์คํฌ๋กค ์๊ด ์์ด) | ||
| isTopBarLockedCollapsed = true | ||
| isTopBarExpanded = false | ||
|
|
||
| coroutineScope.launch { listState.animateScrollToItem(1) } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ ํ ์์ด ํด๋ฆญํด๋ hasRequestedRecommend๊ฐ true๊ฐ ๋ฉ๋๋ค.
๊ฐ์ /์ํฉ ๋ฏธ์ ํ ์์๋ โ์์ฒญ๋จโ ์ํ๋ก ๋ณด์ผ ์ ์์ด UX ํผ๋์ด ์๊ธธ ์ ์์ต๋๋ค. ์ค์ ์์ฒญ์ด ์์๋ ๋๋ง ํ๋๊ทธ๋ฅผ ์ธํ ํ๋ ์ชฝ์ด ์์ ํฉ๋๋ค.
๐ง ์์ ์ ์
val onRecommendClick: () -> Unit = {
- hasRequestedRecommend = true // ํด๋ฆญ ๊ธฐ๋ก
// ์ ํ ์์ด๋ ์ ํ๋๊ฑด ์คํฌ๋กค์ด ๋ด๋น
// ์ถ์ฒ ์์ฒญ์ ์ ํ์ด ์์ด์ผ๋ง
if (selectedEmotion != null && selectedTask != null) {
+ hasRequestedRecommend = true // ํด๋ฆญ ๊ธฐ๋ก
onClearNeedMoreNotice()
onRecommendRequest(selectedEmotion!!, selectedTask!!, 10)
showRecs = true๐ค Prompt for AI Agents
In `@feature/home/src/main/java/com/example/home/screen/HomeScreen.kt` around
lines 228 - 241, The click handler onRecommendClick sets hasRequestedRecommend =
true too early (before validating selectedEmotion/selectedTask), causing the UI
to show "requested" even when no request is made; change it so
hasRequestedRecommend is only assigned true inside the conditional where
selectedEmotion != null && selectedTask != null (i.e., after
onClearNeedMoreNotice() and immediately before or after
onRecommendRequest(selectedEmotion!!, selectedTask!!, 10)), and remove the
initial pre-check assignment so no flag is set when inputs are missing.
| val selectedEmotionIcon = run { | ||
| val idx = emotionIds.indexOf(selectedEmotionId) | ||
| require(idx >= 0) { "Invalid selectedEmotionId: $selectedEmotionId" } | ||
| colorIcons[idx] | ||
| } | ||
|
|
||
| val selectedTaskLabel = requireNotNull( | ||
| situations.firstOrNull { it.id == selectedTaskId }?.name | ||
| ) { "Invalid selectedTaskId: $selectedTaskId (not found in situations)" } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ ํจํ์ง ์์ ID์์ ๋ฐํ์ ํฌ๋์ ๊ฐ๋ฅ
require๋ก ๋ฐ๋ก ํฌ๋์๊ฐ ๋ฐ์ํ ์ ์์ด ๋ฐฉ์ด ๋ก์ง์ด ํ์ํฉ๋๋ค(์: ๊ฐ ์์ผ๋ฉด ๋ ๋๋ง ์คํต/๋์ฒด ํ์).
๐ ์ ์ ์์
- val selectedEmotionIcon = run {
- val idx = emotionIds.indexOf(selectedEmotionId)
- require(idx >= 0) { "Invalid selectedEmotionId: $selectedEmotionId" }
- colorIcons[idx]
- }
-
- val selectedTaskLabel = requireNotNull(
- situations.firstOrNull { it.id == selectedTaskId }?.name
- ) { "Invalid selectedTaskId: $selectedTaskId (not found in situations)" }
+ if (selectedEmotionId == null || selectedTaskId == null) return
+
+ val idx = emotionIds.indexOf(selectedEmotionId)
+ val selectedEmotionIcon = colorIcons.getOrNull(idx) ?: return
+
+ val selectedTaskLabel = situations
+ .firstOrNull { it.id == selectedTaskId }
+ ?.name ?: return๐ 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.
| val selectedEmotionIcon = run { | |
| val idx = emotionIds.indexOf(selectedEmotionId) | |
| require(idx >= 0) { "Invalid selectedEmotionId: $selectedEmotionId" } | |
| colorIcons[idx] | |
| } | |
| val selectedTaskLabel = requireNotNull( | |
| situations.firstOrNull { it.id == selectedTaskId }?.name | |
| ) { "Invalid selectedTaskId: $selectedTaskId (not found in situations)" } | |
| if (selectedEmotionId == null || selectedTaskId == null) return | |
| val idx = emotionIds.indexOf(selectedEmotionId) | |
| val selectedEmotionIcon = colorIcons.getOrNull(idx) ?: return | |
| val selectedTaskLabel = situations | |
| .firstOrNull { it.id == selectedTaskId } | |
| ?.name ?: return |
๐ค Prompt for AI Agents
In
`@feature/home/src/main/java/com/example/home/ui/top/bar/component/SelectedSummaryRow.kt`
around lines 50 - 58, The current code uses require checks that will throw on
invalid IDs (in selectedEmotionIcon and selectedTaskLabel); change these to
defensive lookups and return sensible fallbacks instead of crashing: for
selectedEmotionIcon, replace the require/idx logic with a safe lookup (use
emotionIds.indexOf(selectedEmotionId) followed by colorIcons.getOrNull(idx) or a
default icon when null) and for selectedTaskLabel, avoid requireNotNull and use
situations.firstOrNull { it.id == selectedTaskId }?.name ?: fallbackLabel or
null so the caller/UI can skip rendering or show a placeholder; update any UI
that consumes selectedEmotionIcon/selectedTaskLabel to handle null/default
values.
| Image( | ||
| painter = painterResource(R.drawable.ic_down_arrow), | ||
| contentDescription = null, | ||
| modifier = Modifier | ||
| .width(44.dp) | ||
| .align(Alignment.CenterHorizontally) | ||
| .clickable { onExpandClick() } | ||
| ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ ๊ทผ์ฑ: ํ์ฅ ๋ฒํผ์ contentDescription ํ์
ํด๋ฆญ ๊ฐ๋ฅํ ์์ด์ฝ์ contentDescription = null์ด๋ฉด ์คํฌ๋ฆฐ๋ฆฌ๋ ์ฌ์ฉ์๊ฐ ๋์์ ์ธ์งํ ์ ์์ต๋๋ค. ์ค๋ช
ํ
์คํธ๋ฅผ ์ถ๊ฐํ๊ณ , ๊ฐ๋ฅํ๋ฉด stringResource๋ก ๊ด๋ฆฌํด ์ฃผ์ธ์.
๐ ์ ์ ์์
Image(
painter = painterResource(R.drawable.ic_down_arrow),
- contentDescription = null,
+ contentDescription = "ํ์ฅ",
modifier = Modifier
.width(44.dp)
.align(Alignment.CenterHorizontally)
.clickable { onExpandClick() }
)๐ 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.
| Image( | |
| painter = painterResource(R.drawable.ic_down_arrow), | |
| contentDescription = null, | |
| modifier = Modifier | |
| .width(44.dp) | |
| .align(Alignment.CenterHorizontally) | |
| .clickable { onExpandClick() } | |
| ) | |
| Image( | |
| painter = painterResource(R.drawable.ic_down_arrow), | |
| contentDescription = "ํ์ฅ", | |
| modifier = Modifier | |
| .width(44.dp) | |
| .align(Alignment.CenterHorizontally) | |
| .clickable { onExpandClick() } | |
| ) |
๐ค Prompt for AI Agents
In `@feature/home/src/main/java/com/example/home/ui/top/bar/HomeTopBar.kt` around
lines 231 - 238, The Image in HomeTopBar.kt currently sets contentDescription =
null making the clickable expand icon inaccessible; update the Image composable
to provide a descriptive contentDescription using stringResource (e.g.,
stringResource(R.string.expand_section) or a suitable existing string) and pass
that instead of null, ensuring the description references the onExpandClick
action so screen readers announce the purpose; if no string exists, add a new
string resource like "Expand" and use stringResource(...) for the
contentDescription.
| <path | ||
| android:pathData="M33,25C33,26.105 31.657,27 30,27C28.343,27 27,26.105 27,25C27,23.895 28.343,23 30,23C31.657,23 33,23.895 33,25Z" | ||
| android:strokeAlpha="0.6" | ||
| android:fillColor="#FFC9BC" | ||
| android:fillAlpha="0.6"/> | ||
| android:fillColor="#CFCFCF"/> | ||
| <path | ||
| android:pathData="M17,25C17,26.105 15.657,27 14,27C12.343,27 11,26.105 11,25C11,23.895 12.343,23 14,23C15.657,23 17,23.895 17,25Z" | ||
| android:strokeAlpha="0.6" | ||
| android:fillColor="#FFC9BC" | ||
| android:fillAlpha="0.6"/> | ||
| android:fillColor="#CFCFCF"/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๐งฉ Analysis chain
๐ Script executed:
cat -n feature/home/src/main/res/drawable/ic_anger_gray.xmlRepository: LinkYou-2025/LinkU_Android
Length of output: 3949
๐ Script executed:
# Search for the specific pathData in the file to see if it appears multiple times
rg "M33,25C33,26.105" feature/home/src/main/res/drawable/ic_anger_gray.xml -nRepository: LinkYou-2025/LinkU_Android
Length of output: 349
๐ Script executed:
# Search for the left cheek pathData
rg "M17,25C17,26.105" feature/home/src/main/res/drawable/ic_anger_gray.xml -nRepository: LinkYou-2025/LinkU_Android
Length of output: 349
๐ Script executed:
# Check other gray icon files for similar duplication patterns
fd -e xml -path '*drawable*gray.xml' feature/home/src/main/res/drawable | head -10Repository: LinkYou-2025/LinkU_Android
Length of output: 238
์ค๋ณต๋ ๊ฒฝ๋ก ์์ ์ ๊ฑฐ ํ์
Lines 24-29์ Lines 39-44์ ์ ํํ ๋์ผํ pathData์ fillColor๋ฅผ ๊ฐ์ง ๊ฒฝ๋ก๊ฐ ์ค๋ณต ์ ์๋์ด ์์ต๋๋ค:
- ์ค๋ฅธ์ชฝ ๋ณผ (lines 25, 40):
M33,25C33,26.105...(#CFCFCF) - ์ผ์ชฝ ๋ณผ (lines 28, 43):
M17,25C17,26.105...(#CFCFCF)
๋์ผํ ๋ชจ์๊ณผ ์์์ด ๋ ๋ฒ ๋ ๋๋ง๋๊ณ ์์ผ๋ฏ๋ก, ์ค๋ณต๋ path ์์(lines 39-44)๋ฅผ ์ ๊ฑฐํ์ธ์.
๐ค Prompt for AI Agents
In `@feature/home/src/main/res/drawable/ic_anger_gray.xml` around lines 24 - 29,
Remove the duplicated circle path elements that repeat the same android:pathData
and android:fillColor; specifically find the path elements with
android:pathData="M33,25C33,26.105 31.657,27 30,27C28.343,27 27,26.105
27,25C27,23.895 28.343,23 30,23C31.657,23 33,23.895 33,25Z" and
android:pathData="M17,25C17,26.105 15.657,27 14,27C12.343,27 11,26.105
11,25C11,23.895 12.343,23 14,23C15.657,23 17,23.895 17,25Z" where they appear
twice, and delete the second occurrences (the duplicates) while keeping a single
instance of each path with android:fillColor="#CFCFCF".
| android:type="linear"> | ||
| <item android:offset="0" android:color="#FFCDCDCD"/> | ||
| <item android:offset="0" android:color="#FFD8D8D8"/> | ||
| <item android:offset="1" android:color="#FFF3F3F3"/> | ||
| </gradient> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ค๋ณต๋ gradient offset ๊ฐ
Line 19์ 20์์ android:offset="0"์ด ์ค๋ณต ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ๋์ผํ offset ๊ฐ์ ๊ฐ์ง gradient stop์ด ๋ ๊ฐ ์์ผ๋ฉด ํ๋๋ง ์ ์ฉ๋ฉ๋๋ค. ์๋๋ gradient ํจ๊ณผ๋ฅผ ์ํด offset ๊ฐ์ ์์ ํด ์ฃผ์ธ์.
๐ง ์ ์๋ ์์
android:type="linear">
- <item android:offset="0" android:color="#FFCDCDCD"/>
- <item android:offset="0" android:color="#FFD8D8D8"/>
+ <item android:offset="0" android:color="#FFCDCDCD"/>
+ <item android:offset="0.5" android:color="#FFD8D8D8"/>
<item android:offset="1" android:color="#FFF3F3F3"/>
</gradient>๋๋ ์ค๋ณต๋ ์์ stop์ด ๋ถํ์ํ๋ค๋ฉด ์ ๊ฑฐ๋ฅผ ๊ณ ๋ คํด ์ฃผ์ธ์:
android:type="linear">
- <item android:offset="0" android:color="#FFCDCDCD"/>
- <item android:offset="0" android:color="#FFD8D8D8"/>
+ <item android:offset="0" android:color="#FFD8D8D8"/>
<item android:offset="1" android:color="#FFF3F3F3"/>
</gradient>๐ 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.
| android:type="linear"> | |
| <item android:offset="0" android:color="#FFCDCDCD"/> | |
| <item android:offset="0" android:color="#FFD8D8D8"/> | |
| <item android:offset="1" android:color="#FFF3F3F3"/> | |
| </gradient> | |
| android:type="linear"> | |
| <item android:offset="0" android:color="#FFCDCDCD"/> | |
| <item android:offset="0.5" android:color="#FFD8D8D8"/> | |
| <item android:offset="1" android:color="#FFF3F3F3"/> | |
| </gradient> |
๐ค Prompt for AI Agents
In `@feature/home/src/main/res/drawable/ic_irritation_gray.xml` around lines 18 -
22, gradient ์์ ๋ด์ ๊ฐ์ android:offset="0"์ด ๋ ๋ฒ ์ฌ์ฉ๋์ด ์ค๋ณต๋ ์คํ์ด ๋ฌด์๋ฉ๋๋ค; gradient
ํ๊ทธ(gradient)๋ฅผ ์ฐพ์ item ์์๋ค(ํ์ฌ ๋ ๊ฐ์ android:offset="0"์ ๊ฐ์ง item)์ ์์ ํ์ฌ ์๋๋ ๊ทธ๋ผ๋ฐ์ด์
์ด
๋์ค๋๋ก ํ๋์ offset์ ๋ณ๊ฒฝ(์: ์ฒซ์งธ๋ฅผ 0, ๋์งธ๋ฅผ 0.5 ๋ฑ์ผ๋ก ์กฐ์ )ํ๊ฑฐ๋ ์ค๋ณต๋ ์์ stop์ด ๋ถํ์ํ๋ฉด ํด๋น item์
์ญ์ ํ์ฌ ์ค๋ณต์ ์ ๊ฑฐํ์ธ์.
|
|
||
| var isTopBarExpanded by remember { mutableStateOf(true) } | ||
| var showRecs by remember { mutableStateOf(showRecommendations) } | ||
| LaunchedEffect(showRecommendations) { showRecs = showRecommendations } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์์ด๋ ๋ ๋ฏ?
| jobSituations.firstOrNull { it.id == selectedTask }?.name | ||
| } | ||
| val density = LocalDensity.current | ||
| val collapseThresholdPx = remember(density) { with(density) { 20.dp.roundToPx() } } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dp๋ก ๋ฐ๊ฟ ์ ์์ผ๋ฉด ๋ฐ๊ฟ์ค
| 3 -> if (isExpanded) 0.28f else 0.22f | ||
| else -> 0f | ||
| // firstVisibleItemIndex>0 ์ด๋ฉด ์ด๋ฏธ ํค๋๊ฐ ์ฌ๋ผ๊ฐ ์ํ๋ผ ๋ฌด์กฐ๊ฑด ์ ํ | ||
| val collapsedByScroll = remember( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remember -> LaunchedEffect, listState.firstVisibleItemIndex > 0 ||
... ๊ฐ์ isTopBarLockedCollapsed ๋์
ํ๋ ์์ผ๋ก
| } | ||
| } | ||
| // ๊ณ ์ ์ ํ์ด ์ฐ์ | ||
| val topBarCollapsed = isTopBarLockedCollapsed || collapsedByScroll |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remember๋ฅผ LaunchedEffect๋ก ์์ ํ์ผ๋ฉด, collapsedByScroll๋ฅผ isTopBarLockedCollapsed๋ก ์์
| ) | ||
| .background(LocalColorTheme.current.white) | ||
| .padding(horizontal = 16.dp, vertical = 20.dp) | ||
| .padding(horizontal = 16.dp, vertical = 13.5.dp) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
padding(left = 16.dp, right = 16.dp, top = 20.dp, bottom = 13.5.dp)
๊ทธ๋ฆฌ๊ณ Spacer ์์ ๊ธฐ
๐ ์ค๋ช
โ๏ธ PR ์ ํ
์ด๋ค ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์?
๐ ๊ด๋ จ ์ด์ ๋ฒํธ
#43
Summary by CodeRabbit
๋ฆด๋ฆฌ์ค ๋ ธํธ
์๋ก์ด ๊ธฐ๋ฅ
๋์์ธ
โ๏ธ Tip: You can customize this high-level summary in your review settings.