处理最新消息显示
This commit is contained in:
@@ -24,8 +24,10 @@ import com.aiosman.ravenow.ui.navigateToChatAi
|
||||
import io.openim.android.sdk.OpenIMClient
|
||||
import io.openim.android.sdk.listener.OnBase
|
||||
import io.openim.android.sdk.models.ConversationInfo
|
||||
import io.openim.android.sdk.models.Message
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlin.coroutines.suspendCoroutine
|
||||
import com.aiosman.ravenow.utils.MessageParser
|
||||
|
||||
data class AgentConversation(
|
||||
val id: String,
|
||||
@@ -43,39 +45,19 @@ data class AgentConversation(
|
||||
val lastMessage = Calendar.getInstance().apply {
|
||||
timeInMillis = conversation.latestMsgSendTime
|
||||
}
|
||||
var displayText = conversation.latestMsg?: ""
|
||||
// when (conversation.latestMsg) {
|
||||
// 101 -> { // TEXT
|
||||
// displayText = conversation.latestMsg?: ""
|
||||
// }
|
||||
// 102 -> { // IMAGE
|
||||
// displayText = "[图片]"
|
||||
// }
|
||||
// 103 -> { // AUDIO
|
||||
// displayText = "[语音]"
|
||||
// }
|
||||
// 104 -> { // VIDEO
|
||||
// displayText = "[视频]"
|
||||
// }
|
||||
// 105 -> { // FILE
|
||||
// displayText = "[文件]"
|
||||
// }
|
||||
// else -> {
|
||||
// displayText = "[消息]"
|
||||
// }
|
||||
// }
|
||||
|
||||
// 解析最新消息
|
||||
val (displayText, isSelf) = MessageParser.parseLatestMessage(conversation.latestMsg)
|
||||
return AgentConversation(
|
||||
id = conversation.conversationID,
|
||||
nickname = conversation.showName ?: "",
|
||||
lastMessage = conversation.latestMsg ?: "",
|
||||
lastMessage = displayText, // 使用解析后的显示文本
|
||||
lastMessageTime = lastMessage.time.formatChatTime(context),
|
||||
avatar = "${ApiClient.BASE_API_URL+"/"}${conversation.faceURL}"+"?token="+"${AppStore.token}".replace("storage/avatars/", "/avatar/"),
|
||||
unreadCount = conversation.unreadCount,
|
||||
trtcUserId = conversation.userID ?: "",
|
||||
displayText = displayText,
|
||||
// TODO: openim latestMsg
|
||||
isSelf = false,
|
||||
// isSelf = conversation.latestMsg?.sendID == AppState.profile?.trtcUserId
|
||||
isSelf = isSelf // 使用解析后的发送者信息
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,8 +21,10 @@ import com.aiosman.ravenow.data.api.ApiClient
|
||||
import io.openim.android.sdk.OpenIMClient
|
||||
import io.openim.android.sdk.listener.OnBase
|
||||
import io.openim.android.sdk.models.ConversationInfo
|
||||
import io.openim.android.sdk.models.Message
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlin.coroutines.suspendCoroutine
|
||||
import com.aiosman.ravenow.utils.MessageParser
|
||||
|
||||
data class FriendConversation(
|
||||
val id: String,
|
||||
@@ -40,17 +42,20 @@ data class FriendConversation(
|
||||
val lastMessage = Calendar.getInstance().apply {
|
||||
timeInMillis = conversation.latestMsgSendTime
|
||||
}
|
||||
var displayText = conversation.latestMsg
|
||||
|
||||
// 解析最新消息
|
||||
val (displayText, isSelf) = MessageParser.parseLatestMessage(conversation.latestMsg)
|
||||
|
||||
return FriendConversation(
|
||||
id = conversation.conversationID,
|
||||
nickname = conversation.showName ?: "",
|
||||
lastMessage = conversation.latestMsg ?: "",
|
||||
lastMessage = displayText, // 使用解析后的显示文本
|
||||
lastMessageTime = lastMessage.time.formatChatTime(context),
|
||||
avatar = "${ApiClient.BASE_API_URL+"/"}${conversation.faceURL}"+"?token="+"${AppStore.token}".replace("storage/avatars/", "/avatar/"),
|
||||
unreadCount = conversation.unreadCount,
|
||||
trtcUserId = conversation.userID ?: "",
|
||||
displayText = displayText,
|
||||
isSelf = false
|
||||
isSelf = isSelf // 使用解析后的发送者信息
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,8 +26,10 @@ import io.openim.android.sdk.listener.OnAdvanceMsgListener
|
||||
import io.openim.android.sdk.listener.OnBase
|
||||
import io.openim.android.sdk.listener.OnConversationListener
|
||||
import io.openim.android.sdk.models.ConversationInfo
|
||||
import io.openim.android.sdk.models.Message
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlin.coroutines.suspendCoroutine
|
||||
import com.aiosman.ravenow.utils.MessageParser
|
||||
|
||||
data class GroupConversation(
|
||||
val id: String,
|
||||
@@ -46,12 +48,15 @@ data class GroupConversation(
|
||||
val lastMessage = Calendar.getInstance().apply {
|
||||
timeInMillis = conversation.latestMsgSendTime
|
||||
}
|
||||
|
||||
// 解析最新消息
|
||||
val (displayText, isSelf) = MessageParser.parseLatestMessage(conversation.latestMsg)
|
||||
|
||||
return GroupConversation(
|
||||
id = conversation.conversationID,
|
||||
groupId = conversation.groupID ?: "",
|
||||
groupName = conversation.showName ?: "",
|
||||
lastMessage = conversation.latestMsg?: "",
|
||||
lastMessage = displayText, // 使用解析后的显示文本
|
||||
lastMessageTime = lastMessage.time.formatChatTime(context),
|
||||
avatar = if (conversation.faceURL.isNullOrEmpty()) {
|
||||
// 将 groupId 转换为 Base64
|
||||
@@ -64,10 +69,9 @@ data class GroupConversation(
|
||||
"${ApiClient.BASE_API_URL+"/outside/rooms/avatar/"}${conversation.faceURL}"+"?token="+"${AppStore.token}"
|
||||
},
|
||||
unreadCount = conversation.unreadCount,
|
||||
displayText = conversation.latestMsg?: "",
|
||||
isSelf = false,
|
||||
// TODO openim get grouplist
|
||||
memberCount = 0
|
||||
displayText = displayText,
|
||||
isSelf = isSelf, // 使用解析后的发送者信息
|
||||
memberCount = 0 // TODO: 获取群组成员数量
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user