feat: 콘텐츠 업로드

- 포인트 사용 가능 여부 추가
This commit is contained in:
2025-06-02 15:22:29 +09:00
parent 8b7894a370
commit 19c39f636d
4 changed files with 147 additions and 0 deletions

View File

@@ -205,6 +205,8 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
binding.llPriceFree.setOnClickListener { viewModel.setPriceFree(true) }
binding.llPreviewYes.setOnClickListener { viewModel.setGeneratePreview(true) }
binding.llPreviewNo.setOnClickListener { viewModel.setGeneratePreview(false) }
binding.llAvailablePoint.setOnClickListener { viewModel.setAvailablePoint(true) }
binding.llNotAvailablePoint.setOnClickListener { viewModel.setAvailablePoint(false) }
binding.llLimited.setOnClickListener { viewModel.setLimited(true) }
binding.llNotLimited.setOnClickListener { viewModel.setLimited(false) }
binding.llBoth.setOnClickListener { viewModel.setPurchaseOption(PurchaseOption.BOTH) }
@@ -448,6 +450,14 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
}
}
viewModel.isAvailablePointLiveData.observe(this) {
if (it) {
checkAvailablePoint()
} else {
checkNotAvailablePoint()
}
}
viewModel.purchaseOptionLiveData.observe(this) {
when (it) {
PurchaseOption.BOTH -> checkBoth()
@@ -631,6 +641,8 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
binding.llSetPrice.visibility = View.GONE
binding.llConfigPurchase.visibility = View.GONE
binding.tvTitleConfigKeep.visibility = View.GONE
binding.tvConfigPointTitle.visibility = View.GONE
binding.llConfigPoint.visibility = View.GONE
binding.ivPriceFree.visibility = View.VISIBLE
binding.tvPriceFree.setTextColor(
@@ -660,6 +672,8 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
binding.llSetPrice.visibility = View.VISIBLE
binding.llConfigPurchase.visibility = View.VISIBLE
binding.tvTitleConfigKeep.visibility = View.VISIBLE
binding.tvConfigPointTitle.visibility = View.VISIBLE
binding.llConfigPoint.visibility = View.VISIBLE
binding.ivPricePaid.visibility = View.VISIBLE
binding.tvPricePaid.setTextColor(
@@ -776,6 +790,50 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
binding.llConfigPreviewTime.visibility = View.GONE
}
private fun checkAvailablePoint() {
binding.ivAvailablePoint.visibility = View.VISIBLE
binding.tvAvailablePoint.setTextColor(
ContextCompat.getColor(
applicationContext,
R.color.color_eeeeee
)
)
binding.llAvailablePoint.setBackgroundResource(R.drawable.bg_round_corner_6_7_3bb9f1)
binding.ivNotAvailablePoint.visibility = View.GONE
binding.tvNotAvailablePoint.setTextColor(
ContextCompat.getColor(
applicationContext,
R.color.color_3bb9f1
)
)
binding.llNotAvailablePoint.setBackgroundResource(
R.drawable.bg_round_corner_6_7_13181b
)
}
private fun checkNotAvailablePoint() {
binding.ivNotAvailablePoint.visibility = View.VISIBLE
binding.tvNotAvailablePoint.setTextColor(
ContextCompat.getColor(
applicationContext,
R.color.color_eeeeee
)
)
binding.llNotAvailablePoint.setBackgroundResource(R.drawable.bg_round_corner_6_7_3bb9f1)
binding.ivAvailablePoint.visibility = View.GONE
binding.tvAvailablePoint.setTextColor(
ContextCompat.getColor(
applicationContext,
R.color.color_3bb9f1
)
)
binding.llAvailablePoint.setBackgroundResource(
R.drawable.bg_round_corner_6_7_13181b
)
}
private fun uncheckPurchaseOption() {
binding.ivBoth.visibility = View.GONE
binding.ivBuyOnly.visibility = View.GONE

View File

@@ -63,6 +63,10 @@ class AudioContentUploadViewModel(
val isGeneratePreviewLiveData: LiveData<Boolean>
get() = _isGeneratePreviewLiveData
private val _isAvailablePointLiveData = MutableLiveData(false)
val isAvailablePointLiveData: LiveData<Boolean>
get() = _isAvailablePointLiveData
private val _isActiveReservationLiveData = MutableLiveData(false)
val isActiveReservationLiveData: LiveData<Boolean>
get() = _isActiveReservationLiveData
@@ -107,6 +111,7 @@ class AudioContentUploadViewModel(
_isLimitedLiveData.postValue(false)
limited = 0
_isGeneratePreviewLiveData.postValue(true)
_isAvailablePointLiveData.postValue(false)
} else {
if (_purchaseOptionLiveData.value!! != PurchaseOption.RENT_ONLY) {
_isShowConfigLimitedLiveData.postValue(true)
@@ -118,6 +123,10 @@ class AudioContentUploadViewModel(
_isGeneratePreviewLiveData.value = isGeneratePreview
}
fun setAvailablePoint(isAvailablePoint: Boolean) {
_isAvailablePointLiveData.value = isAvailablePoint
}
fun setLimited(isLimited: Boolean) {
_isLimitedLiveData.value = isLimited
@@ -176,6 +185,7 @@ class AudioContentUploadViewModel(
themeId = theme!!.id,
isAdult = _isAdultLiveData.value!!,
isGeneratePreview = isGeneratePreview,
isPointAvailable = _isAvailablePointLiveData.value!!,
isCommentAvailable = _isAvailableCommentLiveData.value!!,
previewStartTime = if (isGeneratePreview) {
previewStartTime

View File

@@ -17,6 +17,7 @@ data class CreateAudioContentRequest(
@SerializedName("themeId") val themeId: Long,
@SerializedName("isAdult") val isAdult: Boolean,
@SerializedName("isGeneratePreview") val isGeneratePreview: Boolean,
@SerializedName("isPointAvailable") val isPointAvailable: Boolean,
@SerializedName("isCommentAvailable") val isCommentAvailable: Boolean,
@SerializedName("previewStartTime") val previewStartTime: String? = null,
@SerializedName("previewEndTime") val previewEndTime: String? = null,