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.PurchaseOption
|
||||||
import kr.co.vividnext.sodalive.audio_content.upload.theme.AudioContentThemeFragment
|
import kr.co.vividnext.sodalive.audio_content.upload.theme.AudioContentThemeFragment
|
||||||
import kr.co.vividnext.sodalive.base.BaseActivity
|
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.ImagePickerCropper
|
||||||
import kr.co.vividnext.sodalive.common.LoadingDialog
|
import kr.co.vividnext.sodalive.common.LoadingDialog
|
||||||
import kr.co.vividnext.sodalive.common.RealPathUtil
|
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
|
binding.llSetAdult.visibility = View.VISIBLE
|
||||||
} else {
|
} else {
|
||||||
binding.llSetAdult.visibility = View.GONE
|
binding.llSetAdult.visibility = View.GONE
|
||||||
@@ -540,7 +541,7 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SharedPreferenceManager.isAuth) {
|
if (shouldShowAdultRestrictionSetting()) {
|
||||||
binding.llAgeAll.setOnClickListener {
|
binding.llAgeAll.setOnClickListener {
|
||||||
viewModel.setAdult(false)
|
viewModel.setAdult(false)
|
||||||
}
|
}
|
||||||
@@ -955,4 +956,12 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
|
|||||||
|
|
||||||
return fileName
|
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 io.reactivex.rxjava3.schedulers.Schedulers
|
||||||
import kr.co.vividnext.sodalive.R
|
import kr.co.vividnext.sodalive.R
|
||||||
import kr.co.vividnext.sodalive.base.BaseActivity
|
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.Constants
|
||||||
import kr.co.vividnext.sodalive.common.ImagePickerCropper
|
import kr.co.vividnext.sodalive.common.ImagePickerCropper
|
||||||
import kr.co.vividnext.sodalive.common.LoadingDialog
|
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
|
binding.llSetAdult.visibility = View.VISIBLE
|
||||||
} else {
|
} else {
|
||||||
binding.llSetAdult.visibility = View.GONE
|
binding.llSetAdult.visibility = View.GONE
|
||||||
@@ -581,10 +582,7 @@ class LiveRoomCreateActivity : BaseActivity<ActivityLiveRoomCreateBinding>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SharedPreferenceManager.role == MemberRole.CREATOR.name ||
|
if (shouldShowAdultRestrictionSetting()) {
|
||||||
SharedPreferenceManager.isAuth
|
|
||||||
) {
|
|
||||||
|
|
||||||
binding.llAgeAll.setOnClickListener {
|
binding.llAgeAll.setOnClickListener {
|
||||||
viewModel.setAdult(false)
|
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