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 a5fd2cf1..b2d5a1dc 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 @@ -1686,7 +1686,7 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB LiveRoomChatRawMessageType.HEART_DONATION -> { handler.post { - addHeartMessage(nickname) + addHeartMessage(nickname, 1500L) viewModel.addHeartDonation() addHeartAnimation() } @@ -1694,7 +1694,7 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB LiveRoomChatRawMessageType.BIG_HEART_DONATION -> { handler.post { - addHeartMessage(nickname) + addHeartMessage(nickname, 3000L) viewModel.addHeartDonation(heartCount = message.can) addBigHeartAnimation(fromMessage = true) } @@ -1835,7 +1835,8 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB // endregion // region heart - private val heartNicknameList = mutableListOf() + private val heartMessageQueue = mutableListOf>() // Pair + private var currentHeartMessageDurationMs: Long = 1500L private var heartNickname = "" set(value) { field = value @@ -1843,12 +1844,14 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB if (field.isNotBlank()) { showHeartMessage() handler.postDelayed({ - if (heartNicknameList.isNotEmpty()) { - heartNickname = heartNicknameList.removeAt(0) + if (heartMessageQueue.isNotEmpty()) { + val (nextNickname, durationMs) = heartMessageQueue.removeAt(0) + currentHeartMessageDurationMs = durationMs + heartNickname = nextNickname } else { hideHeartMessage() } - }, 1500) + }, currentHeartMessageDurationMs) } } @@ -2066,7 +2069,7 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB SharedPreferenceManager.userId.toInt() ) handler.post { - addHeartMessage(nickname) + addHeartMessage(nickname, 1500L) addHeartAnimation() viewModel.addHeartDonation() } @@ -2119,7 +2122,7 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB SharedPreferenceManager.userId.toInt() ) handler.post { - addHeartMessage(nickname) + addHeartMessage(nickname, 3000L) addBigHeartAnimation() viewModel.addHeartDonation(100) } @@ -2138,11 +2141,13 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB } } - private fun addHeartMessage(nickname: String) { + private fun addHeartMessage(nickname: String, durationMs: Long) { if (heartNickname.isBlank()) { + // 현재 표시 시간 먼저 설정 후 표시 시작 + currentHeartMessageDurationMs = durationMs heartNickname = nickname } else { - heartNicknameList.add(nickname) + heartMessageQueue.add(nickname to durationMs) } }