From 710015d89ebdd99653056404dd8ac501b68c2c20 Mon Sep 17 00:00:00 2001 From: klaus Date: Tue, 15 Apr 2025 16:19:10 +0900 Subject: [PATCH] =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=9E=85?= =?UTF-8?q?=EC=9E=A5=20=EB=A9=94=EC=8B=9C=EC=A7=80=20on/off=20=EC=8A=A4?= =?UTF-8?q?=EC=9C=84=EC=B9=98=20=EC=B6=94=EA=B0=80=20-=20=EB=9D=BC?= =?UTF-8?q?=EC=9D=B4=EB=B8=8C=20=EC=A0=95=EB=B3=B4=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EA=B0=80=EC=9E=A5=20=EC=95=84=EB=9E=98=EC=97=90=20=EC=9E=85?= =?UTF-8?q?=EC=9E=A5=20=EB=A9=94=EC=8B=9C=EC=A7=80=20on/off=20=EC=8A=A4?= =?UTF-8?q?=EC=9C=84=EC=B9=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/live/room/LiveRoomActivity.kt | 15 ++++++--- .../sodalive/live/room/LiveRoomViewModel.kt | 9 ++++++ .../room/update/LiveRoomInfoEditDialog.kt | 31 +++++++++++++++++-- .../layout/dialog_live_room_info_update.xml | 26 ++++++++++++++++ 4 files changed, 75 insertions(+), 6 deletions(-) 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 @@ + + + + + + +