From 5a846ad5b20677dacf7eb3607641ff46e3e73f43 Mon Sep 17 00:00:00 2001 From: huangsir0 <47199570+huangsir0@users.noreply.github.com> Date: Thu, 14 Dec 2023 11:02:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=B8=AA=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=98=B5=E7=A7=B0=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Flutter/lib/src/call_state.dart | 34 +++++++++++++++++++++++++-------- Flutter/lib/tuicall_kit.dart | 8 ++++++++ 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/Flutter/lib/src/call_state.dart b/Flutter/lib/src/call_state.dart index 1bb8cfd4..34c9a807 100644 --- a/Flutter/lib/src/call_state.dart +++ b/Flutter/lib/src/call_state.dart @@ -15,6 +15,9 @@ import 'package:tencent_calls_uikit/src/utils/string_stream.dart'; import 'package:tencent_cloud_uikit_core/tencent_cloud_uikit_core.dart'; import 'package:tencent_cloud_chat_sdk/tencent_im_sdk_plugin.dart'; +// +typedef NickNameCallback = Future Function(String userId); + class CallState { static final CallState instance = CallState._internal(); @@ -47,6 +50,13 @@ class CallState { bool isChangedBigSmallVideo = false; + // 新增获取nickName + NickNameCallback? nameCallback; + + void setNameCallback({NickNameCallback? nameCallback}) { + this.nameCallback = nameCallback; + } + TUICallObserver observer = TUICallObserver( onError: (int code, String message) { TUIToast.show(content: 'Error: $code, $message'); @@ -113,7 +123,7 @@ class CallState { eventBus.notify(setStateEvent); TUICallKitPlatform.instance.updateCallStateToNative(); }, - onUserReject: (String userId) { + onUserReject: (String userId) async { debugPrint("----------onUserReject----------"); for (var remoteUser in CallState.instance.remoteUserList) { if (remoteUser.id == userId) { @@ -132,10 +142,12 @@ class CallState { if (TUICallScene.singleCall == CallState.instance.scene) { TUIToast.show(content: CallKit_t('对方拒绝了通话请求')); } else { - TUIToast.show(content: '$userId ${CallKit_t('拒绝了通话请求')}'); + String? nickName = + await CallState.instance.nameCallback?.call(userId) ?? userId; + TUIToast.show(content: '$nickName ${CallKit_t('拒绝了通话请求')}'); } }, - onUserNoResponse: (String userId) { + onUserNoResponse: (String userId) async { debugPrint("----------onUserNoResponse----------"); for (var remoteUser in CallState.instance.remoteUserList) { if (remoteUser.id == userId) { @@ -155,10 +167,12 @@ class CallState { if (TUICallScene.singleCall == CallState.instance.scene) { TUIToast.show(content: CallKit_t('对方未响应')); } else { - TUIToast.show(content: '$userId ${CallKit_t('未响应')}'); + String? nickName = + await CallState.instance.nameCallback?.call(userId) ?? userId; + TUIToast.show(content: '$nickName ${CallKit_t('未响应')}'); } }, - onUserLineBusy: (String userId) { + onUserLineBusy: (String userId) async { debugPrint("----------onUserLineBusy----------"); for (var remoteUser in CallState.instance.remoteUserList) { if (remoteUser.id == userId) { @@ -183,7 +197,9 @@ class CallState { if (TUICallScene.singleCall == CallState.instance.scene) { TUIToast.show(content: CallKit_t('对方忙线')); } else { - TUIToast.show(content: '$userId ${CallKit_t('忙线')}'); + String? nickName = + await CallState.instance.nameCallback?.call(userId) ?? userId; + TUIToast.show(content: '$nickName ${CallKit_t('忙线')}'); } }, onUserJoin: (String userId) async { @@ -216,7 +232,7 @@ class CallState { TUICallKitPlatform.instance.updateCallStateToNative(); }, - onUserLeave: (String userId) { + onUserLeave: (String userId) async { debugPrint("----------onUserLeave: userId -> $userId----------"); for (var remoteUser in CallState.instance.remoteUserList) { if (remoteUser.id == userId) { @@ -236,7 +252,9 @@ class CallState { if (TUICallScene.singleCall == CallState.instance.scene) { TUIToast.show(content: CallKit_t('对方已挂断,通话结束')); } else { - TUIToast.show(content: '$userId ${CallKit_t('结束了通话')}'); + String? nickName = + await CallState.instance.nameCallback?.call(userId) ?? userId; + TUIToast.show(content: '$nickName ${CallKit_t('结束了通话')}'); } }, onUserVideoAvailable: (String userId, bool isVideoAvailable) { diff --git a/Flutter/lib/tuicall_kit.dart b/Flutter/lib/tuicall_kit.dart index b6a88eef..b8405739 100644 --- a/Flutter/lib/tuicall_kit.dart +++ b/Flutter/lib/tuicall_kit.dart @@ -2,6 +2,8 @@ import 'package:tencent_calls_engine/tencent_calls_engine.dart'; import 'package:tencent_calls_uikit/src/call_manager.dart'; import 'package:tencent_calls_uikit/src/ui/tuicall_navigator_observer.dart'; +import 'src/call_state.dart'; + class TUICallKit { static final TUICallKit _instance = TUICallKit(); @@ -10,6 +12,12 @@ class TUICallKit { static TUICallKitNavigatorObserver navigatorObserver = TUICallKitNavigatorObserver.getInstance(); + // 新增 nickName 回调 + + void setNameCallback({NickNameCallback? nameCallback}) { + CallState.instance.setNameCallback(nameCallback: nameCallback); + } + /// login TUICallKit /// /// @param sdkAppId sdkAppId