diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt index 2eb7093..fd37c9c 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt @@ -175,6 +175,7 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB private var isShowSignatureImage = false private var isAvailableLikeHeart = false private var buttonPosition = IntArray(2) + private var isEntryMessageEnabled = true private val countDownTimer = object : CountDownTimer(remainingNoChattingTime * 1000, 1000) { override fun onTick(millisUntilFinished: Long) { @@ -865,7 +866,8 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB if (it && !SharedPreferenceManager.isAuth) { agora.muteAllRemoteAudioStreams(true) binding.rvChat.visibility = View.INVISIBLE - SodaDialog(this@LiveRoomActivity, + SodaDialog( + this@LiveRoomActivity, layoutInflater, "알림", "지금 참여하던 라이브는 '19세 이상' 연령제한이 설정되어 정보통신망 이용촉진 및 정보 보호 등에 관한 법률 및 청소년 보호법의 규정에 의해 만 19세 미만의 청소년은 이용할 수 없습니다.\n마이페이지에서 본인인증 후 다시 이용하시기 바랍니다.", @@ -949,11 +951,16 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB roomInfoEditDialog.setRoomInfo( response.title, response.notice, - response.isAdult + response.isAdult, + isEntryMessageEnabled ) roomInfoEditDialog.setCoverImageUrl(response.coverImageUrl) roomInfoEditDialog.setMenuPreset(it) - roomInfoEditDialog.setConfirmAction { newTitle, newContent, newCoverImageUri, isActivateMenu, menuId, menu, isAdult -> + roomInfoEditDialog.setConfirmAction { newTitle, newContent, newCoverImageUri, isActivateMenu, menuId, menu, isAdult, isEntryMessageEnabled -> + if (isEntryMessageEnabled != null) { + this.isEntryMessageEnabled = isEntryMessageEnabled + } + viewModel.editLiveRoomInfo( response.roomId, newTitle, @@ -1843,7 +1850,7 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB override fun onMemberJoined(member: RtmChannelMember) { Logger.e("onMemberJoined: ${member.userId}") viewModel.getRoomInfo(roomId, member.userId.toInt()) { - if (it.isNotBlank()) { + if (it.isNotBlank() && isEntryMessageEnabled) { chatAdapter.items.add(LiveRoomJoinChat(it)) invalidateChat() } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomViewModel.kt index 88976d1..f83abcc 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomViewModel.kt @@ -452,6 +452,15 @@ class LiveRoomViewModel( isAdult = isAdult ) + if ( + request.title == null && + request.notice == null && + menu == roomInfoResponse.menuPan && + request.isAdult == null + ) { + return + } + val requestJson = if ( request.title != null || request.notice != null || diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/room/update/LiveRoomInfoEditDialog.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/room/update/LiveRoomInfoEditDialog.kt index d7ac312..a32ca4c 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/room/update/LiveRoomInfoEditDialog.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/room/update/LiveRoomInfoEditDialog.kt @@ -42,11 +42,13 @@ class LiveRoomInfoEditDialog( private val isAdultLiveData = MutableLiveData(false) private val isActivateMenuLiveData = MutableLiveData(false) + private val isEntryMessageEnabledLiveData = MutableLiveData(true) private val selectedMenuLiveData = MutableLiveData() private var menu: String = "" private var isAdult: Boolean = false private var isActivateMenu: Boolean? = null + private var isEntryMessageEnabled: Boolean = false private lateinit var selectedMenu: LiveRoomCreateViewModel.SelectedMenu @@ -108,6 +110,10 @@ class LiveRoomInfoEditDialog( dialogView.llAdult.visibility = View.GONE } + dialogView.ivEntryMessageSwitch.setOnClickListener { + isEntryMessageEnabledLiveData.value = !isEntryMessageEnabledLiveData.value!! + } + selectedMenuLiveData.observe(activity) { deselectAllMenuPreset() @@ -151,18 +157,32 @@ class LiveRoomInfoEditDialog( } ) } + + isEntryMessageEnabledLiveData.observe(activity) { + dialogView.ivEntryMessageSwitch.setImageResource( + if (it) { + R.drawable.btn_toggle_on_big + } else { + R.drawable.btn_toggle_off_big + } + ) + } } fun setRoomInfo( currentTitle: String, currentContent: String, - isAdult: Boolean + isAdult: Boolean, + isEntryMessageEnabled: Boolean ) { dialogView.etTitle.setText(currentTitle) dialogView.etNotice.setText(currentContent) this.isAdult = isAdult isAdultLiveData.value = isAdult + + this.isEntryMessageEnabled = isEntryMessageEnabled + isEntryMessageEnabledLiveData.value = isEntryMessageEnabled } fun setCoverImageUri(coverImageUri: Uri) { @@ -202,7 +222,9 @@ class LiveRoomInfoEditDialog( } } - fun setConfirmAction(confirmAction: (String, String, Uri?, Boolean?, Long, String, Boolean?) -> Unit) { + fun setConfirmAction( + confirmAction: (String, String, Uri?, Boolean?, Long, String, Boolean?, Boolean?) -> Unit + ) { dialogView.tvConfirm.setOnClickListener { alertDialog.dismiss() @@ -233,6 +255,11 @@ class LiveRoomInfoEditDialog( isAdultLiveData.value!! } else { null + }, + if (isEntryMessageEnabled != isEntryMessageEnabledLiveData.value!!) { + isEntryMessageEnabledLiveData.value!! + } else { + null } ) coverImageUri = null diff --git a/app/src/main/res/layout/dialog_live_room_info_update.xml b/app/src/main/res/layout/dialog_live_room_info_update.xml index d5c66b2..146ca82 100644 --- a/app/src/main/res/layout/dialog_live_room_info_update.xml +++ b/app/src/main/res/layout/dialog_live_room_info_update.xml @@ -343,6 +343,32 @@ + + + + + + +