-
Notifications
You must be signed in to change notification settings - Fork 0
feat: 오픈소스 라이선스 화면 UI 구현 #45
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
Conversation
|
""" Walkthrough이 PR은 설정 화면 내 오픈소스 라이선스(OSS Licenses) UI 기능을 신규로 구현합니다. 관련된 화면, 프리젠터, UI 상태, 이벤트, 데이터 모델, JSON 자산, 문자열 리소스, 네비게이션 객체 및 빌드 의존성 추가가 포함되어 있습니다. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant SettingsScreen
participant SettingsPresenter
participant Navigator
participant OssLicensesScreen
participant OssLicensesPresenter
User->>SettingsScreen: "오픈소스 라이선스" 클릭
SettingsScreen->>SettingsPresenter: OnOssLicensesClick 이벤트
SettingsPresenter->>Navigator: goTo(OssLicensesScreen)
Navigator->>OssLicensesScreen: 화면 전환
OssLicensesScreen->>OssLicensesPresenter: UI 상태 및 이벤트 처리
OssLicensesScreen->>OssLicensesScreen: JSON 자산 비동기 로딩 및 표시
Assessment against linked issues
Assessment against linked issues: Out-of-scope changes
Suggested reviewers
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (5)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (4)
⏰ 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)
✨ 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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed 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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
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: 3
🧹 Nitpick comments (1)
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesScreen.kt (1)
139-139: 하드코딩된 파일명을 상수로 분리 권장JSON 파일명이 하드코딩되어 있습니다. 유지보수성을 위해 상수로 분리하는 것을 권장합니다.
다음과 같이 개선할 수 있습니다:
+ private const val OSS_LICENSES_JSON_FILE = "oss_licenses.json" private fun getOssLicensesDataFromAsset(context: Context): List<OssLicenseInfo> { return try { - val json = context.assets.open("oss_licenses.json") + val json = context.assets.open(OSS_LICENSES_JSON_FILE)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (13)
core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Modifier.kt(2 hunks)core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/appbar/ReedTopAppBar.kt(1 hunks)feature/settings/build.gradle.kts(1 hunks)feature/settings/src/main/assets/oss_licenses.json(1 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt(2 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsScreen.kt(1 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt(1 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicenseInfo.kt(1 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesPresenter.kt(1 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesScreen.kt(1 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesUiState.kt(1 hunks)feature/settings/src/main/res/values/strings.xml(1 hunks)screens/src/main/kotlin/com/ninecraft/booket/screens/Screens.kt(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsScreen.kt (1)
Learnt from: seoyoon513
PR: YAPP-Github/Reed-Android#35
File: feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/TermsAgreementScreen.kt:127-127
Timestamp: 2025-07-09T01:14:29.836Z
Learning: In the Reed-Android project's TermsAgreementScreen.kt, the OnTermDetailClick event is intentionally passed an empty string for the URL parameter because the actual URLs for terms detail pages haven't been decided yet. This is a temporary implementation that will be updated once the URLs are finalized.
🧬 Code Graph Analysis (1)
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesScreen.kt (2)
core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/appbar/ReedTopAppBar.kt (1)
ReedBackTopAppBar(86-99)core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/theme/Theme.kt (1)
ReedTheme(14-21)
⏰ 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 (14)
feature/settings/src/main/res/values/strings.xml (1)
16-16: 문자열 리소스 추가가 적절합니다.OSS 라이선스 화면을 위한 문자열 리소스가 올바르게 추가되었습니다. 명명 규칙과 한국어 현지화가 적절합니다.
feature/settings/build.gradle.kts (1)
20-20: JSON 직렬화 의존성 추가가 적절합니다.OSS 라이선스 JSON 데이터 파싱을 위한 kotlinx serialization 의존성이 올바르게 추가되었습니다.
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsScreen.kt (1)
98-98: 이벤트 처리 개선이 적절합니다.임시로 구현되었던
OnTermDetailClick("")에서 전용OnOssLicensesClick이벤트로 변경한 것이 적절합니다. 이는 타입 안전성을 높이고 의도를 명확히 표현합니다.screens/src/main/kotlin/com/ninecraft/booket/screens/Screens.kt (1)
28-29: 새로운 화면 객체 추가가 적절합니다.
OssLicensesScreen객체가 기존 패턴을 따라 올바르게 추가되었습니다. Parcelize 어노테이션과 명명 규칙이 일관성 있게 적용되었습니다.feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt (1)
16-16: 새로운 OSS 라이선스 이벤트 추가가 잘 구현되었습니다.기존 이벤트들과 일관된 네이밍 컨벤션을 따르고 있으며, sealed interface 패턴에 맞게 data object로 적절히 정의되었습니다.
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt (2)
7-7: OSS 라이선스 화면 import가 올바르게 추가되었습니다.새로운 화면으로의 네비게이션을 위한 import가 적절히 추가되었습니다.
38-40: 이벤트 핸들링 로직이 적절히 구현되었습니다.새로운
OnOssLicensesClick이벤트에 대한 네비게이션 처리가 기존 패턴과 일관되게 구현되었습니다.core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Modifier.kt (2)
6-6: Material 3 ripple import가 적절히 추가되었습니다.
androidx.compose.material3.ripple사용으로 Material 3 디자인 시스템에 맞게 업데이트되었습니다.
47-47: ripple 구현이 Material 3 권장사항에 따라 개선되었습니다.
LocalIndication.current에서ripple()로 변경하여 더 명시적이고 일관된 Material 3 ripple 효과를 제공합니다. 이는 Android 공식 문서의 권장사항에 부합합니다.feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicenseInfo.kt (1)
5-10: OSS 라이선스 데이터 모델이 적절히 설계되었습니다.
@Serializable어노테이션을 사용하여 Kotlin serialization과 완벽히 호환되며, JSON 구조와 일치하는 필드명을 사용해 추가 매핑 없이 직접 파싱이 가능합니다. 간결하고 명확한 데이터 구조입니다.feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesUiState.kt (1)
6-12: 깔끔하게 구현된 UI 상태와 이벤트 정의Circuit 패턴을 올바르게 따르고 있으며, 간결하고 명확한 구조를 가지고 있습니다. 이벤트 싱크 패턴과 sealed interface 사용이 적절합니다.
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesPresenter.kt (1)
13-35: 잘 구현된 PresenterDagger의 assisted injection과 Circuit 패턴을 올바르게 사용하고 있습니다. 이벤트 처리 로직이 간단하고 명확하며, Factory 인터페이스도 적절히 정의되어 있습니다.
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesScreen.kt (2)
46-82: 전반적으로 잘 구현된 OSS 라이선스 화면Jetpack Compose를 사용한 UI 구조가 깔끔하고, LaunchedEffect를 통한 비동기 데이터 로딩이 적절히 구현되어 있습니다. Circuit 패턴과의 통합도 올바르게 되어 있습니다.
120-133: OSS 라이선스 URL HTTPS 사용 확인 완료feature/settings/src/main/assets/oss_licenses.json 에 정의된 URL 8개가 모두 HTTPS 프로토콜을 사용함을 확인했습니다.
OssLicensesScreen.kt 에서는 Text 컴포저블로 단순 표시만 하고 있어 외부 스키마 실행이나 XSS 위험이 없으므로 추가 보안 검증은 불필요합니다.
- assets/oss_licenses.json: URL 전부
https://로만 이루어짐- feature/settings/src/main/kotlin/.../OssLicensesScreen.kt: Text로만 노출, 클릭 핸들러 부재
| modifier = Modifier.weight(1f), | ||
| textAlign = TextAlign.Center, | ||
| style = ReedTheme.typography.heading2SemiBold, | ||
| style = ReedTheme.typography.headline2SemiBold, |
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.
💡 Verification agent
🧩 Analysis chain
타이포그래피 변경이 기존 사용처에 미치는 영향을 확인하세요.
heading2SemiBold에서 headline2SemiBold로 변경된 것이 디자인 시스템의 표준화 작업으로 보입니다. 기존에 heading2SemiBold를 사용하는 다른 컴포넌트들이 영향받지 않는지 확인이 필요합니다.
다음 스크립트로 기존 heading2SemiBold 사용처를 확인해주세요:
🏁 Script executed:
#!/bin/bash
# Description: 기존 heading2SemiBold 사용처 확인
# Expected: 다른 파일에서 heading2SemiBold 사용이 없거나 모두 업데이트되어야 함
rg "heading2SemiBold" --type kotlin -A 2 -B 2Length of output: 2522
타이포그래피 스타일 명칭 일관성 유지 필요
heading2SemiBold가 여전히 아래 컴포넌트에서 사용되고 있어, headline2SemiBold로 통일해야 합니다:
- feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/component/WithdrawConfirmationBottomSheet.kt
// 변경 전 style = ReedTheme.typography.heading2SemiBold // 변경 후 style = ReedTheme.typography.headline2SemiBold
- feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/component/LogoutConfirmationBottomSheet.kt
// 변경 전 style = ReedTheme.typography.heading2SemiBold // 변경 후 style = ReedTheme.typography.headline2SemiBold
추가로, core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/theme/Typography.kt에서 heading2SemiBold 정의를 제거하거나 deprecated 처리하여 사용되지 않는 스타일임을 명시하는 것도 권장드립니다.
🤖 Prompt for AI Agents
In
core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/appbar/ReedTopAppBar.kt
at line 65, ensure the typography style name is consistent by using
'headline2SemiBold' instead of 'heading2SemiBold'. Additionally, update the
files
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/component/WithdrawConfirmationBottomSheet.kt
and LogoutConfirmationBottomSheet.kt to replace all instances of
'heading2SemiBold' with 'headline2SemiBold'. Finally, in
core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/theme/Typography.kt,
remove or mark the 'heading2SemiBold' style as deprecated to indicate it is no
longer in use.
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.
바텀시트에서 Text style은 그게 맞아
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.
@seoyoon513 이해했습니다! 바텀시트에서는 heading2SemiBold가 올바른 스타일이군요. 감사합니다.
(。◕‿◕。) 🐰
✏️ Learnings added
Learnt from: seoyoon513
PR: YAPP-Github/Reed-Android#45
File: core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/appbar/ReedTopAppBar.kt:65-65
Timestamp: 2025-07-12T01:33:57.074Z
Learning: Reed Android 프로젝트에서 타이포그래피 사용 규칙: 톱 앱바(Top App Bar)에서는 `headline2SemiBold`를 사용하고, 바텀시트(Bottom Sheet)에서는 `heading2SemiBold`를 사용한다. 이는 의도적인 디자인 시스템 차별화이다.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
🧠 Learnings used
Learnt from: seoyoon513
PR: YAPP-Github/Reed-Android#32
File: core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/button/ButtonColorStyle.kt:10-16
Timestamp: 2025-07-08T12:33:01.863Z
Learning: Reed Android 프로젝트에서 KAKAO 버튼 스타일은 디자이너가 pressed 상태 색상을 별도로 정의하지 않았기 때문에 pressed 상태에서도 동일한 Kakao 색상을 사용한다.
Learnt from: seoyoon513
PR: YAPP-Github/Reed-Android#32
File: core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/theme/Theme.kt:15-21
Timestamp: 2025-07-08T03:21:24.693Z
Learning: Reed Android 프로젝트에서는 다크모드/라이트모드 대응 계획이 없고 기본 테마 값만 사용할 예정이다.
| [ | ||
| { | ||
| "name": "Circuit", | ||
| "license": "Apache License 2.0", | ||
| "url": "https://github.com/slackhq/circuit" | ||
| }, | ||
| { | ||
| "name": "Compose Effects", | ||
| "license": "Apache License 2.0", | ||
| "url": "https://github.com/skydoves/compose-effects" | ||
| }, | ||
| { | ||
| "name": "Compose Stable Marker", | ||
| "license": "Apache License 2.0", | ||
| "url": "https://github.com/skydoves/compose-stable-marker" | ||
| }, | ||
| { | ||
| "name": "Hilt", | ||
| "license": "Apache License 2.0", | ||
| "url": "https://dagger.dev/hilt/" | ||
| }, | ||
| { | ||
| "name": "Kakao SDK", | ||
| "license": "Apache License 2.0", | ||
| "url": "https://developers.kakao.com/sdk/reference/android" | ||
| }, | ||
| { | ||
| "name": "Logger", | ||
| "license": "Apache License 2.0", | ||
| "url": "https://github.com/orhanobut/logger" | ||
| }, | ||
| { | ||
| "name": "OkHttp", | ||
| "license": "Apache License 2.0", | ||
| "url": "https://square.github.io/okhttp/" | ||
| }, | ||
| { | ||
| "name": "Retrofit", | ||
| "license": "Apache License 2.0", | ||
| "url": "https://square.github.io/retrofit/" | ||
| } | ||
| ] |
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.
💡 Verification agent
🧩 Analysis chain
OSS 라이선스 데이터 구조가 적절하게 정의되었습니다.
JSON 구조가 일관되고 직관적입니다. 다만 몇 가지 확인이 필요합니다:
- Hilt URL이 공식 문서가 아닌 일반 사이트를 가리키고 있습니다
- Kakao SDK URL이 실제 GitHub 저장소나 라이선스 정보를 포함하지 않습니다
다음 스크립트로 URL들의 유효성을 확인해 보시기 바랍니다:
🏁 Script executed:
#!/bin/bash
# OSS 라이선스 JSON 파일의 URL 유효성 검증
echo "Checking URLs in oss_licenses.json..."
# Hilt 공식 GitHub URL 확인
echo "Checking Hilt official URL..."
curl -s -o /dev/null -w "%{http_code}" "https://github.com/google/dagger"
# Kakao SDK 공식 저장소 확인
echo "Checking Kakao SDK repository..."
curl -s -o /dev/null -w "%{http_code}" "https://github.com/kakao/kakao-android-sdk"
echo "Consider updating URLs to point to official repositories for better accuracy"Length of output: 555
OSS 라이선스 URL 검증 결과 및 수정 요청
- feature/settings/src/main/assets/oss_licenses.json
- Hilt URL(https://dagger.dev/hilt/)은 HTTP 200 응답이 확인되어 정상입니다.
- Kakao SDK URL(https://github.com/kakao/kakao-android-sdk)이 HTTP 404를 반환합니다.
→ 해당 URL을 공식 문서 또는 라이선스 페이지(예: developers.kakao.com 내 라이선스 섹션)로 교체하고, 실제 라이선스가 Apache 2.0인지 함께 검증해주세요.
🤖 Prompt for AI Agents
In feature/settings/src/main/assets/oss_licenses.json lines 1 to 42, the URL for
the Kakao SDK currently points to a GitHub page that returns HTTP 404. Replace
this URL with the official Kakao SDK documentation or license page URL from
developers.kakao.com that is valid and accessible. Additionally, verify that the
Kakao SDK license is indeed Apache License 2.0 and update the license field if
necessary.
| LaunchedEffect(Unit) { | ||
| licenses = withContext(Dispatchers.IO) { | ||
| getOssLicensesDataFromAsset(context) | ||
| } | ||
| } |
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.
🛠️ Refactor suggestion
로딩 및 에러 상태 처리 개선 필요
현재 구현에서는 JSON 로딩 중에 사용자에게 로딩 상태를 표시하지 않고, 로딩 실패 시에도 빈 리스트만 표시됩니다. 사용자 경험 향상을 위해 로딩 상태와 에러 상태를 추가하는 것을 권장합니다.
다음과 같이 상태를 개선할 수 있습니다:
- var licenses by remember { mutableStateOf<List<OssLicenseInfo>>(emptyList()) }
+ var licenses by remember { mutableStateOf<List<OssLicenseInfo>>(emptyList()) }
+ var isLoading by remember { mutableStateOf(true) }
+ var errorMessage by remember { mutableStateOf<String?>(null) }
LaunchedEffect(Unit) {
+ isLoading = true
+ errorMessage = null
licenses = withContext(Dispatchers.IO) {
getOssLicensesDataFromAsset(context)
}
+ isLoading = false
}📝 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.
| LaunchedEffect(Unit) { | |
| licenses = withContext(Dispatchers.IO) { | |
| getOssLicensesDataFromAsset(context) | |
| } | |
| } | |
| // state for the loaded licenses | |
| var licenses by remember { mutableStateOf<List<OssLicenseInfo>>(emptyList()) } | |
| + // loading and error state | |
| + var isLoading by remember { mutableStateOf(true) } | |
| + var errorMessage by remember { mutableStateOf<String?>(null) } | |
| LaunchedEffect(Unit) { | |
| + isLoading = true | |
| + errorMessage = null | |
| licenses = withContext(Dispatchers.IO) { | |
| getOssLicensesDataFromAsset(context) | |
| } | |
| + isLoading = false | |
| } |
🤖 Prompt for AI Agents
In
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesScreen.kt
around lines 55 to 59, the current code does not handle loading or error states
when fetching JSON data, resulting in no user feedback during loading or
failure. Introduce additional state variables to represent loading and error
conditions, update these states appropriately before and after the data fetch,
and modify the UI to display a loading indicator while fetching and an error
message if loading fails, instead of showing an empty list.
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.
지금은 임시 구현에 가까운거니까 oss_licenses.json이 remote 데이터로 관리될 때 적용해볼게~
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.
@seoyoon513 네, 맞습니다! 로컬 JSON 파일로 관리할 때는 로딩이 빠르니까 지금처럼 구현하는 게 합리적이네요. 원격 데이터로 변경될 때 로딩 상태와 에러 처리를 함께 적용하시면 될 것 같습니다! 👍
🐰✨
/| /|
( .. )
o(")(")
✏️ Learnings added
Learnt from: seoyoon513
PR: YAPP-Github/Reed-Android#45
File: feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesScreen.kt:55-59
Timestamp: 2025-07-12T03:51:35.773Z
Learning: feature/settings OSS 라이선스 화면의 현재 구현은 임시 구현이며, oss_licenses.json이 remote 데이터로 관리될 때 로딩 상태 및 에러 처리가 적용될 예정입니다.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
|
https://developers.google.com/android/guides/opensource?hl=ko |
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: 1
🧹 Nitpick comments (1)
feature/settings/src/main/assets/oss_licenses.json (1)
1-57: 라이선스 필드는 SPDX 식별자 사용을 권장합니다
현재"license"값이"Apache License 2.0"·"MIT License"형태로 서술되어 있는데, 추후 자동 파싱·필터링을 고려하면"Apache-2.0","MIT"등 SPDX 표준 식별자를 별도 필드(예:spdx_license)로 두는 편이 확장성에 유리합니다.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
feature/settings/src/main/assets/oss_licenses.json(1 hunks)
⏰ 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 (1)
feature/settings/src/main/assets/oss_licenses.json (1)
18-21: Hilt 항목 URL 정상 확인
https://dagger.dev/hilt/는 200 응답이 확인되며 공식 문서로 연결되어 있습니다. 별다른 문제 없어 보입니다.
...tings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesScreen.kt
Outdated
Show resolved
Hide resolved
...tings/src/main/kotlin/com/ninecraft/booket/feature/settings/osslicenses/OssLicensesScreen.kt
Outdated
Show resolved
Hide resolved
사용하지 않는 라이브러리 의존성 제거
| onClick = { multipleEventsCutter.processEvent { onClick() } }, | ||
| role = role, | ||
| indication = LocalIndication.current, | ||
| indication = ripple(), |
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.
👍 👍 👍
관련해서 변경사항이 있었다는 것은 인지했었는데, 적용을 안하고 있었구만...
|
@easyhooon oss_licenses.json에 보충해주셧네요 감사요👍 |
easyhooon
left a 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.
LGTM
🔗 관련 이슈
📙 작업 설명
clickableSingleripple 색상 이슈 해결📸 스크린샷 또는 시연 영상
Reed_._.mp4
💬 추가 설명 or 리뷰 포인트
gradleLocalProperties함수와 충돌 등의 이유로 직접 구현했습니다.(아래는 해당 라이브러리를 프로젝트에 사용했을 때의 이미지입니다)
indication에 지정한LocalIndication.current를 통해 RippleTheme를 적용하지 못하는 문제가 있었습니다. 공식문서를 확인해보니 M3 이전에는rememberRipple()함수를 통해 RippleTheme의 효과를 사용했으며, M3부터는ripple()api를 사용하라고 가이드 되어있어 해당 부분 적용했습니다~Summary by CodeRabbit
Summary by CodeRabbit
신규 기능
스타일
문서화