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 + ) + ) + } +}