fix(content): 연령제한 노출 조건을 공통 정책으로 통일한다

This commit is contained in:
2026-03-27 18:24:47 +09:00
parent 0fcd929c6f
commit 0c0801561e
4 changed files with 116 additions and 7 deletions

View File

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

View File

@@ -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
}
}

View File

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