parent
0ebb34a2df
commit
9dfd73b090
|
@ -249,6 +249,7 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
|||
|
||||
viewModel.getMemberCan()
|
||||
viewModel.getRoomInfo(roomId)
|
||||
viewModel.getBlockedMemberIdList()
|
||||
|
||||
binding.etChat.setOnFocusChangeListener { view, hasFocus ->
|
||||
if (isNoChatting && hasFocus) {
|
||||
|
@ -522,6 +523,7 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
|||
when (it.itemId) {
|
||||
R.id.menu_user_block -> {
|
||||
viewModel.memberUnBlock(userId)
|
||||
viewModel.removeBlockedMember(memberId = userId)
|
||||
}
|
||||
|
||||
R.id.menu_user_report -> {
|
||||
|
@ -573,6 +575,7 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
|||
dialog.setPositiveButton("차단") { _, _ ->
|
||||
roomUserProfileDialog.dismiss()
|
||||
viewModel.memberBlock(userId) {
|
||||
viewModel.addBlockedMember(memberId = userId)
|
||||
if (viewModel.roomInfoResponse.creatorId == SharedPreferenceManager.userId) {
|
||||
kickOut(userId)
|
||||
}
|
||||
|
@ -1529,20 +1532,23 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
|||
else -> {}
|
||||
}
|
||||
} else {
|
||||
val chat = message.text
|
||||
val memberId = fromMember.userId.toLong()
|
||||
if (viewModel.isNotBlockedMember(memberId)) {
|
||||
val chat = message.text
|
||||
|
||||
if (chat.isNotBlank()) {
|
||||
handler.post {
|
||||
chatAdapter.items.add(
|
||||
LiveRoomNormalChat(
|
||||
userId = fromMember.userId.toLong(),
|
||||
profileUrl = profileUrl,
|
||||
nickname = nickname,
|
||||
rank = rank,
|
||||
chat = chat
|
||||
if (chat.isNotBlank()) {
|
||||
handler.post {
|
||||
chatAdapter.items.add(
|
||||
LiveRoomNormalChat(
|
||||
userId = memberId,
|
||||
profileUrl = profileUrl,
|
||||
nickname = nickname,
|
||||
rank = rank,
|
||||
chat = chat
|
||||
)
|
||||
)
|
||||
)
|
||||
invalidateChat()
|
||||
invalidateChat()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -90,6 +90,8 @@ class LiveRoomViewModel(
|
|||
|
||||
lateinit var getRealPathFromURI: (Uri) -> String?
|
||||
|
||||
private val blockedMemberIdList: MutableList<Long> = mutableListOf()
|
||||
|
||||
fun getUserNickname(memberId: Int): String {
|
||||
for (manager in roomInfoResponse.managerList) {
|
||||
if (manager.id.toInt() == memberId) {
|
||||
|
@ -236,6 +238,35 @@ class LiveRoomViewModel(
|
|||
return memberId == roomInfoResponse.creatorId.toInt()
|
||||
}
|
||||
|
||||
fun isNotBlockedMember(memberId: Long): Boolean {
|
||||
return !blockedMemberIdList.contains(memberId)
|
||||
}
|
||||
|
||||
fun addBlockedMember(memberId: Long) {
|
||||
blockedMemberIdList.add(memberId)
|
||||
}
|
||||
|
||||
fun removeBlockedMember(memberId: Long) {
|
||||
blockedMemberIdList.remove(memberId)
|
||||
}
|
||||
|
||||
fun getBlockedMemberIdList() {
|
||||
compositeDisposable.add(
|
||||
userRepository.getBlockedMemberIdList(token = "Bearer ${SharedPreferenceManager.token}")
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(
|
||||
{
|
||||
if (it.success && it.data != null) {
|
||||
this.blockedMemberIdList.clear()
|
||||
this.blockedMemberIdList.addAll(it.data)
|
||||
}
|
||||
},
|
||||
{}
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
fun getMemberCan() {
|
||||
compositeDisposable.add(
|
||||
userRepository.getMemberInfo(token = "Bearer ${SharedPreferenceManager.token}")
|
||||
|
@ -247,8 +278,7 @@ class LiveRoomViewModel(
|
|||
SharedPreferenceManager.can = it.data.can
|
||||
}
|
||||
},
|
||||
{
|
||||
}
|
||||
{}
|
||||
)
|
||||
)
|
||||
}
|
||||
|
@ -526,7 +556,13 @@ class LiveRoomViewModel(
|
|||
) {
|
||||
_isLoading.postValue(true)
|
||||
compositeDisposable.add(
|
||||
repository.donation(roomId, can, message, isSecret, "Bearer ${SharedPreferenceManager.token}")
|
||||
repository.donation(
|
||||
roomId,
|
||||
can,
|
||||
message,
|
||||
isSecret,
|
||||
"Bearer ${SharedPreferenceManager.token}"
|
||||
)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(
|
||||
|
|
|
@ -152,4 +152,9 @@ interface UserApi {
|
|||
@Query("size") size: Int,
|
||||
@Header("Authorization") authHeader: String
|
||||
): Single<ApiResponse<GetBlockedMemberListResponse>>
|
||||
|
||||
@GET("/member/block/id")
|
||||
fun getBlockedMemberIdList(
|
||||
@Header("Authorization") authHeader: String
|
||||
): Single<ApiResponse<List<Long>>>
|
||||
}
|
||||
|
|
|
@ -122,4 +122,6 @@ class UserRepository(private val userApi: UserApi) {
|
|||
size = size,
|
||||
authHeader = token
|
||||
)
|
||||
|
||||
fun getBlockedMemberIdList(token: String) = userApi.getBlockedMemberIdList(authHeader = token)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue