diff --git a/app/src/androidTest/java/com/afternote/afternote_fe/AppAndReceiverCompletionAndroidTest.kt b/app/src/androidTest/java/com/afternote/afternote_fe/AppAndReceiverCompletionAndroidTest.kt index 93a05984c3..59134b050d 100644 --- a/app/src/androidTest/java/com/afternote/afternote_fe/AppAndReceiverCompletionAndroidTest.kt +++ b/app/src/androidTest/java/com/afternote/afternote_fe/AppAndReceiverCompletionAndroidTest.kt @@ -49,6 +49,11 @@ import com.afternote.feature.afternote.domain.model.LeaveMessageBlock import com.afternote.feature.afternote.presentation.receiver.detail.ReceivedAfternoteDetailRoute import com.afternote.feature.afternote.presentation.receiver.detail.ReceivedAfternoteDetailViewModel import com.afternote.feature.home.presentation.HomeTabActions +import com.afternote.feature.home.presentation.receiver.ReceiverHomeActions +import com.afternote.feature.home.presentation.receiver.ReceiverHomeEvent +import com.afternote.feature.home.presentation.receiver.ReceiverHomeScreen +import com.afternote.feature.home.presentation.receiver.ReceiverHomeViewModel +import com.afternote.feature.home.presentation.receiver.model.ReceiverHomeUiState import com.afternote.feature.mindrecord.domain.model.ReceiverMindRecords import com.afternote.feature.mindrecord.domain.repository.WeeklyReportRepository import com.afternote.feature.mindrecord.domain.testing.FakeMindRecordReceiverRepository @@ -74,11 +79,6 @@ import com.afternote.feature.receiver.presentation.deliveryverification.Document import com.afternote.feature.receiver.presentation.deliveryverification.DocumentUploadViewModel import com.afternote.feature.receiver.presentation.deliveryverification.IdentityVerificationEmailScreen import com.afternote.feature.receiver.presentation.deliveryverification.IdentityVerificationViewModel -import com.afternote.feature.receiver.presentation.home.ReceiverHomeActions -import com.afternote.feature.receiver.presentation.home.ReceiverHomeEvent -import com.afternote.feature.receiver.presentation.home.ReceiverHomeScreen -import com.afternote.feature.receiver.presentation.home.ReceiverHomeViewModel -import com.afternote.feature.receiver.presentation.home.model.ReceiverHomeUiState import com.afternote.feature.receiver.presentation.navigation.ReceiverNavActions import com.afternote.feature.receiver.presentation.navigation.model.ReceiverRoute import com.afternote.feature.timeletter.domain.model.ReceivedTimeLetterList @@ -329,10 +329,10 @@ class ReceiverRuntimeCompletionAndroidTest { senderMessage = Result.failure(offline), ) composeRule - .onNodeWithText(context.getString(ReceiverR.string.receiver_home_error_message)) + .onNodeWithText(context.getString(HomeR.string.home_receiver_error_message)) .assertIsDisplayed() composeRule - .onNodeWithText(context.getString(ReceiverR.string.receiver_home_retry)) + .onNodeWithText(context.getString(HomeR.string.home_receiver_retry)) .performClick() composeRule.waitUntil(timeoutMillis = 5_000) { homeCallCounts().all { it == 2 } } @@ -365,12 +365,12 @@ class ReceiverRuntimeCompletionAndroidTest { ) composeRule - .onNodeWithText(context.getString(ReceiverR.string.receiver_home_sender_record_title, "이발신")) + .onNodeWithText(context.getString(HomeR.string.home_receiver_sender_record_title, "이발신")) .assertIsDisplayed() composeRule.onNodeWithText("언제나 응원할게").assertIsDisplayed() composeRule .onAllNodes( - hasText(context.getString(ReceiverR.string.receiver_home_section_count_unavailable)), + hasText(context.getString(HomeR.string.home_receiver_section_count_unavailable)), ).apply { assertCountEquals(2) this[0].performScrollTo().assertIsDisplayed() diff --git a/app/src/main/java/com/afternote/afternote_fe/navigation/AppNavigation.kt b/app/src/main/java/com/afternote/afternote_fe/navigation/AppNavigation.kt index db20398b33..64c12f60f6 100644 --- a/app/src/main/java/com/afternote/afternote_fe/navigation/AppNavigation.kt +++ b/app/src/main/java/com/afternote/afternote_fe/navigation/AppNavigation.kt @@ -32,9 +32,9 @@ import com.afternote.feature.afternote.presentation.author.navigation.model.Afte import com.afternote.feature.afternote.presentation.receiver.navigation.receivedAfternoteNavGraph import com.afternote.feature.home.presentation.HomeTabScreen import com.afternote.feature.home.presentation.HomeTabViewModel +import com.afternote.feature.home.presentation.receiver.ReceiverHomeEntry import com.afternote.feature.mindrecord.presentation.navigation.mindRecordNavGraph import com.afternote.feature.onboarding.presentation.navigation.onboardingNavGraph -import com.afternote.feature.receiver.presentation.home.ReceiverHomeEntry import com.afternote.feature.receiver.presentation.navigation.model.ReceiverRoute import com.afternote.feature.receiver.presentation.navigation.receiverNavGraph import com.afternote.feature.setting.presentation.navigation.settingNavGraph diff --git a/app/src/main/java/com/afternote/afternote_fe/navigation/AppNavigationActions.kt b/app/src/main/java/com/afternote/afternote_fe/navigation/AppNavigationActions.kt index b5e4ee9748..8f543b3283 100644 --- a/app/src/main/java/com/afternote/afternote_fe/navigation/AppNavigationActions.kt +++ b/app/src/main/java/com/afternote/afternote_fe/navigation/AppNavigationActions.kt @@ -14,11 +14,11 @@ import com.afternote.feature.afternote.presentation.author.navigation.model.SELE import com.afternote.feature.afternote.presentation.receiver.navigation.ReceivedAfternoteNavActions import com.afternote.feature.afternote.presentation.receiver.navigation.model.ReceivedAfternoteRoute import com.afternote.feature.home.presentation.HomeTabActions +import com.afternote.feature.home.presentation.receiver.ReceiverHomeActions import com.afternote.feature.mindrecord.presentation.navigation.MindRecordNavActions import com.afternote.feature.mindrecord.presentation.navigation.MindRecordRoute import com.afternote.feature.onboarding.presentation.navigation.OnboardingNavActions import com.afternote.feature.onboarding.presentation.navigation.OnboardingRoute -import com.afternote.feature.receiver.presentation.home.ReceiverHomeActions import com.afternote.feature.receiver.presentation.navigation.ReceiverNavActions import com.afternote.feature.receiver.presentation.navigation.model.ReceiverRoute import com.afternote.feature.setting.presentation.navigation.SettingNavActions diff --git a/feature/home/presentation/build.gradle.kts b/feature/home/presentation/build.gradle.kts index 578ffe8ae0..fb4e6b31ca 100644 --- a/feature/home/presentation/build.gradle.kts +++ b/feature/home/presentation/build.gradle.kts @@ -20,6 +20,15 @@ dependencies { implementation(projects.core.ui) implementation(projects.feature.mindrecord.domain) implementation(projects.feature.mindrecord.presentation) + // 수신자 홈이 3 피처를 모으는 집계 대시보드라 생긴 의존 (#1462). + // domain 은 아래 방향이라 순환이 없다. receiver.presentation 은 실패 계측 + // (ReceiverFailureStage·recordReceiverFailure) 하나 때문인데, 그 계측은 수신자 + // 진입 인프라의 일부라 feature:receiver 에 남는 편이 맞다 — mindrecord.presentation + // 을 이미 같은 이유로 의존하고 있다. + implementation(projects.feature.receiver.domain) + implementation(projects.feature.receiver.presentation) + implementation(projects.feature.afternote.domain) + implementation(projects.feature.timeletter.domain) implementation(libs.androidx.lifecycle.viewmodel.ktx) implementation(libs.androidx.lifecycle.runtime.compose) @@ -27,6 +36,10 @@ dependencies { testImplementation(libs.coroutines.test) testImplementation(testFixtures(projects.core.domain)) testImplementation(testFixtures(projects.feature.mindrecord.domain)) + // 수신자 홈 테스트가 쓰던 fixture·스캐너를 함께 옮긴다 (#1462). + testImplementation(testFixtures(projects.feature.receiver.domain)) + testImplementation(testFixtures(projects.feature.timeletter.domain)) + testImplementation(testFixtures(projects.core.ui)) // 자리표시자가 화면에 도달하는지는 실제로 그려 봐야 확인된다 (#562). // 로딩 중 배지가 «미완료» 로 확정되지 않는지는 실제로 그려 봐야 확인된다 (#698). diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeActions.kt b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeActions.kt similarity index 86% rename from feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeActions.kt rename to feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeActions.kt index 2c3b63f735..2f36d99ec2 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeActions.kt +++ b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeActions.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home +package com.afternote.feature.home.presentation.receiver /** * 수신자 홈에서 외부 라우팅으로 빠지는 액션 묶음. diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeEntry.kt b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeEntry.kt similarity index 95% rename from feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeEntry.kt rename to feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeEntry.kt index 389c53a300..4b3c875167 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeEntry.kt +++ b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeEntry.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home +package com.afternote.feature.home.presentation.receiver import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeEvent.kt b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeEvent.kt similarity index 85% rename from feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeEvent.kt rename to feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeEvent.kt index 2dd80b2eec..de5fc81922 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeEvent.kt +++ b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeEvent.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home +package com.afternote.feature.home.presentation.receiver /** 수신자 홈 화면 사용자 이벤트. */ sealed interface ReceiverHomeEvent { diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreen.kt b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeScreen.kt similarity index 90% rename from feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreen.kt rename to feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeScreen.kt index 6f47593dbd..8170474c03 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreen.kt +++ b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeScreen.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home +package com.afternote.feature.home.presentation.receiver import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -31,13 +31,13 @@ import com.afternote.core.ui.popup.Popup import com.afternote.core.ui.popup.PopupType import com.afternote.core.ui.theme.AfternoteDesign import com.afternote.core.ui.topbar.HomeTopBar -import com.afternote.feature.receiver.presentation.R -import com.afternote.feature.receiver.presentation.home.component.AfternoteSection -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.ReceiverDownloadState -import com.afternote.feature.receiver.presentation.home.model.ReceiverHomeUiState +import com.afternote.feature.home.presentation.R +import com.afternote.feature.home.presentation.receiver.component.AfternoteSection +import com.afternote.feature.home.presentation.receiver.component.MindRecordSection +import com.afternote.feature.home.presentation.receiver.component.SenderMessageHeroCard +import com.afternote.feature.home.presentation.receiver.component.TimeLetterSection +import com.afternote.feature.home.presentation.receiver.model.ReceiverDownloadState +import com.afternote.feature.home.presentation.receiver.model.ReceiverHomeUiState /** * 수신자 홈 화면 — 한 마디 + 마음의 기록·타임레터·애프터노트 카드 + 모든 기록 내려받기 버튼. @@ -116,7 +116,7 @@ private fun SuccessContent( // senderName 가 blank 면 헤더·Hero 카드 모두 안 그림 — "故 님이 남기신 기록" 같은 깨진 문구 회피. if (state.senderName.isNotBlank()) { Text( - text = stringResource(R.string.receiver_home_sender_record_title, state.senderName), + text = stringResource(R.string.home_receiver_sender_record_title, state.senderName), style = AfternoteDesign.typography.h2, color = AfternoteDesign.colors.gray9, ) @@ -142,7 +142,7 @@ private fun SuccessContent( onGoClick = actions.onNavigateToAfternote, ) AfternoteButton( - text = stringResource(R.string.receiver_home_download_all_button), + text = stringResource(R.string.home_receiver_download_all_button), onClick = { onEvent(ReceiverHomeEvent.RequestDownload) }, type = AfternoteButtonType.Default, ) @@ -171,7 +171,7 @@ private fun DownloadDialogHost( if (showDialog) { Popup( type = PopupType.Variant2, - message = stringResource(R.string.receiver_home_download_all_dialog_message), + message = stringResource(R.string.home_receiver_download_all_dialog_message), onConfirm = { onEvent(ReceiverHomeEvent.ConfirmDownload) }, onDismiss = { onEvent(ReceiverHomeEvent.DismissDownload) }, isLoading = state is ReceiverDownloadState.InProgress, @@ -211,14 +211,14 @@ private fun ErrorState( ) { Column(horizontalAlignment = Alignment.CenterHorizontally) { Text( - text = stringResource(R.string.receiver_home_error_message), + text = stringResource(R.string.home_receiver_error_message), style = AfternoteDesign.typography.bodySmallR, color = AfternoteDesign.colors.gray7, ) Spacer(modifier = Modifier.height(16.dp)) TextButton(onClick = onRetry) { Text( - text = stringResource(R.string.receiver_home_retry), + text = stringResource(R.string.home_receiver_retry), style = AfternoteDesign.typography.captionLargeB, color = AfternoteDesign.colors.gray9, ) diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeViewModel.kt b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeViewModel.kt similarity index 96% rename from feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeViewModel.kt rename to feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeViewModel.kt index 87437f10d4..9088836d69 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeViewModel.kt +++ b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeViewModel.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home +package com.afternote.feature.home.presentation.receiver import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -6,15 +6,15 @@ import com.afternote.core.common.reporting.ErrorReporter import com.afternote.core.common.result.runCatchingCancellable import com.afternote.core.ui.icon.AfternoteSourceIcon import com.afternote.feature.afternote.domain.AfternoteType +import com.afternote.feature.home.presentation.R +import com.afternote.feature.home.presentation.receiver.model.MindRecordSummary +import com.afternote.feature.home.presentation.receiver.model.ReceiverDownloadState +import com.afternote.feature.home.presentation.receiver.model.ReceiverHomeUiState +import com.afternote.feature.home.presentation.receiver.model.SenderMessage 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.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.receiver.presentation.reporting.ReceiverFailureStage import com.afternote.feature.receiver.presentation.reporting.recordReceiverFailure import com.afternote.feature.timeletter.domain.repository.ReceiverTimeLetterRepository @@ -205,13 +205,13 @@ class ReceiverHomeViewModel .onFailure { e -> errorReporter.recordReceiverFailure(ReceiverFailureStage.RECEIVED_EXPORT_SAVE, e) updateDownload( - ReceiverDownloadState.Failed(R.string.receiver_home_download_all_save_failed), + ReceiverDownloadState.Failed(R.string.home_receiver_download_all_save_failed), ) } }.onFailure { e -> errorReporter.recordReceiverFailure(ReceiverFailureStage.RECEIVED_EXPORT_DOWNLOAD, e) updateDownload( - ReceiverDownloadState.Failed(R.string.receiver_home_download_all_failed), + ReceiverDownloadState.Failed(R.string.home_receiver_download_all_failed), ) } } diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSection.kt b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/AfternoteSection.kt similarity index 87% rename from feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSection.kt rename to feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/AfternoteSection.kt index fe1d8b69de..e210950be4 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSection.kt +++ b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/AfternoteSection.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.compose.foundation.Image import androidx.compose.foundation.background @@ -22,7 +22,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.afternote.core.ui.icon.AfternoteSourceIcon import com.afternote.core.ui.theme.AfternoteDesign -import com.afternote.feature.receiver.presentation.R +import com.afternote.feature.home.presentation.R private const val MAX_VISIBLE_ICONS = 4 private val ICON_SIZE = 32.dp @@ -41,14 +41,14 @@ fun AfternoteSection( ) { HomeSectionCard( modifier = modifier, - title = stringResource(R.string.receiver_home_afternote_section_title), - description = stringResource(R.string.receiver_home_afternote_section_desc), + title = stringResource(R.string.home_receiver_afternote_section_title), + description = stringResource(R.string.home_receiver_afternote_section_desc), countLine = rememberCountLine( - prefix = stringResource(R.string.receiver_home_afternote_count_prefix, countText(totalCount)), - suffix = stringResource(R.string.receiver_home_afternote_count_suffix), + prefix = stringResource(R.string.home_receiver_afternote_count_prefix, countText(totalCount)), + suffix = stringResource(R.string.home_receiver_afternote_count_suffix), ), - buttonText = stringResource(R.string.receiver_home_afternote_section_button), + buttonText = stringResource(R.string.home_receiver_afternote_section_button), onButtonClick = onGoClick, middleContent = { if (totalCount == null) return@HomeSectionCard @@ -108,7 +108,7 @@ private fun ExtraCountChip(count: Int) { contentAlignment = Alignment.Center, ) { Text( - text = stringResource(R.string.receiver_home_afternote_extra_count, count), + text = stringResource(R.string.home_receiver_afternote_extra_count, count), style = AfternoteDesign.typography.captionLargeB, color = AfternoteDesign.colors.white, ) diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/HomeSectionCard.kt b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/HomeSectionCard.kt similarity index 95% rename from feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/HomeSectionCard.kt rename to feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/HomeSectionCard.kt index 423b3a46e3..78edf29b44 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/HomeSectionCard.kt +++ b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/HomeSectionCard.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.compose.foundation.background import androidx.compose.foundation.border @@ -20,7 +20,7 @@ import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.dp import com.afternote.core.ui.theme.AfternoteDesign -import com.afternote.feature.receiver.presentation.R +import com.afternote.feature.home.presentation.R /** * 마음의 기록·타임레터·애프터노트 카드의 공통 컨테이너. @@ -96,4 +96,4 @@ fun rememberCountLine( * 두 번 적혀 한쪽만 고쳐질 자리가 된다. */ @Composable -fun countText(count: Int?): String = count?.toString() ?: stringResource(R.string.receiver_home_section_count_unavailable) +fun countText(count: Int?): String = count?.toString() ?: stringResource(R.string.home_receiver_section_count_unavailable) diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/MindRecordSection.kt b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/MindRecordSection.kt similarity index 73% rename from feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/MindRecordSection.kt rename to feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/MindRecordSection.kt index bdbb94fad2..4f46cfcd69 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/MindRecordSection.kt +++ b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/MindRecordSection.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row @@ -9,8 +9,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import com.afternote.feature.receiver.presentation.R -import com.afternote.feature.receiver.presentation.home.model.MindRecordSummary +import com.afternote.feature.home.presentation.R +import com.afternote.feature.home.presentation.receiver.model.MindRecordSummary import com.afternote.core.ui.R as CoreUiR /** @@ -22,18 +22,18 @@ fun MindRecordSection( onGoClick: () -> Unit, modifier: Modifier = Modifier, ) { - val totalLabel = stringResource(R.string.receiver_home_mindrecord_total_label) + val totalLabel = stringResource(R.string.home_receiver_mindrecord_total_label) HomeSectionCard( modifier = modifier, - title = stringResource(R.string.receiver_home_mindrecord_section_title), - description = stringResource(R.string.receiver_home_mindrecord_section_desc), + title = stringResource(R.string.home_receiver_mindrecord_section_title), + description = stringResource(R.string.home_receiver_mindrecord_section_desc), countLine = rememberCountLine( prefix = - stringResource(R.string.receiver_home_mindrecord_count_prefix, countText(summary?.totalCount)), - suffix = stringResource(R.string.receiver_home_mindrecord_count_suffix), + stringResource(R.string.home_receiver_mindrecord_count_prefix, countText(summary?.totalCount)), + suffix = stringResource(R.string.home_receiver_mindrecord_count_suffix), ), - buttonText = stringResource(R.string.receiver_home_mindrecord_section_button), + buttonText = stringResource(R.string.home_receiver_mindrecord_section_button), onButtonClick = onGoClick, middleContent = { // 조회 실패에도 카드를 숨기지 않는다 — 섹션 레이아웃 유지가 시안 확정값이고, @@ -45,14 +45,14 @@ fun MindRecordSection( ) { MindRecordStatCard( iconResId = CoreUiR.drawable.core_ui_ic_mindrecord, - label = stringResource(R.string.receiver_home_mindrecord_daily_question), + label = stringResource(R.string.home_receiver_mindrecord_daily_question), totalLabel = totalLabel, count = summary?.dailyQuestionCount, modifier = Modifier.weight(1f), ) MindRecordStatCard( iconResId = CoreUiR.drawable.core_ui_ic_diary, - label = stringResource(R.string.receiver_home_mindrecord_diary), + label = stringResource(R.string.home_receiver_mindrecord_diary), totalLabel = totalLabel, count = summary?.diaryCount, modifier = Modifier.weight(1f), diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/MindRecordStatCard.kt b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/MindRecordStatCard.kt similarity index 95% rename from feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/MindRecordStatCard.kt rename to feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/MindRecordStatCard.kt index 252204c62c..0d1a4f181d 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/MindRecordStatCard.kt +++ b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/MindRecordStatCard.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.compose.foundation.background import androidx.compose.foundation.border @@ -21,7 +21,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import com.afternote.core.ui.theme.AfternoteDesign -import com.afternote.feature.receiver.presentation.R +import com.afternote.feature.home.presentation.R /** * 마음의 기록 섹션 안에 들어가는 작은 통계 카드: 아이콘 → 라벨 → TOTAL → 카운트 (수직 정렬). @@ -78,7 +78,7 @@ fun MindRecordStatCard( ) Spacer(modifier = Modifier.height(2.dp)) Text( - text = count?.toString() ?: stringResource(R.string.receiver_home_section_count_unavailable), + text = count?.toString() ?: stringResource(R.string.home_receiver_section_count_unavailable), style = AfternoteDesign.typography.h3, color = AfternoteDesign.colors.gray9, ) diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/SectionGoButton.kt b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/SectionGoButton.kt similarity index 96% rename from feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/SectionGoButton.kt rename to feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/SectionGoButton.kt index b10c28e694..d77cbb2dcf 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/SectionGoButton.kt +++ b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/SectionGoButton.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.compose.foundation.background import androidx.compose.foundation.clickable diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/SenderMessageHeroCard.kt b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/SenderMessageHeroCard.kt similarity index 93% rename from feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/SenderMessageHeroCard.kt rename to feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/SenderMessageHeroCard.kt index ca4bb5026e..bf1e8eecb9 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/SenderMessageHeroCard.kt +++ b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/SenderMessageHeroCard.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement @@ -19,7 +19,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.afternote.core.ui.theme.AfternoteDesign -import com.afternote.feature.receiver.presentation.R +import com.afternote.feature.home.presentation.R /** * 고인이 남긴 한 마디 + 작성일 + 본문을 보여주는 그라데이션 카드. @@ -45,7 +45,7 @@ fun SenderMessageHeroCard( verticalAlignment = Alignment.CenterVertically, ) { Text( - text = stringResource(R.string.receiver_home_hero_title, senderName), + text = stringResource(R.string.home_receiver_hero_title, senderName), style = AfternoteDesign.typography.bodySmallB, color = AfternoteDesign.colors.gray7, ) diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/TimeLetterSection.kt b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/TimeLetterSection.kt similarity index 58% rename from feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/TimeLetterSection.kt rename to feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/TimeLetterSection.kt index e8e8174962..4f92f7c3dd 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/component/TimeLetterSection.kt +++ b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/component/TimeLetterSection.kt @@ -1,9 +1,9 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import com.afternote.feature.receiver.presentation.R +import com.afternote.feature.home.presentation.R /** 타임레터 섹션 — 단순 카드. */ @Composable @@ -14,15 +14,15 @@ fun TimeLetterSection( ) { HomeSectionCard( modifier = modifier, - title = stringResource(R.string.receiver_home_timeletter_section_title), - description = stringResource(R.string.receiver_home_timeletter_section_desc), + title = stringResource(R.string.home_receiver_timeletter_section_title), + description = stringResource(R.string.home_receiver_timeletter_section_desc), countLine = rememberCountLine( prefix = - stringResource(R.string.receiver_home_timeletter_count_prefix, countText(totalCount)), - suffix = stringResource(R.string.receiver_home_timeletter_count_suffix), + stringResource(R.string.home_receiver_timeletter_count_prefix, countText(totalCount)), + suffix = stringResource(R.string.home_receiver_timeletter_count_suffix), ), - buttonText = stringResource(R.string.receiver_home_timeletter_section_button), + buttonText = stringResource(R.string.home_receiver_timeletter_section_button), onButtonClick = onGoClick, ) } diff --git a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/model/ReceiverHomeUiState.kt b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/model/ReceiverHomeUiState.kt similarity index 96% rename from feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/model/ReceiverHomeUiState.kt rename to feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/model/ReceiverHomeUiState.kt index 003442b4bf..50ddf80a0c 100644 --- a/feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/model/ReceiverHomeUiState.kt +++ b/feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/model/ReceiverHomeUiState.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.model +package com.afternote.feature.home.presentation.receiver.model import androidx.annotation.StringRes import androidx.compose.runtime.Immutable diff --git a/feature/home/presentation/src/main/res/values/strings.xml b/feature/home/presentation/src/main/res/values/strings.xml index 496404c40f..2ca0700e39 100644 --- a/feature/home/presentation/src/main/res/values/strings.xml +++ b/feature/home/presentation/src/main/res/values/strings.xml @@ -13,4 +13,36 @@ 다시 시도 – + + + 故 %1$s님이 남기신 기록 + %1$s님의 한 마디 + TOTAL + 데일리 질문 + 일기 + +%1$d + 마음의 기록 + 고인의 일상적인 생각과 감정, 일기들입니다. + 마음의 기록 확인하러 가기 + 타임레터 + 고인이 특별한 날에\n수신자님에게 작성한 편지입니다. + 라이프 이벤트 레터 확인하러 가기 + 애프터노트 + 고인이 사후 정리하고자 하는 데이터입니다. + 애프터노트 확인하러 가기 + – + 모든 기록 내려받기 + 모든 기록을 내려받으시겠습니까? + 모든 기록 내려받기에 실패했습니다. + 파일 저장에 실패했습니다. + + 정보를 불러오지 못했습니다. + 다시 시도 + "%1$s개 " + 마음의 기록이 있습니다. + "%1$s개 " + 라이프 이벤트 레터가 있습니다. + %1$s개 + 의 애프터노트가 있습니다. diff --git a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTest.kt b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeScreenScreenshotTest.kt similarity index 91% rename from feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTest.kt rename to feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeScreenScreenshotTest.kt index d8b2e702c9..75989ec771 100644 --- a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTest.kt +++ b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeScreenScreenshotTest.kt @@ -1,12 +1,12 @@ -package com.afternote.feature.receiver.presentation.home +package com.afternote.feature.home.presentation.receiver import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview 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 +import com.afternote.feature.home.presentation.receiver.model.MindRecordSummary +import com.afternote.feature.home.presentation.receiver.model.ReceiverHomeUiState +import com.afternote.feature.home.presentation.receiver.model.SenderMessage import com.android.tools.screenshot.PreviewTest /** baseline 은 화면 픽셀만 본다 — 외부 라우팅은 눌리지 않으므로 빈 액션으로 채운다. */ diff --git a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTest.kt b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/AfternoteSectionScreenshotTest.kt similarity index 92% rename from feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTest.kt rename to feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/AfternoteSectionScreenshotTest.kt index f8d11804c4..30837cfa2f 100644 --- a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTest.kt +++ b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/AfternoteSectionScreenshotTest.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable diff --git a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/MindRecordSectionScreenshotTest.kt b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/MindRecordSectionScreenshotTest.kt similarity index 85% rename from feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/MindRecordSectionScreenshotTest.kt rename to feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/MindRecordSectionScreenshotTest.kt index 45c785571c..cd52f5ec7b 100644 --- a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/MindRecordSectionScreenshotTest.kt +++ b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/MindRecordSectionScreenshotTest.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable @@ -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.MindRecordSummary +import com.afternote.feature.home.presentation.receiver.model.MindRecordSummary import com.android.tools.screenshot.PreviewTest @PreviewTest diff --git a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/MindRecordStatCardScreenshotTest.kt b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/MindRecordStatCardScreenshotTest.kt similarity index 93% rename from feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/MindRecordStatCardScreenshotTest.kt rename to feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/MindRecordStatCardScreenshotTest.kt index 08685d3a1e..b20e42b057 100644 --- a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/MindRecordStatCardScreenshotTest.kt +++ b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/MindRecordStatCardScreenshotTest.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable diff --git a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/SectionGoButtonScreenshotTest.kt b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/SectionGoButtonScreenshotTest.kt similarity index 92% rename from feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/SectionGoButtonScreenshotTest.kt rename to feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/SectionGoButtonScreenshotTest.kt index f00d5ddc4f..d9570b6db6 100644 --- a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/SectionGoButtonScreenshotTest.kt +++ b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/SectionGoButtonScreenshotTest.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable diff --git a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/SenderMessageHeroCardScreenshotTest.kt b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/SenderMessageHeroCardScreenshotTest.kt similarity index 94% rename from feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/SenderMessageHeroCardScreenshotTest.kt rename to feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/SenderMessageHeroCardScreenshotTest.kt index b7ebed0ec1..838780af46 100644 --- a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/SenderMessageHeroCardScreenshotTest.kt +++ b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/SenderMessageHeroCardScreenshotTest.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable diff --git a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/TimeLetterSectionScreenshotTest.kt b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/TimeLetterSectionScreenshotTest.kt similarity index 90% rename from feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/TimeLetterSectionScreenshotTest.kt rename to feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/TimeLetterSectionScreenshotTest.kt index f76049e39a..4847deb56f 100644 --- a/feature/receiver/presentation/src/screenshotTest/kotlin/com/afternote/feature/receiver/presentation/home/component/TimeLetterSectionScreenshotTest.kt +++ b/feature/home/presentation/src/screenshotTest/kotlin/com/afternote/feature/home/presentation/receiver/component/TimeLetterSectionScreenshotTest.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable diff --git a/feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenLoadingScreenshot_748aa731_0.png b/feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenLoadingScreenshot_748aa731_0.png similarity index 100% rename from feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenLoadingScreenshot_748aa731_0.png rename to feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenLoadingScreenshot_748aa731_0.png diff --git a/feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenPartialFailureScreenshot_748aa731_0.png b/feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenPartialFailureScreenshot_748aa731_0.png similarity index 100% rename from feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenPartialFailureScreenshot_748aa731_0.png rename to feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenPartialFailureScreenshot_748aa731_0.png diff --git a/feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenSuccessScreenshot_748aa731_0.png b/feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenSuccessScreenshot_748aa731_0.png similarity index 100% rename from feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenSuccessScreenshot_748aa731_0.png rename to feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/ReceiverHomeScreenScreenshotTestKt/receiverHomeScreenSuccessScreenshot_748aa731_0.png diff --git a/feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTestKt/afternoteSectionScreenshot_748aa731_0.png b/feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/component/AfternoteSectionScreenshotTestKt/afternoteSectionScreenshot_748aa731_0.png similarity index 100% rename from feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/AfternoteSectionScreenshotTestKt/afternoteSectionScreenshot_748aa731_0.png rename to feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/component/AfternoteSectionScreenshotTestKt/afternoteSectionScreenshot_748aa731_0.png diff --git a/feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/MindRecordSectionScreenshotTestKt/mindRecordSectionScreenshot_748aa731_0.png b/feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/component/MindRecordSectionScreenshotTestKt/mindRecordSectionScreenshot_748aa731_0.png similarity index 100% rename from feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/MindRecordSectionScreenshotTestKt/mindRecordSectionScreenshot_748aa731_0.png rename to feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/component/MindRecordSectionScreenshotTestKt/mindRecordSectionScreenshot_748aa731_0.png diff --git a/feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/MindRecordStatCardScreenshotTestKt/mindRecordStatCardScreenshot_748aa731_0.png b/feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/component/MindRecordStatCardScreenshotTestKt/mindRecordStatCardScreenshot_748aa731_0.png similarity index 100% rename from feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/MindRecordStatCardScreenshotTestKt/mindRecordStatCardScreenshot_748aa731_0.png rename to feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/component/MindRecordStatCardScreenshotTestKt/mindRecordStatCardScreenshot_748aa731_0.png diff --git a/feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/SectionGoButtonScreenshotTestKt/sectionGoButtonScreenshot_748aa731_0.png b/feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/component/SectionGoButtonScreenshotTestKt/sectionGoButtonScreenshot_748aa731_0.png similarity index 100% rename from feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/SectionGoButtonScreenshotTestKt/sectionGoButtonScreenshot_748aa731_0.png rename to feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/component/SectionGoButtonScreenshotTestKt/sectionGoButtonScreenshot_748aa731_0.png diff --git a/feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/SenderMessageHeroCardScreenshotTestKt/senderMessageHeroCardScreenshot_748aa731_0.png b/feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/component/SenderMessageHeroCardScreenshotTestKt/senderMessageHeroCardScreenshot_748aa731_0.png similarity index 100% rename from feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/SenderMessageHeroCardScreenshotTestKt/senderMessageHeroCardScreenshot_748aa731_0.png rename to feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/component/SenderMessageHeroCardScreenshotTestKt/senderMessageHeroCardScreenshot_748aa731_0.png diff --git a/feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/TimeLetterSectionScreenshotTestKt/timeLetterSectionScreenshot_748aa731_0.png b/feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/component/TimeLetterSectionScreenshotTestKt/timeLetterSectionScreenshot_748aa731_0.png similarity index 100% rename from feature/receiver/presentation/src/screenshotTestDebug/reference/com/afternote/feature/receiver/presentation/home/component/TimeLetterSectionScreenshotTestKt/timeLetterSectionScreenshot_748aa731_0.png rename to feature/home/presentation/src/screenshotTestDebug/reference/com/afternote/feature/home/presentation/receiver/component/TimeLetterSectionScreenshotTestKt/timeLetterSectionScreenshot_748aa731_0.png diff --git a/feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeDownloadSnackbarTest.kt b/feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeDownloadSnackbarTest.kt similarity index 85% rename from feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeDownloadSnackbarTest.kt rename to feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeDownloadSnackbarTest.kt index 6691581653..fd114ca365 100644 --- a/feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeDownloadSnackbarTest.kt +++ b/feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeDownloadSnackbarTest.kt @@ -1,12 +1,12 @@ -package com.afternote.feature.receiver.presentation.home +package com.afternote.feature.home.presentation.receiver import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.v2.createComposeRule import androidx.compose.ui.test.onNodeWithText import com.afternote.core.ui.theme.AfternoteTheme -import com.afternote.feature.receiver.presentation.R -import com.afternote.feature.receiver.presentation.home.model.ReceiverDownloadState -import com.afternote.feature.receiver.presentation.home.model.ReceiverHomeUiState +import com.afternote.feature.home.presentation.R +import com.afternote.feature.home.presentation.receiver.model.ReceiverDownloadState +import com.afternote.feature.home.presentation.receiver.model.ReceiverHomeUiState import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @@ -38,14 +38,14 @@ class ReceiverHomeDownloadSnackbarTest { @Test fun `내려받기 실패 상태는 스낵바로 표출된다`() { - setHomeContent(ReceiverDownloadState.Failed(R.string.receiver_home_download_all_failed)) + setHomeContent(ReceiverDownloadState.Failed(R.string.home_receiver_download_all_failed)) composeRule.onNodeWithText("모든 기록 내려받기에 실패했습니다.").assertIsDisplayed() } @Test fun `파일 저장 실패 상태도 자기 문구로 표출된다`() { - setHomeContent(ReceiverDownloadState.Failed(R.string.receiver_home_download_all_save_failed)) + setHomeContent(ReceiverDownloadState.Failed(R.string.home_receiver_download_all_save_failed)) composeRule.onNodeWithText("파일 저장에 실패했습니다.").assertIsDisplayed() } diff --git a/feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeHeaderTest.kt b/feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeHeaderTest.kt similarity index 97% rename from feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeHeaderTest.kt rename to feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeHeaderTest.kt index b6dcf38554..eaf8715723 100644 --- a/feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeHeaderTest.kt +++ b/feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeHeaderTest.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home +package com.afternote.feature.home.presentation.receiver import androidx.activity.ComponentActivity import androidx.compose.ui.test.assertCountEquals @@ -11,7 +11,7 @@ import androidx.compose.ui.test.onNodeWithTag import com.afternote.core.ui.R import com.afternote.core.ui.theme.AfternoteTheme import com.afternote.core.ui.topbar.PROFILE_ICON_TEST_TAG -import com.afternote.feature.receiver.presentation.home.model.ReceiverHomeUiState +import com.afternote.feature.home.presentation.receiver.model.ReceiverHomeUiState import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith diff --git a/feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeViewModelTest.kt b/feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeViewModelTest.kt similarity index 98% rename from feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeViewModelTest.kt rename to feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeViewModelTest.kt index d272fd6c0d..39f968b144 100644 --- a/feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/home/ReceiverHomeViewModelTest.kt +++ b/feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeViewModelTest.kt @@ -1,14 +1,14 @@ -package com.afternote.feature.receiver.presentation.home +package com.afternote.feature.home.presentation.receiver import com.afternote.core.common.reporting.ErrorReporter +import com.afternote.feature.home.presentation.receiver.model.ReceiverDownloadState +import com.afternote.feature.home.presentation.receiver.model.ReceiverHomeUiState import com.afternote.feature.mindrecord.domain.model.MindRecordType import com.afternote.feature.mindrecord.domain.model.ReceiverMindRecords import com.afternote.feature.mindrecord.domain.testing.FakeMindRecordReceiverRepository import com.afternote.feature.receiver.domain.model.AfterNotesListResult import com.afternote.feature.receiver.domain.model.SenderMessageInfo import com.afternote.feature.receiver.domain.testing.FakeReceiverRepository -import com.afternote.feature.receiver.presentation.home.model.ReceiverDownloadState -import com.afternote.feature.receiver.presentation.home.model.ReceiverHomeUiState import com.afternote.feature.timeletter.domain.model.ReceivedTimeLetterList import com.afternote.feature.timeletter.domain.testing.FakeReceiverTimeLetterRepository import kotlinx.coroutines.Dispatchers diff --git a/feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/home/component/ReceiverHomeCountFallbackTest.kt b/feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/component/ReceiverHomeCountFallbackTest.kt similarity index 95% rename from feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/home/component/ReceiverHomeCountFallbackTest.kt rename to feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/component/ReceiverHomeCountFallbackTest.kt index 963eac5b38..d8d7064339 100644 --- a/feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/home/component/ReceiverHomeCountFallbackTest.kt +++ b/feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/component/ReceiverHomeCountFallbackTest.kt @@ -1,4 +1,4 @@ -package com.afternote.feature.receiver.presentation.home.component +package com.afternote.feature.home.presentation.receiver.component import androidx.activity.ComponentActivity import androidx.compose.ui.test.assertCountEquals @@ -7,7 +7,7 @@ import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.onAllNodesWithText import androidx.compose.ui.test.onNodeWithText import com.afternote.core.ui.theme.AfternoteTheme -import com.afternote.feature.receiver.presentation.home.model.MindRecordSummary +import com.afternote.feature.home.presentation.receiver.model.MindRecordSummary import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith diff --git a/feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/component/ReceiverHomeTouchTargetTest.kt b/feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/component/ReceiverHomeTouchTargetTest.kt new file mode 100644 index 0000000000..861b6efe69 --- /dev/null +++ b/feature/home/presentation/src/test/kotlin/com/afternote/feature/home/presentation/receiver/component/ReceiverHomeTouchTargetTest.kt @@ -0,0 +1,49 @@ +package com.afternote.feature.home.presentation.receiver.component + +import androidx.compose.ui.semantics.Role +import androidx.compose.ui.test.junit4.v2.createComposeRule +import androidx.compose.ui.test.onNodeWithText +import androidx.compose.ui.test.performClick +import com.afternote.core.ui.testing.MinimumTouchTargetSize +import com.afternote.core.ui.testing.assertAccessibleClickTargets +import com.afternote.core.ui.testing.scanEnabledClickTargets +import com.afternote.core.ui.theme.AfternoteTheme +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.annotation.Config + +/** + * 수신자 홈 섹션 이동 버튼의 클릭 타깃 가드. + * + * 종전에는 `feature:receiver` 의 `ReceiverFlowTouchTargetTest` 가 서류 슬롯 카드와 한 테스트에서 + * 같은 규약을 걸었다. 수신자 홈이 `feature:home` 으로 옮겨지며(#1462) 두 컴포넌트가 다른 + * 모듈이 됐으므로 단언을 그대로 둔 채 이쪽 몫만 옮겼다. + */ +@RunWith(RobolectricTestRunner::class) +@Config(sdk = [35]) +class ReceiverHomeTouchTargetTest { + @get:Rule + val composeRule = createComposeRule() + + @Test + fun `section go button is a named button target that meets the minimum size`() { + var goClicks = 0 + composeRule.setContent { + AfternoteTheme { + SectionGoButton(text = "Go", onClick = { goClicks++ }) + } + } + + composeRule.assertAccessibleClickTargets() + val goTarget = composeRule.scanEnabledClickTargets().single { it.name == "Go" } + assertEquals(Role.Button, goTarget.role) + assertFalse(goTarget.isSmallerThan(MinimumTouchTargetSize)) + + composeRule.onNodeWithText("Go").performClick() + assertEquals(1, goClicks) + } +} diff --git a/feature/receiver/presentation/src/main/res/values/strings.xml b/feature/receiver/presentation/src/main/res/values/strings.xml index dcf7352c8a..d8eb2cb24e 100644 --- a/feature/receiver/presentation/src/main/res/values/strings.xml +++ b/feature/receiver/presentation/src/main/res/values/strings.xml @@ -1,32 +1,9 @@ - 故 %1$s님이 남기신 기록 - %1$s님의 한 마디 - TOTAL - 데일리 질문 - 일기 - +%1$d - 마음의 기록 - 고인의 일상적인 생각과 감정, 일기들입니다. - 마음의 기록 확인하러 가기 - 타임레터 - 고인이 특별한 날에\n수신자님에게 작성한 편지입니다. - 라이프 이벤트 레터 확인하러 가기 - 애프터노트 - 고인이 사후 정리하고자 하는 데이터입니다. - 애프터노트 확인하러 가기 - – - 모든 기록 내려받기 - 모든 기록을 내려받으시겠습니까? - 모든 기록 내려받기에 실패했습니다. - 파일 저장에 실패했습니다. - - 정보를 불러오지 못했습니다. - 다시 시도 - "%1$s개 " - 마음의 기록이 있습니다. - "%1$s개 " - 라이프 이벤트 레터가 있습니다. - %1$s개 - 의 애프터노트가 있습니다. diff --git a/feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/ReceiverFlowTouchTargetTest.kt b/feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/ReceiverFlowTouchTargetTest.kt index c28f4795b5..34c53030c0 100644 --- a/feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/ReceiverFlowTouchTargetTest.kt +++ b/feature/receiver/presentation/src/test/kotlin/com/afternote/feature/receiver/presentation/ReceiverFlowTouchTargetTest.kt @@ -12,7 +12,6 @@ import com.afternote.core.ui.testing.scanEnabledClickTargets import com.afternote.core.ui.theme.AfternoteTheme import com.afternote.feature.receiver.presentation.deliveryverification.DocumentSlotState import com.afternote.feature.receiver.presentation.deliveryverification.component.DocumentSlotCard -import com.afternote.feature.receiver.presentation.home.component.SectionGoButton import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Rule @@ -24,9 +23,11 @@ import org.robolectric.annotation.Config /** * 수신자 흐름 진입 컴포넌트의 클릭 타깃 가드. * - * 섹션 이동 버튼(홈)과 서류 슬롯 카드(열람 신청)는 화면이 다르지만 규약이 같다 — 이름이 붙은 - * Button 역할이어야 하고, 최소 터치 크기를 밑돌지 않아야 하며, 한 카드의 촬영·첨부 두 진입점이 - * 서로 다른 콜백으로 갈려야 한다. + * 서류 슬롯 카드(열람 신청)는 이름이 붙은 Button 역할이어야 하고, 최소 터치 크기를 밑돌지 + * 않아야 하며, 한 카드의 촬영·첨부 두 진입점이 서로 다른 콜백으로 갈려야 한다. + * + * 같은 규약을 거는 섹션 이동 버튼은 수신자 홈과 함께 `feature:home` 으로 옮겼다 (#1462) — + * `ReceiverHomeTouchTargetTest` 에 있다. */ @RunWith(RobolectricTestRunner::class) @Config(sdk = [35]) @@ -35,13 +36,11 @@ class ReceiverFlowTouchTargetTest { val composeRule = createComposeRule() @Test - fun `receiver navigation field and attachment actions invoke distinct callbacks`() { - var goClicks = 0 + fun `receiver document slot camera and attachment actions invoke distinct callbacks`() { var pickClicks = 0 composeRule.setContent { AfternoteTheme { Column { - SectionGoButton(text = "Go", onClick = { goClicks++ }) DocumentSlotCard( title = "Document", slot = DocumentSlotState(), @@ -53,20 +52,15 @@ class ReceiverFlowTouchTargetTest { composeRule.assertAccessibleClickTargets() val targets = composeRule.scanEnabledClickTargets() - val goTarget = targets.single { it.name == "Go" } val attachTarget = targets.single { it.name == "서류 촬영 또는 파일 첨부" } - assertEquals(Role.Button, goTarget.role) assertEquals(Role.Button, targets.single { it.name == "촬영 또는 파일 첨부" }.role) assertEquals(Role.Button, attachTarget.role) assertEquals(43f, attachTarget.layoutWidth.value, 0.1f) assertEquals(43f, attachTarget.layoutHeight.value, 0.1f) - assertFalse(goTarget.isSmallerThan(MinimumTouchTargetSize)) assertFalse(attachTarget.isSmallerThan(MinimumTouchTargetSize)) - composeRule.onNodeWithText("Go").performClick() composeRule.onNodeWithText("촬영 또는 파일 첨부").performClick() composeRule.onAllNodesWithContentDescription("서류 촬영 또는 파일 첨부")[0].performClick() - assertEquals(1, goClicks) assertEquals(2, pickClicks) } } diff --git a/konsist/src/test/kotlin/com/afternote/konsist/ReceiverHomeResourceKonsistTest.kt b/konsist/src/test/kotlin/com/afternote/konsist/ReceiverHomeResourceKonsistTest.kt index 019e0c3311..d88cbccb48 100644 --- a/konsist/src/test/kotlin/com/afternote/konsist/ReceiverHomeResourceKonsistTest.kt +++ b/konsist/src/test/kotlin/com/afternote/konsist/ReceiverHomeResourceKonsistTest.kt @@ -19,7 +19,7 @@ class ReceiverHomeResourceKonsistTest { fun `수신자 홈은 다른 feature 의 R 을 참조하지 않는다`() { AfternoteKonsistScope .files - .withPackage("com.afternote.feature.receiver.presentation.home..") + .withPackage("com.afternote.feature.home.presentation.receiver..") .assertFalse { file -> file.imports.any { import -> FOREIGN_FEATURE_RESOURCE.matches(import.name) } || // import 만 보면 FQN 참조가 그대로 빠져나간다 — 이 패키지의 screenshotTest 가 @@ -30,12 +30,12 @@ class ReceiverHomeResourceKonsistTest { } private companion object { - /** 수신자 자신이 아닌 feature 의 `R` (또는 그 하위 참조). */ + /** 수신자 홈이 사는 `home` 모듈이 아닌 feature 의 `R` (또는 그 하위 참조). #1462 로 모듈이 바뀌었다. */ val FOREIGN_FEATURE_RESOURCE = - Regex("""^com\.afternote\.feature\.(?!receiver\.)[a-z]+\.presentation\.R(\..*)?$""") + Regex("""^com\.afternote\.feature\.(?!home\.)[a-z]+\.presentation\.R(\..*)?$""") /** 같은 참조를 본문 어디서든 — FQN 으로 쓴 자리를 잡는다. 주석·문자열 오탐은 감수한다. */ val FOREIGN_FEATURE_RESOURCE_REFERENCE = - Regex("""com\.afternote\.feature\.(?!receiver\.)[a-z]+\.presentation\.R\.""") + Regex("""com\.afternote\.feature\.(?!home\.)[a-z]+\.presentation\.R\.""") } } diff --git a/konsist/src/test/kotlin/com/afternote/konsist/ScanScopeKonsistTest.kt b/konsist/src/test/kotlin/com/afternote/konsist/ScanScopeKonsistTest.kt index 055bd2416d..2513f5bdb3 100644 --- a/konsist/src/test/kotlin/com/afternote/konsist/ScanScopeKonsistTest.kt +++ b/konsist/src/test/kotlin/com/afternote/konsist/ScanScopeKonsistTest.kt @@ -254,7 +254,7 @@ class ScanScopeKonsistTest { checkout, "feature/receiver/presentation/src/main/kotlin/com/afternote/feature/receiver/presentation/home/ProbeHome.kt", """ - package com.afternote.feature.receiver.presentation.home + package com.afternote.feature.home.presentation.receiver import com.afternote.feature.afternote.presentation.R @@ -313,7 +313,7 @@ class ScanScopeKonsistTest { const val DOMAIN_PACKAGE = "com.afternote..domain.." const val PRESENTATION_PACKAGE = "com.afternote..presentation.." - const val RECEIVER_HOME_PACKAGE = "com.afternote.feature.receiver.presentation.home.." + const val RECEIVER_HOME_PACKAGE = "com.afternote.feature.home.presentation.receiver.." const val DTO_PACKAGE = "com.afternote..dto.." const val SERIALIZABLE = "Serializable" }