diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/PurchaseOption.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/PurchaseOption.kt new file mode 100644 index 0000000..be11d5c --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/PurchaseOption.kt @@ -0,0 +1,14 @@ +package kr.co.vividnext.sodalive.audio_content + +import com.google.gson.annotations.SerializedName + +enum class PurchaseOption { + @SerializedName("BOTH") + BOTH, + + @SerializedName("BUY_ONLY") + BUY_ONLY, + + @SerializedName("RENT_ONLY") + RENT_ONLY, +} 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 8bad46c..94d71fb 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 @@ -23,6 +23,7 @@ import com.jakewharton.rxbinding4.widget.textChanges import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers 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.LoadingDialog @@ -206,8 +207,11 @@ class AudioContentUploadActivity : BaseActivity checkBoth() + PurchaseOption.BUY_ONLY -> checkBuyOnly() + PurchaseOption.RENT_ONLY -> checkRentOnly() } } @@ -625,7 +629,7 @@ class AudioContentUploadActivity : BaseActivity get() = _isAdultLiveData - private val _isOnlyRentalLiveData = MutableLiveData(false) - val isOnlyRentalLiveData: LiveData - get() = _isOnlyRentalLiveData + private val _purchaseOptionLiveData = MutableLiveData(PurchaseOption.BOTH) + val purchaseOptionLiveData: LiveData + get() = _purchaseOptionLiveData private val _isAvailableCommentLiveData = MutableLiveData(true) val isAvailableCommentLiveData: LiveData @@ -101,13 +102,13 @@ class AudioContentUploadViewModel( _isPriceFreeLiveData.postValue(isPriceFree) if (isPriceFree) { - _isOnlyRentalLiveData.postValue(false) + _purchaseOptionLiveData.postValue(PurchaseOption.BOTH) _isShowConfigLimitedLiveData.postValue(false) _isLimitedLiveData.postValue(false) limited = 0 _isGeneratePreviewLiveData.postValue(true) } else { - if (!_isOnlyRentalLiveData.value!!) { + if (_purchaseOptionLiveData.value!! != PurchaseOption.RENT_ONLY) { _isShowConfigLimitedLiveData.postValue(true) } } @@ -125,10 +126,10 @@ class AudioContentUploadViewModel( } } - fun setIsOnlyRental(isOnlyRental: Boolean) { - _isOnlyRentalLiveData.postValue(isOnlyRental) + fun setPurchaseOption(purchaseOption: PurchaseOption) { + _purchaseOptionLiveData.postValue(purchaseOption) - if (isOnlyRental) { + if (purchaseOption == PurchaseOption.RENT_ONLY) { _isShowConfigLimitedLiveData.postValue(false) _isLimitedLiveData.postValue(false) limited = 0 @@ -154,6 +155,7 @@ class AudioContentUploadViewModel( detail = detail, tags = tags, price = price, + purchaseOption = _purchaseOptionLiveData.value!!, limited = if ( price > 0 && limited > 0 && @@ -173,7 +175,6 @@ class AudioContentUploadViewModel( timezone = TimeZone.getDefault().id, themeId = theme!!.id, isAdult = _isAdultLiveData.value!!, - isOnlyRental = _isOnlyRentalLiveData.value!!, isGeneratePreview = isGeneratePreview, isCommentAvailable = _isAvailableCommentLiveData.value!!, previewStartTime = if (isGeneratePreview) { diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/upload/CreateAudioContentRequest.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/upload/CreateAudioContentRequest.kt index b18d605..ae10bc4 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/upload/CreateAudioContentRequest.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/upload/CreateAudioContentRequest.kt @@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.audio_content.upload import androidx.annotation.Keep import com.google.gson.annotations.SerializedName +import kr.co.vividnext.sodalive.audio_content.PurchaseOption @Keep data class CreateAudioContentRequest( @@ -9,12 +10,12 @@ data class CreateAudioContentRequest( @SerializedName("detail") val detail: String, @SerializedName("tags") val tags: String, @SerializedName("price") val price: Int, + @SerializedName("purchaseOption") val purchaseOption: PurchaseOption, @SerializedName("limited") val limited: Int? = null, @SerializedName("releaseDate") val releaseDate: String?, @SerializedName("timezone") val timezone: String, @SerializedName("themeId") val themeId: Long, @SerializedName("isAdult") val isAdult: Boolean, - @SerializedName("isOnlyRental") val isOnlyRental: Boolean, @SerializedName("isGeneratePreview") val isGeneratePreview: Boolean, @SerializedName("isCommentAvailable") val isCommentAvailable: Boolean, @SerializedName("previewStartTime") val previewStartTime: String? = null, diff --git a/app/src/main/res/layout/activity_audio_content_upload.xml b/app/src/main/res/layout/activity_audio_content_upload.xml index 45b9900..0700ad7 100644 --- a/app/src/main/res/layout/activity_audio_content_upload.xml +++ b/app/src/main/res/layout/activity_audio_content_upload.xml @@ -379,7 +379,7 @@ android:textSize="16.7sp" /> + + + + + + +