初步替换IM接口
This commit is contained in:
@@ -1,24 +1,26 @@
|
||||
package com.aiosman.ravenow.utils
|
||||
|
||||
import com.tencent.imsdk.v2.V2TIMCallback
|
||||
import com.tencent.imsdk.v2.V2TIMManager
|
||||
import com.tencent.imsdk.v2.V2TIMUserFullInfo
|
||||
import com.tencent.imsdk.v2.V2TIMValueCallback
|
||||
import io.openim.android.sdk.OpenIMClient
|
||||
import io.openim.android.sdk.listener.OnBase
|
||||
import io.openim.android.sdk.models.UserInfo
|
||||
import io.openim.android.sdk.models.UserInfoReq
|
||||
import kotlin.coroutines.suspendCoroutine
|
||||
|
||||
object TrtcHelper {
|
||||
suspend fun loadUnreadCount(): Long {
|
||||
return suspendCoroutine { continuation ->
|
||||
V2TIMManager.getConversationManager()
|
||||
.getTotalUnreadMessageCount(object : V2TIMValueCallback<Long> {
|
||||
override fun onSuccess(t: Long?) {
|
||||
continuation.resumeWith(Result.success(t ?: 0))
|
||||
OpenIMClient.getInstance().conversationManager
|
||||
.getTotalUnreadMsgCount(object : OnBase<String> {
|
||||
override fun onSuccess(data: String?) {
|
||||
// OpenIM 返回的是字符串格式的数字
|
||||
val count = data?.toLongOrNull() ?: 0L
|
||||
continuation.resumeWith(Result.success(count))
|
||||
}
|
||||
|
||||
override fun onError(code: Int, desc: String?) {
|
||||
continuation.resumeWith(Result.failure(Exception("Error $code: $desc")))
|
||||
override fun onError(code: Int, error: String?) {
|
||||
continuation.resumeWith(Result.failure(Exception("Error $code: $error")))
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,19 +28,20 @@ object TrtcHelper {
|
||||
avatar: String?,
|
||||
nickName: String?
|
||||
) {
|
||||
val info = V2TIMUserFullInfo()
|
||||
nickName?.let { info.setNickname(it) }
|
||||
avatar?.let { info.faceUrl = it }
|
||||
val infoReq = UserInfoReq()
|
||||
nickName?.let { infoReq.nickname = it }
|
||||
avatar?.let { infoReq.faceURL = it }
|
||||
return suspendCoroutine { continuation ->
|
||||
V2TIMManager.getInstance().setSelfInfo(info, object : V2TIMCallback {
|
||||
override fun onError(code: Int, desc: String?) {
|
||||
continuation.resumeWith(Result.failure(Exception("Error $code: $desc")))
|
||||
//(OnBase<String> base, UserInfoReq userInfoReq
|
||||
OpenIMClient.getInstance().userInfoManager.setSelfInfo(object : OnBase<String> {
|
||||
override fun onError(code: Int, error: String?) {
|
||||
continuation.resumeWith(Result.failure(Exception("Error $code: $error")))
|
||||
}
|
||||
|
||||
override fun onSuccess() {
|
||||
override fun onSuccess(data: String?) {
|
||||
continuation.resumeWith(Result.success(Unit))
|
||||
}
|
||||
})
|
||||
},infoReq)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user