Files
rider-pro-android-app/app/src/main/java/com/aiosman/ravenow/utils/TrtcHelper.kt

47 lines
1.8 KiB
Kotlin
Raw Normal View History

2024-11-17 20:07:42 +08:00
package com.aiosman.ravenow.utils
2024-09-27 21:29:30 +08:00
2025-09-08 15:13:17 +08:00
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
2024-09-27 21:29:30 +08:00
import kotlin.coroutines.suspendCoroutine
object TrtcHelper {
suspend fun loadUnreadCount(): Long {
return suspendCoroutine { continuation ->
2025-09-08 15:13:17 +08:00
OpenIMClient.getInstance().conversationManager
.getTotalUnreadMsgCount(object : OnBase<String> {
override fun onSuccess(data: String?) {
// OpenIM 返回的是字符串格式的数字
val count = data?.toLongOrNull() ?: 0L
continuation.resumeWith(Result.success(count))
2024-09-27 21:29:30 +08:00
}
2025-09-08 15:13:17 +08:00
override fun onError(code: Int, error: String?) {
continuation.resumeWith(Result.failure(Exception("Error $code: $error")))
2024-09-27 21:29:30 +08:00
}
2025-09-08 15:13:17 +08:00
})
2024-09-27 21:29:30 +08:00
}
}
suspend fun updateTrtcProfile(
avatar: String?,
nickName: String?
) {
2025-09-08 15:13:17 +08:00
val infoReq = UserInfoReq()
nickName?.let { infoReq.nickname = it }
avatar?.let { infoReq.faceURL = it }
return suspendCoroutine { continuation ->
2025-09-08 15:13:17 +08:00
//(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")))
}
2025-09-08 15:13:17 +08:00
override fun onSuccess(data: String?) {
continuation.resumeWith(Result.success(Unit))
}
2025-09-08 15:13:17 +08:00
},infoReq)
}
}
2024-09-27 21:29:30 +08:00
}