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( await _sendCallMessage(
targetUserId: targetUserId, targetUserId: targetUserId,
callType: callTypeStr, callType: callTypeStr,
callStatus: 'missed', //
callStatus: 'waitCalling', //
channelId: channelData.channelId, // ID channelId: channelData.channelId, // ID
chatController: chatController, chatController: chatController,
); );

3
lib/im/im_manager.dart

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

2
lib/pages/message/video_call_page.dart

@ -20,6 +20,7 @@ import '../../model/home/marriage_data.dart';
class VideoCallPage extends StatefulWidget { class VideoCallPage extends StatefulWidget {
final String targetUserId; final String targetUserId;
final String? callType; final String? callType;
final String? channelId;
final MarriageData? userData; final MarriageData? userData;
final bool isInitiator; // final bool isInitiator; //
@ -27,6 +28,7 @@ class VideoCallPage extends StatefulWidget {
super.key, super.key,
required this.targetUserId, required this.targetUserId,
this.callType, this.callType,
this.channelId,
this.userData, this.userData,
this.isInitiator = true, 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 avatarUrl;
final String nickName; final String nickName;
final String? callType; final String? callType;
final String? channelId;
final VoidCallback? onTap; // final VoidCallback? onTap; //
final VoidCallback? onAccept; // final VoidCallback? onAccept; //
final VoidCallback? onReject; // final VoidCallback? onReject; //
@ -17,6 +18,7 @@ class VideoCallInviteDialog extends StatelessWidget {
required this.avatarUrl, required this.avatarUrl,
required this.nickName, required this.nickName,
this.callType, this.callType,
this.channelId,
this.onTap, this.onTap,
this.onAccept, this.onAccept,
this.onReject, this.onReject,

Loading…
Cancel
Save