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 1d56880..64c06da 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 @@ -74,6 +74,7 @@ import kr.co.vividnext.sodalive.live.room.chat.LiveRoomChatRawMessage import kr.co.vividnext.sodalive.live.room.chat.LiveRoomChatRawMessageType import kr.co.vividnext.sodalive.live.room.chat.LiveRoomDonationChat import kr.co.vividnext.sodalive.live.room.chat.LiveRoomDonationStatusChat +import kr.co.vividnext.sodalive.live.room.chat.LiveRoomHeartDonationChat import kr.co.vividnext.sodalive.live.room.chat.LiveRoomJoinChat import kr.co.vividnext.sodalive.live.room.chat.LiveRoomNormalChat import kr.co.vividnext.sodalive.live.room.chat.LiveRoomRouletteDonationChat @@ -1124,7 +1125,12 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB agora.sendRawMessageToGroup( rawMessage = donationRawMessage.toByteArray(), onSuccess = { + val nickname = viewModel.getUserNickname( + SharedPreferenceManager.userId.toInt() + ) handler.post { + chatAdapter.items.add(LiveRoomHeartDonationChat(nickname)) + invalidateChat() addHeartAnimation() lifecycleScope.launch { viewModel.addHeartDonation() } } @@ -1745,6 +1751,8 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB LiveRoomChatRawMessageType.HEART_DONATION -> { handler.post { + chatAdapter.items.add(LiveRoomHeartDonationChat(nickname)) + invalidateChat() addHeartAnimation() lifecycleScope.launch { viewModel.addHeartDonation() } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/room/chat/LiveRoomChat.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/room/chat/LiveRoomChat.kt index 9f51087..27947e6 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/room/chat/LiveRoomChat.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/room/chat/LiveRoomChat.kt @@ -76,6 +76,7 @@ data class LiveRoomJoinChat( ) (binding as ItemLiveRoomJoinChatBinding).tvJoin.text = spStr + binding.root.setBackgroundResource(R.drawable.bg_round_corner_4_7_cc004462) } } @@ -399,3 +400,36 @@ data class LiveRoomRouletteDonationChat( itemBinding.root.setPadding(33) } } + +@Keep +data class LiveRoomHeartDonationChat( + val nickname: String +) : LiveRoomChat() { + override var type = LiveRoomChatType.JOIN + override fun bind(context: Context, binding: ViewBinding, onClickProfile: ((Long) -> Unit)?) { + val str = "'$nickname'님이 마음을 전했습니다\uD83D\uDC95" + val spStr = SpannableString(str) + + spStr.setSpan( + ForegroundColorSpan( + ContextCompat.getColor( + context, + R.color.color_ffdc00 + ) + ), + str.indexOf("'") + 1, + str.indexOf("'님"), + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE + ) + + spStr.setSpan( + StyleSpan(Typeface.BOLD), + str.indexOf("'"), + str.indexOf("'님"), + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE + ) + + (binding as ItemLiveRoomJoinChatBinding).tvJoin.text = spStr + binding.root.setBackgroundResource(R.drawable.bg_round_corner_4_7_ccff7488) + } +} diff --git a/app/src/main/res/drawable/bg_round_corner_4_7_ccff7488.xml b/app/src/main/res/drawable/bg_round_corner_4_7_ccff7488.xml new file mode 100644 index 0000000..8ad99a6 --- /dev/null +++ b/app/src/main/res/drawable/bg_round_corner_4_7_ccff7488.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 7caa10c..166a016 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -125,4 +125,5 @@ #FF14D9 #333BB9F1 #672BFF + #CCFF7488