From 89ddb2a259c93d2042043782d58c13a9792120f9 Mon Sep 17 00:00:00 2001 From: Sadturtleman Date: Mon, 24 Aug 2026 21:54:16 +0900 Subject: [PATCH 1/4] =?UTF-8?q?refactor(receiver):=20=EC=88=98=EC=8B=A0?= =?UTF-8?q?=EC=9E=90=20=ED=99=88=EC=9D=98=20afternote=20=EB=A6=AC=EC=86=8C?= =?UTF-8?q?=EC=8A=A4=20=EC=B0=A8=EC=9A=A9=EC=9D=84=20=ED=95=B4=EC=86=8C?= =?UTF-8?q?=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 수신자 홈이 feature:afternote:presentation 의 R 을 직접 import 해 아이콘을 그렸다. 리소스는 모듈 경계를 가장 조용히 넘는 의존이다 — 컴파일도 되고 그림도 뜨지만, 다른 모듈이 리소스를 지우거나 이름을 바꿀 때에야 드러난다. 종류 아이콘 4개를 core:ui 로 승격하고, 화면 사이에 오가는 값을 res id 대신 AfternoteSourceIcon enum 으로 바꾼다. ViewModel 이 res id 를 들면 상태가 Android 리소스에 묶여 단위 테스트에서도 리소스가 필요해진다. ReceiverHomeResourceKonsistTest 로 되살아남을 막는다 — import 를 되돌리면 잡힌다. Co-Authored-By: Claude Opus 5 (1M context) --- .../core/ui/icon/AfternoteSourceIcon.kt | 25 +++++++++++++ .../core_ui_afternote_gallery_pattern.xml | 0 .../res/drawable/core_ui_afternote_logo.png | Bin .../core_ui_afternote_memorial_guideline.xml | 0 .../core_ui_afternote_social_pattern.xml | 0 .../infinite/content/AfternoteListContent.kt | 5 ++- .../detail/AfternoteDetailServiceHeader.kt | 3 +- .../shared/model/AfternoteService.kt | 13 ++++--- .../shared/util/AfternoteDisplayRes.kt | 3 +- .../presentation/home/ReceiverHomeScreen.kt | 11 +++--- .../home/ReceiverHomeViewModel.kt | 20 ++++++++-- .../home/component/AfternoteSection.kt | 11 +++--- .../home/model/ReceiverHomeUiState.kt | 5 +-- .../ReceiverHomeResourceKonsistTest.kt | 35 ++++++++++++++++++ 14 files changed, 102 insertions(+), 29 deletions(-) create mode 100644 core/ui/src/main/kotlin/com/afternote/core/ui/icon/AfternoteSourceIcon.kt rename feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_gallery_pattern.xml => core/ui/src/main/res/drawable/core_ui_afternote_gallery_pattern.xml (100%) rename feature/afternote/presentation/src/main/res/drawable/feature_afternote_img_logo.png => core/ui/src/main/res/drawable/core_ui_afternote_logo.png (100%) rename feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_memorial_guideline.xml => core/ui/src/main/res/drawable/core_ui_afternote_memorial_guideline.xml (100%) rename feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_social_pattern.xml => core/ui/src/main/res/drawable/core_ui_afternote_social_pattern.xml (100%) create mode 100644 konsist/src/test/kotlin/com/afternote/konsist/ReceiverHomeResourceKonsistTest.kt diff --git a/core/ui/src/main/kotlin/com/afternote/core/ui/icon/AfternoteSourceIcon.kt b/core/ui/src/main/kotlin/com/afternote/core/ui/icon/AfternoteSourceIcon.kt new file mode 100644 index 0000000000..1066e673cf --- /dev/null +++ b/core/ui/src/main/kotlin/com/afternote/core/ui/icon/AfternoteSourceIcon.kt @@ -0,0 +1,25 @@ +package com.afternote.core.ui.icon + +import androidx.annotation.DrawableRes +import com.afternote.core.ui.R + +/** + * 애프터노트 **종류** 아이콘의 core 정본 (#926). + * + * 수신자 홈이 이 아이콘을 쓰는데, 종전에는 `feature:afternote:presentation` 의 `R` 을 직접 + * 빌려 왔다. 형제 feature 의 리소스를 가로지르는 참조라 두 모듈이 리소스 수준에서 묶인다. + * + * 종류는 도메인 개념이지만 **아이콘 선택은 표현**이라, 화면 사이에 오가는 값은 res id 가 + * 아니라 이 enum 이다. ViewModel 이 res id 를 들면 상태가 Android 리소스에 묶여 + * 단위 테스트에서도 리소스가 필요해진다. + */ +enum class AfternoteSourceIcon( + @param:DrawableRes val drawableResId: Int, +) { + SocialNetwork(R.drawable.core_ui_afternote_social_pattern), + GalleryAndFiles(R.drawable.core_ui_afternote_gallery_pattern), + Memorial(R.drawable.core_ui_afternote_memorial_guideline), + + /** 위 셋으로 갈리지 않는 종류 — 로고로 받는다. */ + Other(R.drawable.core_ui_afternote_logo), +} diff --git a/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_gallery_pattern.xml b/core/ui/src/main/res/drawable/core_ui_afternote_gallery_pattern.xml similarity index 100% rename from feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_gallery_pattern.xml rename to core/ui/src/main/res/drawable/core_ui_afternote_gallery_pattern.xml diff --git a/feature/afternote/presentation/src/main/res/drawable/feature_afternote_img_logo.png b/core/ui/src/main/res/drawable/core_ui_afternote_logo.png similarity index 100% rename from feature/afternote/presentation/src/main/res/drawable/feature_afternote_img_logo.png rename to core/ui/src/main/res/drawable/core_ui_afternote_logo.png diff --git a/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_memorial_guideline.xml b/core/ui/src/main/res/drawable/core_ui_afternote_memorial_guideline.xml similarity index 100% rename from feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_memorial_guideline.xml rename to core/ui/src/main/res/drawable/core_ui_afternote_memorial_guideline.xml diff --git a/feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_social_pattern.xml b/core/ui/src/main/res/drawable/core_ui_afternote_social_pattern.xml similarity index 100% rename from feature/afternote/presentation/src/main/res/drawable/feature_afternote_ic_social_pattern.xml rename to core/ui/src/main/res/drawable/core_ui_afternote_social_pattern.xml diff --git a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/body/infinite/content/AfternoteListContent.kt b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/body/infinite/content/AfternoteListContent.kt index d8da38ca99..9a7b390e62 100644 --- a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/body/infinite/content/AfternoteListContent.kt +++ b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/body/infinite/content/AfternoteListContent.kt @@ -21,6 +21,7 @@ import com.afternote.feature.afternote.presentation.author.home.AfternoteCategor import com.afternote.feature.afternote.presentation.shared.body.infinite.content.list.AfternoteList import com.afternote.feature.afternote.presentation.shared.body.infinite.content.list.item.ListItemUiModel import kotlinx.coroutines.flow.flowOf +import com.afternote.core.ui.R as CoreUiR @Composable fun AfternoteListContent( @@ -73,14 +74,14 @@ private fun AfternoteListContentPreview() { id = 1L, serviceName = "추억 노트", date = "2025.12.01", - iconResId = R.drawable.feature_afternote_img_logo, + iconResId = CoreUiR.drawable.core_ui_afternote_logo, type = AfternoteType.MEMORIAL, ), ListItemUiModel( id = 2L, serviceName = "인스타그램", date = "2025.11.26", - iconResId = R.drawable.feature_afternote_img_logo, + iconResId = CoreUiR.drawable.core_ui_afternote_logo, type = AfternoteType.SOCIAL_NETWORK, ), ), diff --git a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/detail/AfternoteDetailServiceHeader.kt b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/detail/AfternoteDetailServiceHeader.kt index 637375699e..fc2601c450 100644 --- a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/detail/AfternoteDetailServiceHeader.kt +++ b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/detail/AfternoteDetailServiceHeader.kt @@ -23,6 +23,7 @@ import com.afternote.core.ui.theme.AfternoteDesign import com.afternote.core.ui.theme.AfternoteTheme import com.afternote.feature.afternote.presentation.R import com.afternote.feature.afternote.presentation.shared.model.AfternoteServiceDisplay +import com.afternote.core.ui.R as CoreUiR /** * 애프터노트 작성자 상세 공통 상단: 서비스 아이콘·이름·최종 작성일. @@ -78,7 +79,7 @@ private fun AfternoteDetailServiceHeaderPreview() { service = AfternoteServiceDisplay( serviceName = "서비스 이름", - iconResId = R.drawable.feature_afternote_ic_memorial_guideline, + iconResId = CoreUiR.drawable.core_ui_afternote_memorial_guideline, ), finalWriteDate = "2024.05.20", ) diff --git a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/model/AfternoteService.kt b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/model/AfternoteService.kt index ab4e44ad88..17a1fd5558 100644 --- a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/model/AfternoteService.kt +++ b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/model/AfternoteService.kt @@ -3,6 +3,7 @@ package com.afternote.feature.afternote.presentation.shared.model import androidx.annotation.DrawableRes import androidx.annotation.StringRes import com.afternote.feature.afternote.presentation.R +import com.afternote.core.ui.R as CoreUiR /** * Maps API [typeKey] (when present), UI display keys / service titles, and label + icon resources. @@ -19,19 +20,19 @@ enum class AfternoteService( typeKey = "SOCIAL_NETWORK", displayKey = "SOCIAL_NETWORK", stringResId = R.string.afternote_category_social_network, - iconResId = R.drawable.feature_afternote_ic_social_pattern, + iconResId = CoreUiR.drawable.core_ui_afternote_social_pattern, ), GALLERY_AND_FILES_CATEGORY( typeKey = "GALLERY_AND_FILES", displayKey = "GALLERY_AND_FILES", stringResId = R.string.receiver_afternote_item_gallery, - iconResId = R.drawable.feature_afternote_ic_gallery_pattern, + iconResId = CoreUiR.drawable.core_ui_afternote_gallery_pattern, ), MEMORIAL_CATEGORY( typeKey = "MEMORIAL", displayKey = "MEMORIAL", stringResId = R.string.receiver_afternote_item_memorial_guideline, - iconResId = R.drawable.feature_afternote_ic_memorial_guideline, + iconResId = CoreUiR.drawable.core_ui_afternote_memorial_guideline, ), INSTAGRAM( typeKey = "INSTAGRAM", @@ -43,13 +44,13 @@ enum class AfternoteService( typeKey = "GALLERY", displayKey = "갤러리", stringResId = R.string.receiver_afternote_item_gallery, - iconResId = R.drawable.feature_afternote_ic_gallery_pattern, + iconResId = CoreUiR.drawable.core_ui_afternote_gallery_pattern, ), MEMORIAL_GUIDELINE( typeKey = "GUIDE", displayKey = "추억 노트", stringResId = R.string.receiver_afternote_item_memorial_guideline, - iconResId = R.drawable.feature_afternote_ic_memorial_guideline, + iconResId = CoreUiR.drawable.core_ui_afternote_memorial_guideline, ), NAVER_MAIL( typeKey = "NAVER_MAIL", @@ -175,7 +176,7 @@ enum class AfternoteService( typeKey = null, displayKey = "파일", stringResId = R.string.receiver_afternote_item_gallery, - iconResId = R.drawable.feature_afternote_ic_gallery_pattern, + iconResId = CoreUiR.drawable.core_ui_afternote_gallery_pattern, ), ; diff --git a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/util/AfternoteDisplayRes.kt b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/util/AfternoteDisplayRes.kt index feefcc2f74..3618581ffc 100644 --- a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/util/AfternoteDisplayRes.kt +++ b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/shared/util/AfternoteDisplayRes.kt @@ -4,6 +4,7 @@ import androidx.annotation.StringRes import com.afternote.feature.afternote.domain.AfternoteType import com.afternote.feature.afternote.presentation.R import com.afternote.feature.afternote.presentation.shared.model.AfternoteService +import com.afternote.core.ui.R as CoreUiR /** * 종류 필터 탭 순서. `null` 은 "전체" 탭이다. @@ -32,7 +33,7 @@ fun categoryLabelResFor(type: AfternoteType?): Int = /** Icon drawable res for an [AfternoteType]. */ fun getIconResForType(type: AfternoteType): Int = AfternoteService.fromTypeKeyOrNull(type.name)?.iconResId - ?: R.drawable.feature_afternote_img_logo + ?: CoreUiR.drawable.core_ui_afternote_logo /** * Icon drawable res for a service title shown on a card. diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreen.kt b/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreen.kt index 35304b8af2..e8d8feb085 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreen.kt +++ b/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreen.kt @@ -28,6 +28,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.afternote.core.ui.button.AfternoteButton import com.afternote.core.ui.button.AfternoteButtonType +import com.afternote.core.ui.icon.AfternoteSourceIcon import com.afternote.core.ui.popup.Popup import com.afternote.core.ui.popup.PopupType import com.afternote.core.ui.theme.AfternoteDesign @@ -38,12 +39,10 @@ import com.afternote.feature.receiver.presentation.home.component.AfternoteSecti import com.afternote.feature.receiver.presentation.home.component.MindRecordSection import com.afternote.feature.receiver.presentation.home.component.SenderMessageHeroCard import com.afternote.feature.receiver.presentation.home.component.TimeLetterSection -import com.afternote.feature.receiver.presentation.home.model.AfternoteSourceIcon import com.afternote.feature.receiver.presentation.home.model.MindRecordSummary import com.afternote.feature.receiver.presentation.home.model.ReceiverDownloadState import com.afternote.feature.receiver.presentation.home.model.ReceiverHomeUiState import com.afternote.feature.receiver.presentation.home.model.SenderMessage -import com.afternote.feature.afternote.presentation.R as AfternoteFeatureR /** * 수신자 홈 화면 — 한 마디 + 마음의 기록·타임레터·애프터노트 카드 + 모든 기록 내려받기 버튼. @@ -236,10 +235,10 @@ private fun ReceiverHomeScreenPreview() { afternoteTotalCount = 10, afternoteIcons = listOf( - AfternoteSourceIcon(AfternoteFeatureR.drawable.feature_afternote_img_insta_pattern), - AfternoteSourceIcon(AfternoteFeatureR.drawable.feature_afternote_img_googlephoto_pattern), - AfternoteSourceIcon(AfternoteFeatureR.drawable.feature_afternote_img_naver_mail_pattern), - AfternoteSourceIcon(AfternoteFeatureR.drawable.feature_afternote_img_kakaotalk_pattern), + AfternoteSourceIcon.SocialNetwork, + AfternoteSourceIcon.GalleryAndFiles, + AfternoteSourceIcon.Memorial, + AfternoteSourceIcon.Other, ), ), onEvent = {}, diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeViewModel.kt b/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeViewModel.kt index 73b46b0195..abc93ddc60 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeViewModel.kt +++ b/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeViewModel.kt @@ -4,13 +4,13 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.afternote.core.common.reporting.ErrorReporter import com.afternote.core.common.result.runCatchingCancellable -import com.afternote.feature.afternote.presentation.shared.util.getIconResForType +import com.afternote.core.ui.icon.AfternoteSourceIcon +import com.afternote.feature.afternote.domain.AfternoteType import com.afternote.feature.mindrecord.domain.model.ReceiverMindRecords import com.afternote.feature.mindrecord.domain.repository.MindRecordReceiverRepository import com.afternote.feature.receiver.domain.model.AfterNoteListItem import com.afternote.feature.receiver.domain.repository.ReceiverRepository import com.afternote.feature.receiver.presentation.R -import com.afternote.feature.receiver.presentation.home.model.AfternoteSourceIcon import com.afternote.feature.receiver.presentation.home.model.MindRecordSummary import com.afternote.feature.receiver.presentation.home.model.ReceiverDownloadState import com.afternote.feature.receiver.presentation.home.model.ReceiverHomeUiState @@ -183,5 +183,19 @@ private fun List.toAfternoteIcons(): List AfternoteSourceIcon.SocialNetwork + AfternoteType.GALLERY_AND_FILES -> AfternoteSourceIcon.GalleryAndFiles + AfternoteType.MEMORIAL -> AfternoteSourceIcon.Memorial + AfternoteType.BUSINESS, AfternoteType.ESTATE -> AfternoteSourceIcon.Other + } diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSection.kt b/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSection.kt index 903620a00f..ceff20f962 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSection.kt +++ b/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSection.kt @@ -22,11 +22,10 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import com.afternote.core.ui.icon.AfternoteSourceIcon import com.afternote.core.ui.theme.AfternoteDesign import com.afternote.core.ui.theme.AfternoteTheme import com.afternote.feature.receiver.presentation.R -import com.afternote.feature.receiver.presentation.home.model.AfternoteSourceIcon -import com.afternote.feature.afternote.presentation.R as AfternoteFeatureR private const val MAX_VISIBLE_ICONS = 4 private val ICON_SIZE = 32.dp @@ -131,10 +130,10 @@ private fun AfternoteSectionPreview() { totalCount = 10, icons = listOf( - AfternoteSourceIcon(AfternoteFeatureR.drawable.feature_afternote_img_insta_pattern), - AfternoteSourceIcon(AfternoteFeatureR.drawable.feature_afternote_img_googlephoto_pattern), - AfternoteSourceIcon(AfternoteFeatureR.drawable.feature_afternote_img_naver_mail_pattern), - AfternoteSourceIcon(AfternoteFeatureR.drawable.feature_afternote_img_kakaotalk_pattern), + AfternoteSourceIcon.SocialNetwork, + AfternoteSourceIcon.GalleryAndFiles, + AfternoteSourceIcon.Memorial, + AfternoteSourceIcon.Other, ), onGoClick = {}, modifier = Modifier.padding(20.dp), diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/model/ReceiverHomeUiState.kt b/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/model/ReceiverHomeUiState.kt index c42a27cf69..003442b4bf 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/model/ReceiverHomeUiState.kt +++ b/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/model/ReceiverHomeUiState.kt @@ -2,6 +2,7 @@ package com.afternote.feature.receiver.presentation.home.model import androidx.annotation.StringRes import androidx.compose.runtime.Immutable +import com.afternote.core.ui.icon.AfternoteSourceIcon /** * 수신자 홈 화면 UI 상태. @@ -46,10 +47,6 @@ data class MindRecordSummary( } @Immutable -data class AfternoteSourceIcon( - val drawableResId: Int, -) - sealed interface ReceiverDownloadState { data object Idle : ReceiverDownloadState diff --git a/konsist/src/test/kotlin/com/afternote/konsist/ReceiverHomeResourceKonsistTest.kt b/konsist/src/test/kotlin/com/afternote/konsist/ReceiverHomeResourceKonsistTest.kt new file mode 100644 index 0000000000..1e914046cd --- /dev/null +++ b/konsist/src/test/kotlin/com/afternote/konsist/ReceiverHomeResourceKonsistTest.kt @@ -0,0 +1,35 @@ +package com.afternote.konsist + +import com.lemonappdev.konsist.api.Konsist +import com.lemonappdev.konsist.api.ext.list.withPackage +import com.lemonappdev.konsist.api.verify.assertFalse +import org.junit.Test + +/** + * 수신자 홈이 형제 feature 의 리소스를 빌려 쓰지 않는지 (#926). + * + * 종전에는 수신자 홈이 `feature:afternote:presentation` 의 `R` 을 직접 import 해 소셜 패턴 + * 아이콘을 그렸다. 리소스는 모듈 경계를 가장 조용히 넘는 의존이다 — 컴파일은 되고, + * 그림도 뜨고, 다른 모듈이 리소스를 지우거나 이름을 바꿀 때에야 드러난다. + * + * 아이콘의 정본은 `core:ui` 이고, 화면 사이에 오가는 값은 res id 가 아니라 + * `AfternoteSourceIcon` 이다. + */ +class ReceiverHomeResourceKonsistTest { + @Test + fun `수신자 홈은 다른 feature 의 R 을 참조하지 않는다`() { + Konsist + .scopeFromProject() + .files + .withPackage("com.afternote.feature.receiver.presentation.home..") + .assertFalse { file -> + file.imports.any { import -> FOREIGN_FEATURE_RESOURCE.matches(import.name) } + } + } + + private companion object { + /** 수신자 자신이 아닌 feature 의 `R` (또는 그 하위 참조). */ + val FOREIGN_FEATURE_RESOURCE = + Regex("""^com\.afternote\.feature\.(?!receiver\.)[a-z]+\.presentation\.R(\..*)?$""") + } +} From 84480a3361601e0e81ba1b89a1d70a99a6f110d7 Mon Sep 17 00:00:00 2001 From: Sadturtleman Date: Tue, 25 Aug 2026 00:17:28 +0900 Subject: [PATCH 2/4] =?UTF-8?q?fix(receiver):=20screenshotTest=20=EB=A5=BC?= =?UTF-8?q?=20core:ui=20=EC=95=84=EC=9D=B4=EC=BD=98=20enum=20=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=8D=B0=EB=A0=A4=EC=98=A8=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AfternoteSourceIcon 을 data class(resId) → enum 으로 올리면서 같은 모듈의 screenshotTest 소스셋이 따라오지 않아 compileDebugScreenshotTestKotlin 이 깨졌다. 종류 아이콘 자리에 검색·링크 아이콘이 박혀 있던 것도 실제 종류 아이콘으로 고친다. Konsist 가드는 import 만 봐서 FQN 참조가 빠져나갔다 — 본문 텍스트도 함께 본다. Co-Authored-By: Claude Opus 5 (1M context) --- .../home/ReceiverHomeScreenScreenshotTest.kt | 4 ++-- .../home/component/AfternoteSectionScreenshotTest.kt | 6 +++--- .../konsist/ReceiverHomeResourceKonsistTest.kt | 10 +++++++++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTest.kt b/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTest.kt index f5808e71ce..1d9eb3a68b 100644 --- a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTest.kt +++ b/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTest.kt @@ -3,7 +3,7 @@ package com.afternote.feature.receiver.presentation.home import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview import com.afternote.core.ui.theme.AfternoteTheme -import com.afternote.feature.receiver.presentation.home.model.AfternoteSourceIcon +import com.afternote.core.ui.icon.AfternoteSourceIcon import com.afternote.feature.receiver.presentation.home.model.MindRecordSummary import com.afternote.feature.receiver.presentation.home.model.ReceiverHomeUiState import com.afternote.feature.receiver.presentation.home.model.SenderMessage @@ -50,7 +50,7 @@ internal fun receiverHomeScreenSuccessScreenshot() { afternoteTotalCount = 5, afternoteIcons = listOf( - AfternoteSourceIcon(drawableResId = com.afternote.core.ui.R.drawable.core_ui_ic_tabler_search), + AfternoteSourceIcon.SocialNetwork, ), ), onEvent = {}, diff --git a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTest.kt b/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTest.kt index 7c592fdc3d..d0d2b945f9 100644 --- a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTest.kt +++ b/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTest.kt @@ -6,7 +6,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.afternote.core.ui.theme.AfternoteTheme -import com.afternote.feature.receiver.presentation.home.model.AfternoteSourceIcon +import com.afternote.core.ui.icon.AfternoteSourceIcon import com.android.tools.screenshot.PreviewTest @PreviewTest @@ -18,8 +18,8 @@ internal fun afternoteSectionScreenshot() { totalCount = 5, icons = listOf( - AfternoteSourceIcon(drawableResId = com.afternote.core.ui.R.drawable.core_ui_ic_tabler_search), - AfternoteSourceIcon(drawableResId = com.afternote.core.ui.R.drawable.core_ui_ic_link), + AfternoteSourceIcon.SocialNetwork, + AfternoteSourceIcon.GalleryAndFiles, ), onGoClick = {}, modifier = Modifier.padding(16.dp), diff --git a/konsist/src/test/kotlin/com/afternote/konsist/ReceiverHomeResourceKonsistTest.kt b/konsist/src/test/kotlin/com/afternote/konsist/ReceiverHomeResourceKonsistTest.kt index 1e914046cd..b6796cb447 100644 --- a/konsist/src/test/kotlin/com/afternote/konsist/ReceiverHomeResourceKonsistTest.kt +++ b/konsist/src/test/kotlin/com/afternote/konsist/ReceiverHomeResourceKonsistTest.kt @@ -23,7 +23,11 @@ class ReceiverHomeResourceKonsistTest { .files .withPackage("com.afternote.feature.receiver.presentation.home..") .assertFalse { file -> - file.imports.any { import -> FOREIGN_FEATURE_RESOURCE.matches(import.name) } + file.imports.any { import -> FOREIGN_FEATURE_RESOURCE.matches(import.name) } || + // import 만 보면 FQN 참조가 그대로 빠져나간다 — 이 패키지의 screenshotTest 가 + // 실제로 `com.afternote.core.ui.R.drawable.…` 를 FQN 으로 쓰는 손버릇이라, + // 같은 손버릇으로 형제 feature 의 R 을 쓰면 가드가 침묵한다. 본문도 본다. + FOREIGN_FEATURE_RESOURCE_REFERENCE.containsMatchIn(file.text) } } @@ -31,5 +35,9 @@ class ReceiverHomeResourceKonsistTest { /** 수신자 자신이 아닌 feature 의 `R` (또는 그 하위 참조). */ val FOREIGN_FEATURE_RESOURCE = Regex("""^com\.afternote\.feature\.(?!receiver\.)[a-z]+\.presentation\.R(\..*)?$""") + + /** 같은 참조를 본문 어디서든 — FQN 으로 쓴 자리를 잡는다. 주석·문자열 오탐은 감수한다. */ + val FOREIGN_FEATURE_RESOURCE_REFERENCE = + Regex("""com\.afternote\.feature\.(?!receiver\.)[a-z]+\.presentation\.R\.""") } } From 472f1be428f18b04184dd482edf840cee4a93eca Mon Sep 17 00:00:00 2001 From: Sadturtleman Date: Tue, 25 Aug 2026 07:37:55 +0900 Subject: [PATCH 3/4] =?UTF-8?q?test(receiver):=20=EC=A2=85=EB=A5=98=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=EC=BD=98=20=EA=B5=90=EC=A0=95=EC=97=90=20?= =?UTF-8?q?=EB=A7=9E=EC=B6=B0=20baseline=202=EC=A2=85=EC=9D=84=20=EA=B0=B1?= =?UTF-8?q?=EC=8B=A0=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit screenshotTest 가 종류 아이콘 자리에 검색·링크 아이콘을 넘기고 있어 baseline 에 엉뚱한 그림이 박혀 있었다. 실제 종류 아이콘으로 바꾼 렌더로 docker 에서 재생성한다. Co-Authored-By: Claude Opus 5 (1M context) --- ...HomeScreenSuccessScreenshot_748aa731_0.png | Bin 243520 -> 244353 bytes .../afternoteSectionScreenshot_748aa731_0.png | Bin 32944 -> 33365 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenSuccessScreenshot_748aa731_0.png b/feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenSuccessScreenshot_748aa731_0.png index 8bda1744f6593c444c202e463c39fcae26bf2107..980271244c1e37514f9d6020bee3985cc4886204 100644 GIT binary patch delta 16028 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 P?FgN#23HC$-wF9&-Q!E6 delta 15189 zcmc(Gc{tSX`!5nAOCdD|l}J>mv1UoOkdU2_lr>EDCEikzgi0u~j(sOPW1FPKzAu9j z*^Mk??9TJn=lA{nuHU)Nb)DsR&iQXHm*;-&=Xvhsb-(WW{glL1Ph<*sPWhawSH6!*58q`z*1LcFjk0#nNwIJh2(LU%C541m*o*}KmYeu!O7Y8>&k|^kWl6P zxc&Nkw?NoY$=LDLx>Hn4MKKOqx_(=0M+~kC@wG0qqA9LBoF@D!q>~hMNE%=*XXli= zuPb4=y}u*&{5qrOZexC-V&sR`STP~G3k!=|q|MFLi7ING==b+|JozYtQCq9>p#hi= zs0e3WmRxfBwvm&W$Kb;TX4c=S-cP8QC~O(2k=!RJRUb04ZEK{pSs?5`R9jG~M@O?ZTiCCCMOhRICR;G!_>A<&Q*%vddiU;|I3b}tGyI5@B+3agZO&GS zO~7a>Qln^tZ{*hY89D2pa7E`D6*V5^mXY+R%O2ZXFXw~uJR=m+j;QtiaAmwEEFFeqt)?b4g;?iV)E65mKg3r&CXN^=^;^hZ$8R%2Tw00+5@M1#KWOC0de_}LYdXmV zv<9nNw3UQ8y_lebpC8+uh<4^U*%sx81?CuXIKrjrf!|J8g`Cyb*CAXGRs+Z1W$RYo zIn%yx%^+F)eroxMBt?=K3);(w8ac};fN(G;YA9cb?cH50A7e5&)uGLJ@l z^m$7y!iV%N|885e;s+tVhWf@OwmJ*7?q;vJTt(+BQ@*d}*R1?d!br4|9Ng+H_hWO( z>WC_*ak)dZOm5C?3na^&{^{U~0tQCU?)hIabvqB&B(VJ?V@UUAbn{r|ykdQ4`rU)$ z7%)k8ohDEO^j#+;s%ubCh<{d7QqZd(w>*YUbxs-(dXoB)`K*>56;tc#F((X-eWlt} zG3&jB&+XysAFtYkSF6E?K=q`VS-fxDu3D)<1F4dO1o}y84`sHpDcTCqk-Y`^uK__J}7v1|U zvBCAJIA@jZ%<=%CpZ%(t=7~H$#Pu5b*xajY#Ofs#$dKKa=b`sbSd|<#((%V(WZ2%0 z^X~wwpV5~Zqzu{PG|vAFP$Z|3y(Dvm4q^y&U7Su*<|0-28Y7$ETe|Y@JFa2x`3W6& zp00O=H6dh^?Yh&Ihdt)|E^XY=zZENN^jiR5SeKe(6Xe6iHX;6}Ev@;xt$ec8;OEH{Oae>^|Jnlh}vC1##TS#~jEEC$3k zsFw!m@y61kT^%fe_H0g}1wIX8eLdI4?6~V#4tI`ECm5W`j^^TK^W6a^pZ~V3yHMi= z#}byD@KGM}7h%&${8{Df`%sjtJXLBhmx@WYu8{Vg5LTY@^re3}k<-1@k9M-~n{^hT z$33zKKigEtQLi=q;O2)`W-t*|abMsl_$r#Gn=@EfW*ti>@DBu}AOVPQBV4GP>DE8SI099=1|az~dWEdkJ$l zT(sbvP8h#Iu~wv1tRYyfZQk1K?Z&A#b3=Aq#A8GMck2Iy%^+xKJ={DrY= zUHA6UYV!s@5JYv|Tb&Ved3u{c3`Xj&&|C#ART zA(lkXxL=qCZtHbz&5*39UXDSYi-eGRyV=v56$P~vIX??iH>uKh7n}1v)8e!0*vzh7 zV#rRWB<{utU9!nZruwbNik^|Sz0EF`i?Yl&fSz=IDIDK@o+Fj&w>w#>u3FTunzpjD z(@{{lB{ovKU+U0b6{o!RF<&LwkGn(ejPqfNYuBS}mH z{jnel^%cGsbLgvxiz@YAow6m-UCKbHuO4n82PooPe&l_NOlK>OnhSEOGx(gXeu#;r zSBNV_^PTeT(i3}M+Jf1YjO9#wgDQwne@IFwo2{x~d~jI##SO}ssqj-G_pU#(XyxHG z=7B!nWE1t( zjTb1_`p!}Z!|rnDF+wmiX+y`E^DyFt9HtuyouCX3YPQW<(URXqRkYiWB~lQs{ua(Bg z=XXJPy-Iy`D^t&4Y4%N!?F>KUc0Hf^sVAH9kNzidXy)MJVJzs)&heb-U+<|RKOeSGZPMK2ZQow+vmo7`vW zd{}my-p@SUd*{YN0B=tA_%GR=Z%=?$jMF%~Z^D~+u87*$J zQan*P2-^?Fu3zBGY3|}M7>Npc zo`YSvle>poxQ`!SSIIo@dow`2&WK~{tjTMHT9x^_-+=3ffi7w!z2O?7s~~y2BPUrg zm}b?__Exz+R(Nek&~LY9Yc8iqit1HVAVv8Z+n*Dpx4pj7sUl}(40f|~Hd#szVhSl$@3p5 zv}_Qr1-Qu%g_{oM-|c=pw`qN$b=fe-yg!453JPDLRE^H|-nY&gYCccM)Z|;z@~cB$ z^LW%Tp^bIx!Ld+0QTls}7SzZv-R~TQ_9zfo@SN-O7e5)5BG%{VV+%`15u`1()h*kp z_6U)%x)7rVKNF|Z4-dz@|7N>v0kvNUUQ z*Eo~5Ih^Ynz7?WKnmu*^T1ZjWzrNbfHE~$D@dz4*Z3XJzK2QnVFc3~=17s`dCZ{L_Ojvj4xJ<&j2r&Bzz0lB6nOywINVu6rZ83b6aAIL zxri_(N%c#t+nuUB9}8-?evI(hp45jv-+Gh)F7Nv`sdFKAcO%Eo-=qHRL%Z1?mEuGO zO4Vw6o(R7WN%jv#kB2g2Z$oBZ( z-0fc#EQnWk8AirK&Sy()+v^CK%yyUh1NdBj%s?VZ*3*3a#74#bKH zCf817j*sS8pN{~Q482B5b?wY*L07id7hOF=zOM}VgHYV*2T<-9FqLANT9@M5GN7gR znZH?Bv0kBG=f_XsI;7)%+qI<%2~S&N@j#o_SoRUaqPhM83lCJLl5c-6M@9ZFJxoFIjTKmM?;K^bSoaX_Im*3NkIemgR*t{YtjK2;v%XtQFUdwN zv)Xdix+6&;-Fd9Gp`d;1HyJ?eD_5;s=<=;D7*ivCn7T8xBtTh!vPtwSJ0>MF>-6890n7`zA znWpuZeISoP@*WH1QQv}UHGAFkTOq{hyz)^O=lq+o6S@%`+m#tvA*|=2D$mHlgM)Ma zb8x~{Yi#MZ_e1$sh2xGRL@TwWj{Q^zD9Mu}?;Nq`91e*y#k{%Ueqz^YpjG zNfg*dWZpoqqkFc@zyBJdqM+zG^v}K8O$-G-rxkSQH=KO+-7(^EP4{q3bO1B~>^>Ah z8Dr-05!4J3)oS-9zJ^Wp=xQ;Rbrn~1tw#< zPzI=;G>sUVI_eycrP0MvF!gY2g6uFh>oisPSFeSl<`gSoRD;clFalf>99{2! z9D_-?Gd?jpmaksmXbb)R5vAjGytWPXh(DE#88sbWjIr?d{*y3V>1wkb&!$jMNkQ>O z7zEjz-b3Mu5%vtnzfKSMFDy5gHA^}_*;y*3Ml#E;Y4^}+_pjgS$z(1s<s&ETLr$kYd~AHeu9nk~uixOzM4WT&$CK8ivHjh#sfh@A4+&-; zt4hVRo?)w1U!K=ZXP!pxk^55Ip<5fG&r!kKZJWl+1~7&!$+Vy zL`7;7uo+;yHQOl+Eg8j;?hakrDq7vI@!~`V5DHwx}a*dgInz78r65Kwg|1$Ih)^-&8u1_a}T` z4;D%Io1UO-PKz<08~v0tZ!3{~7ibJ3kz0vHQGc+k=TrZ~%nwhYZzae`4XI-FU+FNv zLsy?s462aem}FuUFicBujfGTF@_1>Gh}vUv%y}&s8ox8(LKhR{eVE@LuVq4g&%DNF^ajxvjgLc)pC1ht&n&&D8miV8yjVDx z^PMdgcRDrbUPU}Y$4-wEooi7i_c+e12@z7Jav13}qo-vedroHRJ}%*0s7j$+cjLqR zV*AR;N4%Q+8K*06J?f*A1UI*$48um3`sKZ#_0!`q5vN>#`8n?Q)gZB75w3%&W!xtb zwZ#SKZ3vsXZQ)$EFVR;~UPg;d%QmXF)VgAlzwEGoC;s<246n-Tm+L|*$to4CjV~B5 zb%4F7+4vRODd!=4EXLoPxx9N*12c3+kQy1KOX1!oHBH^FfKz#OnCZSmAVZW~bys0< zLZ-y~AZX^Z)6ytb!I?o*Also}SSrGb`#J(&Ux5o6Sn;W$ z2T9twRS}}rd-i1RSKa9Mk$c=9K5c25R&}gB1#Z87rO5sRJ7;r&ngq@wtNq$i4I#D) zlvxWwH;a;~J?fXgaylzP?EorIiPDjcLFVvv{gO~~M@TzW$FW}LW-NGm40IUDs~Y|~ z+z{)c{=N8E?!zGV%nGt)%+#X`C={RG+>m|vQS#nOHpnn45gPvFA4_2#x=`uwS(Z$#3C5NC~~JbW9g*4!31STEFMc=Bb>kT=&C&S5_=Ns&mZOHfT!7 zsK)DY$IE_q-9jk&@*d21J1q^B=6LV#l1HlPz@y7-PDXb6H~Bl3SCjVvq6ynecvx@Q zzN%w?`S3NiuE`8Llt#Ud#$ed!9R#RWOA&HofLtrIy~pvx=j1b=h|G-c%IO5oYn~D# zZjs*Gi{&G&tm2yqDJ#0N7WnYQh z=TS<7O!?|}@;;l;3!XF|aiCYr2T|Ukf`NG)6Hl>;a+7)S)tp#a-?D8HN~-Xk3maXN z@#CwPN+z>%1`!QW=EFXKW&FpBmFqjFN~0E&ae2a(<$&ShXdO>pyzLJqxm|y&Tz`h1 ziraUg=u1I+?A7a788fLw6cEJ5Sk zl$0(pEse;=pr7&CB}$JFt$lQDTSL}Q|CPi6h0fWU{P@S%p%8QBsSJE!9yTM`epJvi zv?7-(+yv6+L<8oI16;O2&BpE$#Dm|98{6SuCxaZ~14^5kE*fOwla&yu`P|PbyWCIy zG~7EfiF)Eh?I0P`_BK0~pn&UW+|?kp{5VVKsNwagwKK1#MuH*%^A`~gnaLzya+7?V z>Z>t)<#X&y)KPx_{o-oncT1GPM^B1Crw5!j{)`hf8|J6sr0e7feLPPPz~9VO>Z4SZ z%_3_Rm}65`laHu$2XVghv->po;+q6I*1}9NX}WHV%;Js?!p!4p2E@!6;t^6}%AY znLIF!V%Ri}p-Zk!FV~R?Cpq`G-#`3{gq(c^9#1fgp@_N{g@)-Vn}rH$jxS`K#+f~A zOi;YvoxbsfFOLnKX_;?jQSM~cA!4BTcxCeY6ku${Iqsqrde9o(H*=pyPzKAXa(fY; z&d6l`$op{TCNvs$&$mn0to=sG`$rXFRIw$9W9Xhc!1Cxt#GOYU_2n9~Uc}|3dAqlg zq&pmpSWi3Dp^s126kMX9xNh*5*A=%Q+9#S$RMnL?uXBk^O`Te_d~RUseP8EE-JKPB z$&v>-2)v1!a$TEXz4j%Ol5aJC8W|M&J@U?`sCDVq!Y zNkXoGb^4f*;3GIwnnFfPilSrtolc_lOktC#m-t)B#92c2%v|PMnTyW85Si1pX|k*? z{z;u^Xn!;LLI&V9bG(l?-od0q2Pn$zuIai?eYD{xnx>t(xRo~Ct40POgJ!y=UTHC~I8nLygC-k2HP*~#t z3ezBCuPVCQ=L)ax8h@sesmzo`R}j9J)xD_Qo03=Y>)zWeY1w6aXH%d2of8yGoG9s@ zn><$@ygViAo_V5u>%kFw$Q0==Cg^1B;VH}HQnWI0c|OHkKg$wMRqbXqef>nb={ta)lGq=;)AZ); z{p=%<n34XT3(QM~i(MhUnxH|T7-t0ezzYWM>uu<6G zjd<6ZZd)aoLHnSE-SFfdm8692a z)X20nY+39fWuY?LYm8V>I%P`y1J+f}5>6AYyMsghG_Ll@n+4^Cn}vzmxrHptZY1-# zc($n3S0yO&eh@0LHB4gkOG&E#oP$f3N%$;h3E!9jt3{g~`H;lZOFsC4;U$lSDibYv0utnBe<V+$=>w`9NiF<1qQ`=+v{@PpRd+QeaB#Q=dume=s z{z=L;a2vkQ4xhiNaiInfFxFkEYE!_&UdH#Es8hboXML(F4#+U;AVyAW2so7e-fxRN zzQ`^=MjkntiamI}$+MBmuEU*q+SJIGI$EJkp&W4+bkjfl{uy(=F(lVvxXjTSp!w%q z>>Xl00A02wDLlJ1-4@R}uGE*-TmjDfjQg4ev|GCE221m5bPBCpoG}ofVxlf{9&<{+ z9d9oO5Uvv4F{lrWZM13#V;^usJIjRr-8iSJ?`!k@?Vmh`?53Wx-WCbw@%Pd`pWt=> zkHm;LnsEK9&)Q7V`2cPlR;wCSqpWD6{h@8FBU!PP+5gWoB|4n~>Gc7t)|bb41Mks; zy#p*3)?0&w7n_Hp@B4xP@`1kaj zUq=ZUer@Xqx7t!-*WCgbNE`n(3=iLpR~NGZnK=bhKncM?GPW;&w8dXzRS2eHVQhwG zGTp*Z%hSuvJc)ECW7F2~3Eop536&uHQP?{D#S4#P=YRDYS}^)pS3GU}_LjHxm@4uu z-MN))%0o0?rrbJQyXS<6t6d$h!%^gCZO#xMX*U<6huR%1H z_~7eys##OCCg^VIgHQT&_5MGXK8r2c1mS;Km4p3 zNZR~6_n^iD?L1ED4>D+)0rC8-8{K>+CY(N+VK-ubBOCG9%Ks7}e04!vDzdYiX zo#ixA^-(iUyi!Z*w#p2zhJiW2_3?}_~Fm!0jbKFl+cuW3O}nxJ;(eGL%!O2ia6E; z|1G;!9M7J}vHS0H0IX_zG+Hx={TUD);jYMJ<}fyk81Y@gh6E((tFKmx2-5=D9Z3AT zUJg5@YUrJgBs5NrL&zXkL>|zi&qNf$;A-@0xoc{a&et$bn{YslD!tLk_94ybyD2l} zWv1{wShRAPUiuRPEv-7HUYhz11X9EvP<5S$!h3TJUjuC2KKx*msYX<3QtxYX9`dAaP^>WRH(s6XI@9qzxsK>xJ{Kw5+%{} z{(|oP>3e{pQa~q-3ovk8cJs^%1?Dav8lb&mHAmj}Gf!*}F2XNEea5l87=wZ4g=Xyf){?b|%j7qui3EG0cuugCf;3(hW0D8fr&pfu zE3n|ltNO1tAzVNvqc{<6Ya8o25L7c!8rQWxNWj?R4X$-R;kUo7tF%@bnZ?XSCkd9KN|W zDqvxU6M|JJJ-CP)^~vnI3!|JPRqhOd6q@+Thd)nvuBNANUcD_no2ryK-uH@K2yezP zR0lzjn>k`I)C%Oqwb7e8YrkMAbI$#_p8Ot(v3jz%IgMc4(t~6lnX?fTK zg=mq|a=t`HU*ane6uL+7Lb0e`MlpO>afMx$A#~F#VQw%~QSpAb+}4cJp#(v*xu(v{ zaV2+1(E&nStawDP)} z5$|D=J1%eEBjD*O+!}vP;+TB}>357pRdrMew7)k~W7pLw6Aw~%2#v4o9N?s1$ug7I z)#siu%e^E{17O!#M;di0Z^gJV!NB1`1bpPCfC&f$HxbjaM@Pc#fV+gK?1QcXk@zbO zAg=S_t$6@afF05v-e2|CoIzBEk$m(GD4Pe0tT5Xh^NToU`PX}<8WmN;)B2nePOrH+ zV7c71>^T8Yx$V!;~QQswZ&*d%v5RW%c8Hk0A`CQ}}{`T7v`b;O;CcnRP z`U{=i$sXXBDf@lkTF)2UuQUR}PWv91Fb#5bx;-L%7R32ms4eH(O>0jMVOdg-Zitm@ zPM4JA1Hk2WZhj6ndtmqD{e_SqA8a;gGXiJIH~ws`S+Wl@Z(v=4NvYsg+^8wh-#e;} z4+sxsphfmR;vsn(QWtLN%6nXCi;!JbhPCIT08 zMlZvWWp6Yy;8}Mz+zu%mBsdl--)P{r#w*I^mEX`$jFt56S~n{r6y@W+aZ8aGZ{^}pA3#ZT${NsU z@&`2nvGrqS^YJ2MS|mJ8#v?yEa)~|f)A0oP!xy|~@RhD9$qA4<=#UIpzNJb6 zhA6r06-F;vrtu}H zaW%vBBW<42FY%sv{iwEvWRb6O%=F=SM?D};+I^1gKZxTJBWODUa5d7)smkT92mSI| zm;=;zwTAKvlO*si&N&i1ewO!xb!*;Y-#%RO*UK;Bf^ffuBFX(9eQb@Cy>2ygdEQM~ z=IH}yT-DQ1_@Yta>BkqH7`dc-MlO~59M$P8q%Ti4FUUSes8}o;PFeI=9Aa;o{pG}J zfT3av$^`N#26+jf{x%UMbbR?RE=pP$yxO_JJP#sdi{tTD8F&yGNW5fLbs+K9mFy7F z5!kff1z7$15>n)tLjps+=ZM#G?!VIk(*ETuCPOHhbU??8bZ(S8z~nAbQ&S_ds+kZS z7zg^lRn_U%b(dF6_zg7Tsvt(-(m98b7g-sAh<^(UIJta>{7U{~6a(%9mcia)9L+Go zlB6kjs+#5ZEPu5yQZ2Er(uM1QP2bTAQKT&;EMrGndTe4fL6a1 z?bcgK-yYXyna~D?GnA}GrtOvLlU?cH>pBRbIW)+1C5*|O8%Q)+Q-#{`Ze40{zZfE# z^+nx?{@f-lw2VIh(D(Otrsbkh>J_SND zb0dYsX#qWY#S%YWf!CYM5zr^E+f9N$Rr1^PL9&#-UEXk8-#|JTUR_wB2pCoUBerF?}9^HDK(T|zed%4?&%c3jfT zFBm^ZN~?}b3U= z`n<9|e6oD`c2qv7C99mUkATpC@RzW5N|>?)fN4C0!#hB6A47LUFv}`Jwh!+y>}b6< z(>WD#K0%~imi+0Xm_sx?aN`YvcPl`k&IvwqS@$kSR4>&IyDbihJ?1fvNl;7!2$|#r zNjhY{7!Jr#=fJ_W*1zTkUXFxL0MtNiodSbGx1Uqj_J0Xs9l>4vVScClSiv(e($o=( z3B0q!7=INkqu7LjH)60bk7HXhRP1Q!x!mX=_h*6DS<4g6ad4}CnS3Y8qv92I=yjVu zuWgoTIRLr&7h?`XFi_P#3Fjj)xBv!BOb1nVKzqUI;9CRjj&EHuTwwnBRe}}YnP7hI zOB^l(1(fj^l}`H02LV`At4TvKWr6)Eti=J^oD%>e7Dq9670q*WcNT2qHK=JwxjcJ+ zf*W?YUI|F?5V8xzOG;Bo4x;IEY>ziFa=C$x7(~o(#QocIF660&{$vif+Bj z%J=i<5hOiRcQA!KeufQ5?a(=>VlNQTF*izM!Y)~ZiE&U=Lrx-~e6&4_`c`$hYUb=` zz}}HBu#sA>wx1(n^knxoCOT_-KZW`L5=bS*QmZtojS&b7*n;B>sQAvzojS%{5M+at z@#+{!Jx%iX0J@=->q8E$t6IW^7u6uw!=fLor9QX=6QCE0HLl%_MS3q-mrox>mwiom} zG+`PnY&YCMnpPTyniO-Pz%S-9!H~AyK=UYl-J2Lwvxf@@4@@htI;WeNr5RtC?64O`{JO^zXAo!yeGO68=v-aA85urjgBQD7GjJe^K7?>xyA1=SQ zp=3lbojvJx5o|*d%kY<>{B&(I(;hI-FxN~>XT(gWOi#*b$&w+1^2ZY@-N2WWYzZ2( zmGdXzRVdgF!RKkH))4JXiRSgiVNPlJ;DnfjXWKPvcdvEHFwuJ@JXujI@NwPQXqFd; zN7Zx>KZKY50?-+JYvaad%{F%-`HccjaqgJljMPjK{b5cYr?8`U5t_JQZeU=pEuzim zsGt|tSveHd)OrE6YzZTuGoR zjJ+K%%|{ia5|!{XQwI|`4Zn9iGk9;%@OKA!$rR;QhzkaBlA6(!RMR0RJ#FdCtVxj# z%{y0V4%?b8Mo!h1GSfr4!ZGl0JC+|`pKPAi+~?Zi3cCn_qk8vu8OAi3PV!CCn;Qy> z$(FpvG2Ds~z1c#TNrj(#wP5bh8cd$UbE+XMXXm@D1bU3B-0c1gfYlT`56YYH9&SQx zl(av(q%M_gsh6g0cln*=1XSKwV5Kx@3dpzuXvYUpy;7fl$r~;Ln&eNt!MI%D_JQRh z7Cb)wWv#C_^$g#rn{=Sk&Wla96rjI^`l6KfZ>R9F?FlyDhvyT#0c?YL=Rof(PFRwG zE5I^w+_F9&U`AA6*A(h@98wv!=UL48kNp8A3b_9M=gkgW?Em#|2pG%%myQ3~SKvRL d-b9wLu`l$l%f73CQ5L=%HRan%`8Vzb{x`^CdZz#Y diff --git a/feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTestKt/afternoteSectionScreenshot_748aa731_0.png b/feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTestKt/afternoteSectionScreenshot_748aa731_0.png index 17c81fda53c1c7b0b62331f593420611285d66cb..c22c17f6480b4fcadca28fd4067a23755363c248 100644 GIT binary patch literal 33365 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 Date: Wed, 26 Aug 2026 16:28:06 +0900 Subject: [PATCH 4/4] =?UTF-8?q?style(receiver):=20screenshotTest=20import?= =?UTF-8?q?=20=EC=88=9C=EC=84=9C=EB=A5=BC=20=EC=82=AC=EC=A0=84=EC=88=9C?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=90=98=EB=8F=8C=EB=A6=B0=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #926 의 아이콘 core:ui 승격으로 갈아 낀 import 가 standard:import-ordering 을 깼다. 컴파일은 통과하지만 ktlintScreenshotTestSourceSetCheck 가 잡는 자리라 CI 가 red 였다 — 컴파일과 ktlint 는 다른 태스크다. ktlintCheck · compileDebugScreenshotTestKotlin 둘 다 BUILD SUCCESSFUL. Co-Authored-By: Claude Opus 5 (1M context) --- .../presentation/home/ReceiverHomeScreenScreenshotTest.kt | 2 +- .../home/component/AfternoteSectionScreenshotTest.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTest.kt b/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTest.kt index 1d9eb3a68b..d31708a735 100644 --- a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTest.kt +++ b/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTest.kt @@ -2,8 +2,8 @@ package com.afternote.feature.receiver.presentation.home import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.afternote.core.ui.theme.AfternoteTheme import com.afternote.core.ui.icon.AfternoteSourceIcon +import com.afternote.core.ui.theme.AfternoteTheme import com.afternote.feature.receiver.presentation.home.model.MindRecordSummary import com.afternote.feature.receiver.presentation.home.model.ReceiverHomeUiState import com.afternote.feature.receiver.presentation.home.model.SenderMessage diff --git a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTest.kt b/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTest.kt index d0d2b945f9..f8d11804c4 100644 --- a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTest.kt +++ b/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTest.kt @@ -5,8 +5,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.afternote.core.ui.theme.AfternoteTheme import com.afternote.core.ui.icon.AfternoteSourceIcon +import com.afternote.core.ui.theme.AfternoteTheme import com.android.tools.screenshot.PreviewTest @PreviewTest