라이브 방

- 하트 후원시 채팅으로 알림
This commit is contained in:
klaus 2024-10-17 15:01:05 +09:00
parent 3a33153361
commit 96a3ef44f6
4 changed files with 51 additions and 0 deletions

View File

@ -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<ActivityLiveRoomBinding>(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<ActivityLiveRoomBinding>(ActivityLiveRoomB
LiveRoomChatRawMessageType.HEART_DONATION -> {
handler.post {
chatAdapter.items.add(LiveRoomHeartDonationChat(nickname))
invalidateChat()
addHeartAnimation()
lifecycleScope.launch { viewModel.addHeartDonation() }
}

View File

@ -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)
}
}

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/color_ccff7488" />
<corners android:radius="4.7dp" />
<stroke
android:width="1dp"
android:color="@color/color_ccff7488" />
</shape>

View File

@ -125,4 +125,5 @@
<color name="color_ff14d9">#FF14D9</color>
<color name="color_333bb9f1">#333BB9F1</color>
<color name="color_672bff">#672BFF</color>
<color name="color_ccff7488">#CCFF7488</color>
</resources>