feat: 콘텐츠 수정
- 태그 수정 기능 추가 - 포인트 사용여부 수정 기능 추가
This commit is contained in:
@@ -101,6 +101,9 @@ class AudioContentModifyActivity : BaseActivity<ActivityAudioContentModifyBindin
|
|||||||
.createIntent { imageResult.launch(it) }
|
.createIntent { imageResult.launch(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
binding.llAvailablePoint.setOnClickListener { viewModel.setAvailablePoint(true) }
|
||||||
|
binding.llNotAvailablePoint.setOnClickListener { viewModel.setAvailablePoint(false) }
|
||||||
|
|
||||||
binding.llCommentNo.setOnClickListener { viewModel.setAvailableComment(false) }
|
binding.llCommentNo.setOnClickListener { viewModel.setAvailableComment(false) }
|
||||||
binding.llCommentYes.setOnClickListener { viewModel.setAvailableComment(true) }
|
binding.llCommentYes.setOnClickListener { viewModel.setAvailableComment(true) }
|
||||||
|
|
||||||
@@ -152,6 +155,15 @@ class AudioContentModifyActivity : BaseActivity<ActivityAudioContentModifyBindin
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
compositeDisposable.add(
|
||||||
|
binding.etTag.textChanges().skip(1)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe {
|
||||||
|
viewModel.tags = it.toString()
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
viewModel.toastLiveData.observe(this) {
|
viewModel.toastLiveData.observe(this) {
|
||||||
it?.let { Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show() }
|
it?.let { Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show() }
|
||||||
}
|
}
|
||||||
@@ -164,6 +176,14 @@ class AudioContentModifyActivity : BaseActivity<ActivityAudioContentModifyBindin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
viewModel.isAvailablePointLiveData.observe(this) {
|
||||||
|
if (it) {
|
||||||
|
checkAvailablePoint()
|
||||||
|
} else {
|
||||||
|
checkNotAvailablePoint()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
viewModel.isAvailableCommentLiveData.observe(this) {
|
viewModel.isAvailableCommentLiveData.observe(this) {
|
||||||
if (it) {
|
if (it) {
|
||||||
binding.ivCommentYes.visibility = View.VISIBLE
|
binding.ivCommentYes.visibility = View.VISIBLE
|
||||||
@@ -284,5 +304,53 @@ class AudioContentModifyActivity : BaseActivity<ActivityAudioContentModifyBindin
|
|||||||
viewModel.detailLiveData.observe(this) {
|
viewModel.detailLiveData.observe(this) {
|
||||||
binding.etDetail.setText(it)
|
binding.etDetail.setText(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
viewModel.tagsLiveData.observe(this) {
|
||||||
|
binding.etTag.setText(it)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,10 @@ class AudioContentModifyViewModel(
|
|||||||
val detailLiveData: LiveData<String>
|
val detailLiveData: LiveData<String>
|
||||||
get() = _detailLiveData
|
get() = _detailLiveData
|
||||||
|
|
||||||
|
private val _tagsLiveData = MutableLiveData("")
|
||||||
|
val tagsLiveData: LiveData<String>
|
||||||
|
get() = _tagsLiveData
|
||||||
|
|
||||||
private val _coverImageLiveData = MutableLiveData("")
|
private val _coverImageLiveData = MutableLiveData("")
|
||||||
val coverImageLiveData: LiveData<String>
|
val coverImageLiveData: LiveData<String>
|
||||||
get() = _coverImageLiveData
|
get() = _coverImageLiveData
|
||||||
@@ -54,12 +58,18 @@ class AudioContentModifyViewModel(
|
|||||||
val isAdultShowUiLiveData: LiveData<Boolean>
|
val isAdultShowUiLiveData: LiveData<Boolean>
|
||||||
get() = _isAdultShowUiLiveData
|
get() = _isAdultShowUiLiveData
|
||||||
|
|
||||||
|
private val _isAvailablePointLiveData = MutableLiveData(false)
|
||||||
|
val isAvailablePointLiveData: LiveData<Boolean>
|
||||||
|
get() = _isAvailablePointLiveData
|
||||||
|
|
||||||
lateinit var getRealPathFromURI: (Uri) -> String?
|
lateinit var getRealPathFromURI: (Uri) -> String?
|
||||||
|
|
||||||
var contentId: Long = 0
|
var contentId: Long = 0
|
||||||
var title: String? = null
|
var title: String? = null
|
||||||
var detail: String? = null
|
var detail: String? = null
|
||||||
|
var tags: String? = null
|
||||||
var coverImageUri: Uri? = null
|
var coverImageUri: Uri? = null
|
||||||
|
var isPointAvailable: Boolean? = null
|
||||||
|
|
||||||
fun setAdult(isAdult: Boolean) {
|
fun setAdult(isAdult: Boolean) {
|
||||||
_isAdultLiveData.postValue(isAdult)
|
_isAdultLiveData.postValue(isAdult)
|
||||||
@@ -69,6 +79,11 @@ class AudioContentModifyViewModel(
|
|||||||
_isAvailableCommentLiveData.postValue(isAvailableComment)
|
_isAvailableCommentLiveData.postValue(isAvailableComment)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setAvailablePoint(isAvailablePoint: Boolean) {
|
||||||
|
isPointAvailable = isAvailablePoint
|
||||||
|
_isAvailablePointLiveData.value = isAvailablePoint
|
||||||
|
}
|
||||||
|
|
||||||
fun getAudioContentDetail(audioContentId: Long, onFailure: (() -> Unit)? = null) {
|
fun getAudioContentDetail(audioContentId: Long, onFailure: (() -> Unit)? = null) {
|
||||||
this.contentId = audioContentId
|
this.contentId = audioContentId
|
||||||
_isLoading.value = true
|
_isLoading.value = true
|
||||||
@@ -85,10 +100,12 @@ class AudioContentModifyViewModel(
|
|||||||
if (it.success && it.data != null) {
|
if (it.success && it.data != null) {
|
||||||
_titleLiveData.value = it.data.title
|
_titleLiveData.value = it.data.title
|
||||||
_detailLiveData.value = it.data.detail
|
_detailLiveData.value = it.data.detail
|
||||||
|
_tagsLiveData.value = it.data.tag
|
||||||
_coverImageLiveData.value = it.data.coverImageUrl
|
_coverImageLiveData.value = it.data.coverImageUrl
|
||||||
_isAvailableCommentLiveData.value = it.data.isCommentAvailable
|
_isAvailableCommentLiveData.value = it.data.isCommentAvailable
|
||||||
_isAdultLiveData.value = it.data.isAdult
|
_isAdultLiveData.value = it.data.isAdult
|
||||||
_isAdultShowUiLiveData.value = !it.data.isAdult
|
_isAdultShowUiLiveData.value = !it.data.isAdult
|
||||||
|
_isAvailablePointLiveData.value = it.data.isAvailableUsePoint
|
||||||
} else {
|
} else {
|
||||||
if (it.message != null) {
|
if (it.message != null) {
|
||||||
_toastLiveData.postValue(it.message)
|
_toastLiveData.postValue(it.message)
|
||||||
@@ -125,7 +142,13 @@ class AudioContentModifyViewModel(
|
|||||||
contentId = contentId,
|
contentId = contentId,
|
||||||
title = title,
|
title = title,
|
||||||
detail = detail,
|
detail = detail,
|
||||||
|
tags = if (tags != _tagsLiveData.value!!) {
|
||||||
|
tags
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
},
|
||||||
isAdult = _isAdultLiveData.value!!,
|
isAdult = _isAdultLiveData.value!!,
|
||||||
|
isPointAvailable = isPointAvailable,
|
||||||
isCommentAvailable = _isAvailableCommentLiveData.value!!
|
isCommentAvailable = _isAvailableCommentLiveData.value!!
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ data class ModifyAudioContentRequest(
|
|||||||
@SerializedName("contentId") val contentId: Long,
|
@SerializedName("contentId") val contentId: Long,
|
||||||
@SerializedName("title") val title: String?,
|
@SerializedName("title") val title: String?,
|
||||||
@SerializedName("detail") val detail: String?,
|
@SerializedName("detail") val detail: String?,
|
||||||
|
@SerializedName("tags") val tags: String?,
|
||||||
@SerializedName("isAdult") val isAdult: Boolean,
|
@SerializedName("isAdult") val isAdult: Boolean,
|
||||||
|
@SerializedName("isPointAvailable") val isPointAvailable: Boolean?,
|
||||||
@SerializedName("isCommentAvailable") val isCommentAvailable: Boolean
|
@SerializedName("isCommentAvailable") val isCommentAvailable: Boolean
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -174,12 +174,125 @@
|
|||||||
tools:ignore="LabelFor" />
|
tools:ignore="LabelFor" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="13.3dp"
|
||||||
|
android:layout_marginTop="30dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:text="태그"
|
||||||
|
android:textColor="@color/color_eeeeee"
|
||||||
|
android:textSize="16.7sp" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/et_tag"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="13.3dp"
|
||||||
|
android:background="@drawable/bg_round_corner_6_7_222222"
|
||||||
|
android:fontFamily="@font/gmarket_sans_medium"
|
||||||
|
android:hint="예 : #연애 #커버곡 #태그"
|
||||||
|
android:importantForAutofill="no"
|
||||||
|
android:inputType="textWebEditText"
|
||||||
|
android:paddingHorizontal="13.3dp"
|
||||||
|
android:paddingVertical="17dp"
|
||||||
|
android:textColor="@color/color_eeeeee"
|
||||||
|
android:textColorHint="@color/color_777777"
|
||||||
|
android:textCursorDrawable="@drawable/edit_text_cursor"
|
||||||
|
android:textSize="13.3sp"
|
||||||
|
android:theme="@style/EditTextStyle"
|
||||||
|
tools:ignore="LabelFor" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="6.7dp"
|
android:layout_height="6.7dp"
|
||||||
android:layout_marginVertical="26.7dp"
|
android:layout_marginVertical="26.7dp"
|
||||||
android:background="@color/color_232323" />
|
android:background="@color/color_232323" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_config_point_title"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="13.3dp"
|
||||||
|
android:layout_marginTop="30dp"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:lineSpacingExtra="5sp"
|
||||||
|
android:text="포인트 사용"
|
||||||
|
android:textColor="@color/color_eeeeee"
|
||||||
|
android:textSize="16.7sp" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_config_point"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="13.3dp"
|
||||||
|
android:layout_marginTop="13.3dp"
|
||||||
|
android:baselineAligned="false">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_available_point"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="@drawable/bg_round_corner_6_7_13181b"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingVertical="14.3dp">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_available_point"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="6.7dp"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_select_check"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_available_point"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:text="가능"
|
||||||
|
android:textColor="@color/color_3bb9f1"
|
||||||
|
android:textSize="14.7sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_not_available_point"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="13.3dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="@drawable/bg_round_corner_6_7_13181b"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingVertical="14.3dp">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_not_available_point"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="6.7dp"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_select_check"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_not_available_point"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:text="불가능"
|
||||||
|
android:textColor="@color/color_3bb9f1"
|
||||||
|
android:textSize="14.7sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/ll_set_adult"
|
android:id="@+id/ll_set_adult"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
Reference in New Issue
Block a user