fix(live-room): BIG_HEART_DONATION 메시지 heartMessage 3초, HEART_DONATION 1.5초 표시 적용
왜: BIG_HEART_DONATION 수신 시 heartMessage 표시 시간이 요구사항(3초)에 맞지 않았음. 무엇: heartMessage 표시 로직을 닉네임+표시시간 큐로 변경하고, HEART(1.5초)/BIG_HEART(3초)를 각 호출부에서 반영. 영향: 애니메이션 로직 변경 없음.
This commit is contained in:
@@ -1686,7 +1686,7 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
|||||||
|
|
||||||
LiveRoomChatRawMessageType.HEART_DONATION -> {
|
LiveRoomChatRawMessageType.HEART_DONATION -> {
|
||||||
handler.post {
|
handler.post {
|
||||||
addHeartMessage(nickname)
|
addHeartMessage(nickname, 1500L)
|
||||||
viewModel.addHeartDonation()
|
viewModel.addHeartDonation()
|
||||||
addHeartAnimation()
|
addHeartAnimation()
|
||||||
}
|
}
|
||||||
@@ -1694,7 +1694,7 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
|||||||
|
|
||||||
LiveRoomChatRawMessageType.BIG_HEART_DONATION -> {
|
LiveRoomChatRawMessageType.BIG_HEART_DONATION -> {
|
||||||
handler.post {
|
handler.post {
|
||||||
addHeartMessage(nickname)
|
addHeartMessage(nickname, 3000L)
|
||||||
viewModel.addHeartDonation(heartCount = message.can)
|
viewModel.addHeartDonation(heartCount = message.can)
|
||||||
addBigHeartAnimation(fromMessage = true)
|
addBigHeartAnimation(fromMessage = true)
|
||||||
}
|
}
|
||||||
@@ -1835,7 +1835,8 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
|||||||
// endregion
|
// endregion
|
||||||
|
|
||||||
// region heart
|
// region heart
|
||||||
private val heartNicknameList = mutableListOf<String>()
|
private val heartMessageQueue = mutableListOf<Pair<String, Long>>() // Pair<nickname, durationMs>
|
||||||
|
private var currentHeartMessageDurationMs: Long = 1500L
|
||||||
private var heartNickname = ""
|
private var heartNickname = ""
|
||||||
set(value) {
|
set(value) {
|
||||||
field = value
|
field = value
|
||||||
@@ -1843,12 +1844,14 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
|||||||
if (field.isNotBlank()) {
|
if (field.isNotBlank()) {
|
||||||
showHeartMessage()
|
showHeartMessage()
|
||||||
handler.postDelayed({
|
handler.postDelayed({
|
||||||
if (heartNicknameList.isNotEmpty()) {
|
if (heartMessageQueue.isNotEmpty()) {
|
||||||
heartNickname = heartNicknameList.removeAt(0)
|
val (nextNickname, durationMs) = heartMessageQueue.removeAt(0)
|
||||||
|
currentHeartMessageDurationMs = durationMs
|
||||||
|
heartNickname = nextNickname
|
||||||
} else {
|
} else {
|
||||||
hideHeartMessage()
|
hideHeartMessage()
|
||||||
}
|
}
|
||||||
}, 1500)
|
}, currentHeartMessageDurationMs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2066,7 +2069,7 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
|||||||
SharedPreferenceManager.userId.toInt()
|
SharedPreferenceManager.userId.toInt()
|
||||||
)
|
)
|
||||||
handler.post {
|
handler.post {
|
||||||
addHeartMessage(nickname)
|
addHeartMessage(nickname, 1500L)
|
||||||
addHeartAnimation()
|
addHeartAnimation()
|
||||||
viewModel.addHeartDonation()
|
viewModel.addHeartDonation()
|
||||||
}
|
}
|
||||||
@@ -2119,7 +2122,7 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
|||||||
SharedPreferenceManager.userId.toInt()
|
SharedPreferenceManager.userId.toInt()
|
||||||
)
|
)
|
||||||
handler.post {
|
handler.post {
|
||||||
addHeartMessage(nickname)
|
addHeartMessage(nickname, 3000L)
|
||||||
addBigHeartAnimation()
|
addBigHeartAnimation()
|
||||||
viewModel.addHeartDonation(100)
|
viewModel.addHeartDonation(100)
|
||||||
}
|
}
|
||||||
@@ -2138,11 +2141,13 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addHeartMessage(nickname: String) {
|
private fun addHeartMessage(nickname: String, durationMs: Long) {
|
||||||
if (heartNickname.isBlank()) {
|
if (heartNickname.isBlank()) {
|
||||||
|
// 현재 표시 시간 먼저 설정 후 표시 시작
|
||||||
|
currentHeartMessageDurationMs = durationMs
|
||||||
heartNickname = nickname
|
heartNickname = nickname
|
||||||
} else {
|
} else {
|
||||||
heartNicknameList.add(nickname)
|
heartMessageQueue.add(nickname to durationMs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user