From 0c0801561e7390166f1cde9c77b5bd0f870404c1 Mon Sep 17 00:00:00 2001 From: klaus Date: Fri, 27 Mar 2026 18:24:47 +0900 Subject: [PATCH] =?UTF-8?q?fix(content):=20=EC=97=B0=EB=A0=B9=EC=A0=9C?= =?UTF-8?q?=ED=95=9C=20=EB=85=B8=EC=B6=9C=20=EC=A1=B0=EA=B1=B4=EC=9D=84=20?= =?UTF-8?q?=EA=B3=B5=ED=86=B5=20=EC=A0=95=EC=B1=85=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=ED=86=B5=EC=9D=BC=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../upload/AudioContentUploadActivity.kt | 13 +++- .../common/AdultContentVisibilityPolicy.kt | 18 +++++ .../room/create/LiveRoomCreateActivity.kt | 16 ++-- .../AdultContentVisibilityPolicyTest.kt | 76 +++++++++++++++++++ 4 files changed, 116 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/common/AdultContentVisibilityPolicy.kt create mode 100644 app/src/test/java/kr/co/vividnext/sodalive/common/AdultContentVisibilityPolicyTest.kt diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/upload/AudioContentUploadActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/upload/AudioContentUploadActivity.kt index f2369164..c1f7e293 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/upload/AudioContentUploadActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/upload/AudioContentUploadActivity.kt @@ -27,6 +27,7 @@ import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.audio_content.PurchaseOption import kr.co.vividnext.sodalive.audio_content.upload.theme.AudioContentThemeFragment import kr.co.vividnext.sodalive.base.BaseActivity +import kr.co.vividnext.sodalive.common.AdultContentVisibilityPolicy import kr.co.vividnext.sodalive.common.ImagePickerCropper import kr.co.vividnext.sodalive.common.LoadingDialog import kr.co.vividnext.sodalive.common.RealPathUtil @@ -206,7 +207,7 @@ class AudioContentUploadActivity : BaseActivity( ) } - if (SharedPreferenceManager.isAuth) { + if (shouldShowAdultRestrictionSetting()) { binding.llSetAdult.visibility = View.VISIBLE } else { binding.llSetAdult.visibility = View.GONE @@ -581,10 +582,7 @@ class LiveRoomCreateActivity : BaseActivity( } } - if (SharedPreferenceManager.role == MemberRole.CREATOR.name || - SharedPreferenceManager.isAuth - ) { - + if (shouldShowAdultRestrictionSetting()) { binding.llAgeAll.setOnClickListener { viewModel.setAdult(false) } @@ -920,4 +918,12 @@ class LiveRoomCreateActivity : BaseActivity( ) ) } + + private fun shouldShowAdultRestrictionSetting(): Boolean { + return AdultContentVisibilityPolicy.shouldShowAdultRestrictionSetting( + countryCode = SharedPreferenceManager.countryCode, + isAdultContentVisible = SharedPreferenceManager.isAdultContentVisible, + isAuth = SharedPreferenceManager.isAuth + ) + } } diff --git a/app/src/test/java/kr/co/vividnext/sodalive/common/AdultContentVisibilityPolicyTest.kt b/app/src/test/java/kr/co/vividnext/sodalive/common/AdultContentVisibilityPolicyTest.kt new file mode 100644 index 00000000..be280284 --- /dev/null +++ b/app/src/test/java/kr/co/vividnext/sodalive/common/AdultContentVisibilityPolicyTest.kt @@ -0,0 +1,76 @@ +package kr.co.vividnext.sodalive.common + +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test + +class AdultContentVisibilityPolicyTest { + + @Test + fun `isAdultContentVisible가 false면 항상 미표시`() { + assertFalse( + AdultContentVisibilityPolicy.shouldShowAdultRestrictionSetting( + countryCode = "KR", + isAdultContentVisible = false, + isAuth = true + ) + ) + + assertFalse( + AdultContentVisibilityPolicy.shouldShowAdultRestrictionSetting( + countryCode = "US", + isAdultContentVisible = false, + isAuth = false + ) + ) + } + + @Test + fun `한국 접속은 isAuth가 true일 때만 표시`() { + assertTrue( + AdultContentVisibilityPolicy.shouldShowAdultRestrictionSetting( + countryCode = "KR", + isAdultContentVisible = true, + isAuth = true + ) + ) + + assertFalse( + AdultContentVisibilityPolicy.shouldShowAdultRestrictionSetting( + countryCode = "KR", + isAdultContentVisible = true, + isAuth = false + ) + ) + } + + @Test + fun `비한국 접속은 isAdultContentVisible true면 표시`() { + assertTrue( + AdultContentVisibilityPolicy.shouldShowAdultRestrictionSetting( + countryCode = "US", + isAdultContentVisible = true, + isAuth = false + ) + ) + } + + @Test + fun `countryCode가 비어있으면 한국으로 간주한다`() { + assertFalse( + AdultContentVisibilityPolicy.shouldShowAdultRestrictionSetting( + countryCode = "", + isAdultContentVisible = true, + isAuth = false + ) + ) + + assertTrue( + AdultContentVisibilityPolicy.shouldShowAdultRestrictionSetting( + countryCode = "", + isAdultContentVisible = true, + isAuth = true + ) + ) + } +}