From 66f2f8a47bcef9ac277ea359261872a839450be8 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Sun, 3 May 2026 22:28:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(login):=20=E6=B7=BB=E5=8A=A0=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=A8=A1=E5=BC=8F=E4=B8=8B=E7=9A=84=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在登录界面添加了测试用户登录按钮 - 仅在DEBUG模式下显示测试登录选项 - 集成测试用户1和测试用户2的快速登录功能 - 移动IM SDK中的事件监听器定义位置以优化代码结构 --- .../com/xuqm/sdk/sample/ui/auth/LoginScreen.kt | 11 +++++++++++ sdk-im/src/main/java/com/xuqm/sdk/im/ImSDK.kt | 14 +++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/sample-app/src/main/java/com/xuqm/sdk/sample/ui/auth/LoginScreen.kt b/sample-app/src/main/java/com/xuqm/sdk/sample/ui/auth/LoginScreen.kt index 9180ae1..5981cd9 100644 --- a/sample-app/src/main/java/com/xuqm/sdk/sample/ui/auth/LoginScreen.kt +++ b/sample-app/src/main/java/com/xuqm/sdk/sample/ui/auth/LoginScreen.kt @@ -32,6 +32,7 @@ import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory import com.xuqm.sdk.sample.di.AppDependencies +import com.xuqm.sdk.sample.BuildConfig import android.widget.Toast @Composable @@ -122,5 +123,15 @@ fun LoginScreen( TextButton(onClick = onOpenEnvironment) { Text("环境设置") } + + if (BuildConfig.DEBUG) { + Spacer(Modifier.height(8.dp)) + TextButton(onClick = { viewModel.login("testuser1", "test123") }) { + Text("[测试] 登录用户1", style = MaterialTheme.typography.bodySmall) + } + TextButton(onClick = { viewModel.login("testuser2", "test123") }) { + Text("[测试] 登录用户2", style = MaterialTheme.typography.bodySmall) + } + } } } diff --git a/sdk-im/src/main/java/com/xuqm/sdk/im/ImSDK.kt b/sdk-im/src/main/java/com/xuqm/sdk/im/ImSDK.kt index 7c00099..73506fe 100644 --- a/sdk-im/src/main/java/com/xuqm/sdk/im/ImSDK.kt +++ b/sdk-im/src/main/java/com/xuqm/sdk/im/ImSDK.kt @@ -98,6 +98,13 @@ object ImSDK { fun onConversationsChanged(conversations: List) } + private val conversationEventListener = object : ImEventListener { + override fun onMessage(message: ImMessage) { onMessageReceived(message) } + override fun onGroupMessage(message: ImMessage) { onMessageReceived(message) } + override fun onRead(message: ImMessage) { onReadReceived(message) } + override fun onRevoke(message: ImMessage) { onRevokeReceived(message) } + } + init { XuqmSDK.currentLoginSession?.let { onSdkLogin(it) } } @@ -901,13 +908,6 @@ object ImSDK { ) } - private val conversationEventListener = object : ImEventListener { - override fun onMessage(message: ImMessage) { onMessageReceived(message) } - override fun onGroupMessage(message: ImMessage) { onMessageReceived(message) } - override fun onRead(message: ImMessage) { onReadReceived(message) } - override fun onRevoke(message: ImMessage) { onRevokeReceived(message) } - } - private fun getConversationTargetId(message: ImMessage): String { return if (message.chatType.uppercase() == "GROUP") { message.toId