fix(content): 연령제한 노출 조건을 공통 정책으로 통일한다
This commit is contained in:
@@ -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<ActivityAudioContentUploadBindin
|
||||
)
|
||||
}
|
||||
|
||||
if (SharedPreferenceManager.isAuth) {
|
||||
if (shouldShowAdultRestrictionSetting()) {
|
||||
binding.llSetAdult.visibility = View.VISIBLE
|
||||
} else {
|
||||
binding.llSetAdult.visibility = View.GONE
|
||||
@@ -540,7 +541,7 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
|
||||
}
|
||||
}
|
||||
|
||||
if (SharedPreferenceManager.isAuth) {
|
||||
if (shouldShowAdultRestrictionSetting()) {
|
||||
binding.llAgeAll.setOnClickListener {
|
||||
viewModel.setAdult(false)
|
||||
}
|
||||
@@ -955,4 +956,12 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
|
||||
|
||||
return fileName
|
||||
}
|
||||
|
||||
private fun shouldShowAdultRestrictionSetting(): Boolean {
|
||||
return AdultContentVisibilityPolicy.shouldShowAdultRestrictionSetting(
|
||||
countryCode = SharedPreferenceManager.countryCode,
|
||||
isAdultContentVisible = SharedPreferenceManager.isAdultContentVisible,
|
||||
isAuth = SharedPreferenceManager.isAuth
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package kr.co.vividnext.sodalive.common
|
||||
|
||||
object AdultContentVisibilityPolicy {
|
||||
private const val COUNTRY_CODE_KR = "KR"
|
||||
|
||||
fun shouldShowAdultRestrictionSetting(
|
||||
countryCode: String,
|
||||
isAdultContentVisible: Boolean,
|
||||
isAuth: Boolean
|
||||
): Boolean {
|
||||
if (!isAdultContentVisible) {
|
||||
return false
|
||||
}
|
||||
|
||||
val isKoreanCountry = countryCode.ifBlank { COUNTRY_CODE_KR } == COUNTRY_CODE_KR
|
||||
return !isKoreanCountry || isAuth
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,7 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import kr.co.vividnext.sodalive.R
|
||||
import kr.co.vividnext.sodalive.base.BaseActivity
|
||||
import kr.co.vividnext.sodalive.common.AdultContentVisibilityPolicy
|
||||
import kr.co.vividnext.sodalive.common.Constants
|
||||
import kr.co.vividnext.sodalive.common.ImagePickerCropper
|
||||
import kr.co.vividnext.sodalive.common.LoadingDialog
|
||||
@@ -286,7 +287,7 @@ class LiveRoomCreateActivity : BaseActivity<ActivityLiveRoomCreateBinding>(
|
||||
)
|
||||
}
|
||||
|
||||
if (SharedPreferenceManager.isAuth) {
|
||||
if (shouldShowAdultRestrictionSetting()) {
|
||||
binding.llSetAdult.visibility = View.VISIBLE
|
||||
} else {
|
||||
binding.llSetAdult.visibility = View.GONE
|
||||
@@ -581,10 +582,7 @@ class LiveRoomCreateActivity : BaseActivity<ActivityLiveRoomCreateBinding>(
|
||||
}
|
||||
}
|
||||
|
||||
if (SharedPreferenceManager.role == MemberRole.CREATOR.name ||
|
||||
SharedPreferenceManager.isAuth
|
||||
) {
|
||||
|
||||
if (shouldShowAdultRestrictionSetting()) {
|
||||
binding.llAgeAll.setOnClickListener {
|
||||
viewModel.setAdult(false)
|
||||
}
|
||||
@@ -920,4 +918,12 @@ class LiveRoomCreateActivity : BaseActivity<ActivityLiveRoomCreateBinding>(
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
private fun shouldShowAdultRestrictionSetting(): Boolean {
|
||||
return AdultContentVisibilityPolicy.shouldShowAdultRestrictionSetting(
|
||||
countryCode = SharedPreferenceManager.countryCode,
|
||||
isAdultContentVisible = SharedPreferenceManager.isAdultContentVisible,
|
||||
isAuth = SharedPreferenceManager.isAuth
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user