Browse Source

feat(call): 添加频道ID支持并更新通话状态

- 在通话控制器中将初始状态从'missed'更改为'waitCalling'
- 在IM管理器中添加channelId字段解析和传递
- 在视频通话邀请对话框中添加channelId参数
- 在视频通话页面中添加channelId参数支持
- 更新通话消息发送时包含频道ID信息
master
Jolie 3 months ago
parent
commit
3b5879284f
4 changed files with 8 additions and 1 deletions
  1. 2
      lib/controller/message/call_controller.dart
  2. 3
      lib/im/im_manager.dart
  3. 2
      lib/pages/message/video_call_page.dart
  4. 2
      lib/widget/message/video_call_invite_dialog.dart

2
lib/controller/message/call_controller.dart

@ -198,7 +198,7 @@ class CallController extends GetxController {
await _sendCallMessage(
targetUserId: targetUserId,
callType: callTypeStr,
callStatus: 'missed', //
callStatus: 'waitCalling', //
channelId: channelData.channelId, // ID
chatController: chatController,
);

3
lib/im/im_manager.dart

@ -1434,6 +1434,7 @@ class IMManager {
Map<String, dynamic>? callInfo;
String? callType;
String? callStatus;
String? channelId;
try {
//
@ -1443,6 +1444,7 @@ class IMManager {
final params = customBody.params!;
callType = params['callType'] ?? 'voice';
callStatus = params['callStatus'] ?? 'missed';
channelId = params['channelId'] ?? '';
callInfo = {
'callType': callType,
'callStatus': callStatus,
@ -1514,6 +1516,7 @@ class IMManager {
Get.to(() => VideoCallPage(
targetUserId: fromId,
isInitiator: false,
channelId: channelId,
));
},
onAccept: () async {

2
lib/pages/message/video_call_page.dart

@ -20,6 +20,7 @@ import '../../model/home/marriage_data.dart';
class VideoCallPage extends StatefulWidget {
final String targetUserId;
final String? callType;
final String? channelId;
final MarriageData? userData;
final bool isInitiator; //
@ -27,6 +28,7 @@ class VideoCallPage extends StatefulWidget {
super.key,
required this.targetUserId,
this.callType,
this.channelId,
this.userData,
this.isInitiator = true,
});

2
lib/widget/message/video_call_invite_dialog.dart

@ -8,6 +8,7 @@ class VideoCallInviteDialog extends StatelessWidget {
final String avatarUrl;
final String nickName;
final String? callType;
final String? channelId;
final VoidCallback? onTap; //
final VoidCallback? onAccept; //
final VoidCallback? onReject; //
@ -17,6 +18,7 @@ class VideoCallInviteDialog extends StatelessWidget {
required this.avatarUrl,
required this.nickName,
this.callType,
this.channelId,
this.onTap,
this.onAccept,
this.onReject,

Loading…
Cancel
Save