From 7807154ffe3bced8400db781e87f53bd817d03d4 Mon Sep 17 00:00:00 2001 From: juhwankim-dev Date: Sat, 30 May 2026 15:50:24 +0900 Subject: [PATCH] =?UTF-8?q?NR-142=20=EA=B5=AC=EB=8F=85=20=EC=83=81?= =?UTF-8?q?=ED=83=9C=EB=95=8C=20=EB=93=B1=EB=A1=9D=ED=95=9C=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=EA=B0=80=20=EB=82=A8=EC=95=84=EC=9E=88?= =?UTF-8?q?=EB=8A=94=20=EA=B2=BD=EC=9A=B0=20=ED=85=8C=EB=A7=88=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EC=8B=9C=EB=8F=84=EC=8B=9C=20=ED=86=A0=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=EB=A5=BC=20=EB=9D=84=EC=9A=B4=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 왜? 구독 상태때 등록한 이미지가 남아있는경우 테마 정보를 수정하려 시도할때 이미지 정보를 포함하여 서버에 post 요청을 보내기 때문에 구독 상태가 아니여서 api 요청을 실패한다. 이미지를 삭제하고 수정을 해야함을 사용자에게 안내하는 방향으로 수정한다. --- .../presentation/ui/manage/hint/HintManageFragment.kt | 1 + .../presentation/ui/manage/hint/HintManageState.kt | 1 + .../presentation/ui/manage/hint/HintManageViewModel.kt | 9 +++++++++ presentation/src/main/res/values/strings.xml | 1 + 4 files changed, 12 insertions(+) diff --git a/presentation/src/main/java/com/nextroom/nextroom/presentation/ui/manage/hint/HintManageFragment.kt b/presentation/src/main/java/com/nextroom/nextroom/presentation/ui/manage/hint/HintManageFragment.kt index 8cac3056..aa9b3317 100644 --- a/presentation/src/main/java/com/nextroom/nextroom/presentation/ui/manage/hint/HintManageFragment.kt +++ b/presentation/src/main/java/com/nextroom/nextroom/presentation/ui/manage/hint/HintManageFragment.kt @@ -72,6 +72,7 @@ class HintManageFragment : ComposeBaseViewModelFragment() { is HintManageEvent.RequestDeleteHint -> showDeleteConfirmDialog(event.hint) is HintManageEvent.HintSaved -> snackbar(R.string.hint_manage_save_success) is HintManageEvent.HintDeleted -> snackbar(R.string.hint_manage_delete_success) + is HintManageEvent.SaveBlockedDueToImages -> toast(R.string.hint_save_blocked_due_to_images) is HintManageEvent.ImageUploadFailed -> { when (event.reason) { HintManageEvent.ImageUploadFailed.Reason.INVALID_FORMAT -> R.string.image_invalid_format diff --git a/presentation/src/main/java/com/nextroom/nextroom/presentation/ui/manage/hint/HintManageState.kt b/presentation/src/main/java/com/nextroom/nextroom/presentation/ui/manage/hint/HintManageState.kt index db7efd75..9bed3591 100644 --- a/presentation/src/main/java/com/nextroom/nextroom/presentation/ui/manage/hint/HintManageState.kt +++ b/presentation/src/main/java/com/nextroom/nextroom/presentation/ui/manage/hint/HintManageState.kt @@ -57,6 +57,7 @@ sealed interface HintManageEvent { data class RequestDeleteHint(val hint: Hint) : HintManageEvent data object HintSaved : HintManageEvent data object HintDeleted : HintManageEvent + data object SaveBlockedDueToImages : HintManageEvent data class ImageUploadFailed(val reason: Reason) : HintManageEvent { enum class Reason { INVALID_FORMAT, diff --git a/presentation/src/main/java/com/nextroom/nextroom/presentation/ui/manage/hint/HintManageViewModel.kt b/presentation/src/main/java/com/nextroom/nextroom/presentation/ui/manage/hint/HintManageViewModel.kt index 2d50fbea..fad89ea9 100644 --- a/presentation/src/main/java/com/nextroom/nextroom/presentation/ui/manage/hint/HintManageViewModel.kt +++ b/presentation/src/main/java/com/nextroom/nextroom/presentation/ui/manage/hint/HintManageViewModel.kt @@ -196,6 +196,15 @@ class HintManageViewModel @Inject constructor( fun saveHint() { val editData = _editData.value + if (editData.hintId != null && + adminRepository.cachedSubscribeStatus != SubscribeStatus.Subscribed && + (editData.hintImageUrls.isNotEmpty() || editData.answerImageUrls.isNotEmpty()) + ) { + baseViewModelScope.launch { + _uiEvent.emit(HintManageEvent.SaveBlockedDueToImages) + } + return + } _sheetType.value = HintSheetType.None baseViewModelScope.launch { try { diff --git a/presentation/src/main/res/values/strings.xml b/presentation/src/main/res/values/strings.xml index 28382227..185d77e1 100644 --- a/presentation/src/main/res/values/strings.xml +++ b/presentation/src/main/res/values/strings.xml @@ -296,4 +296,5 @@ 이미지 크기는 10MB 이하여야 합니다 지원하지 않는 이미지 형식입니다 구독이 필요한 기능입니다. + 구독이 만료되었습니다. 이미지를 삭제한 후 저장해 주세요. \ No newline at end of file