|
|
|
@ -3,7 +3,6 @@ import 'dart:convert';
|
|
|
|
import 'dart:io';
|
|
|
|
import 'dart:io';
|
|
|
|
import 'package:diplomaticquarterapp/pages/conference/zoom/jwt.dart';
|
|
|
|
import 'package:diplomaticquarterapp/pages/conference/zoom/jwt.dart';
|
|
|
|
import 'package:diplomaticquarterapp/pages/conference/zoom/video_view.dart';
|
|
|
|
import 'package:diplomaticquarterapp/pages/conference/zoom/video_view.dart';
|
|
|
|
import 'package:events_emitter/events_emitter.dart';
|
|
|
|
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
import 'package:flutter/foundation.dart';
|
|
|
|
import 'package:flutter/foundation.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
@ -143,10 +142,10 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() {
|
|
|
|
useEffect(() {
|
|
|
|
eventListener.addEventListener();
|
|
|
|
// eventListener.addEventListener();
|
|
|
|
EventEmitter emitter = eventListener.eventEmitter;
|
|
|
|
EventEmitter emitter = eventListener.eventEmitter;
|
|
|
|
|
|
|
|
|
|
|
|
final sessionJoinListener = emitter.on(EventType.onSessionJoin, (sessionUser) async {
|
|
|
|
final sessionJoinListener = emitter.addListener(EventType.onSessionJoin, (sessionUser) async {
|
|
|
|
isInSession.value = true;
|
|
|
|
isInSession.value = true;
|
|
|
|
zoom.session.getSessionName().then((value) => sessionName.value = value!);
|
|
|
|
zoom.session.getSessionName().then((value) => sessionName.value = value!);
|
|
|
|
sessionPassword.value = await zoom.session.getSessionPassword();
|
|
|
|
sessionPassword.value = await zoom.session.getSessionPassword();
|
|
|
|
@ -166,7 +165,7 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
isReceiveSpokenLanguageContentEnabled.value = await zoom.liveTranscriptionHelper.isReceiveSpokenLanguageContentEnabled();
|
|
|
|
isReceiveSpokenLanguageContentEnabled.value = await zoom.liveTranscriptionHelper.isReceiveSpokenLanguageContentEnabled();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final sessionLeaveListener = emitter.on(EventType.onSessionLeave, (data) async {
|
|
|
|
final sessionLeaveListener = emitter.addListener(EventType.onSessionLeave, (data) async {
|
|
|
|
isInSession.value = false;
|
|
|
|
isInSession.value = false;
|
|
|
|
users.value = <ZoomVideoSdkUser>[];
|
|
|
|
users.value = <ZoomVideoSdkUser>[];
|
|
|
|
fullScreenUser.value = null;
|
|
|
|
fullScreenUser.value = null;
|
|
|
|
@ -175,7 +174,7 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
WakelockPlus.disable();
|
|
|
|
WakelockPlus.disable();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final sessionNeedPasswordListener = emitter.on(EventType.onSessionNeedPassword, (data) async {
|
|
|
|
final sessionNeedPasswordListener = emitter.addListener(EventType.onSessionNeedPassword, (data) async {
|
|
|
|
showDialog<String>(
|
|
|
|
showDialog<String>(
|
|
|
|
context: context,
|
|
|
|
context: context,
|
|
|
|
builder: (BuildContext context) => AlertDialog(
|
|
|
|
builder: (BuildContext context) => AlertDialog(
|
|
|
|
@ -195,7 +194,7 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
);
|
|
|
|
);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final sessionPasswordWrongListener = emitter.on(EventType.onSessionPasswordWrong, (data) async {
|
|
|
|
final sessionPasswordWrongListener = emitter.addListener(EventType.onSessionPasswordWrong, (data) async {
|
|
|
|
showDialog<String>(
|
|
|
|
showDialog<String>(
|
|
|
|
context: context,
|
|
|
|
context: context,
|
|
|
|
builder: (BuildContext context) => AlertDialog(
|
|
|
|
builder: (BuildContext context) => AlertDialog(
|
|
|
|
@ -215,7 +214,7 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
);
|
|
|
|
);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final userVideoStatusChangedListener = emitter.on(EventType.onUserVideoStatusChanged, (data) async {
|
|
|
|
final userVideoStatusChangedListener = emitter.addListener(EventType.onUserVideoStatusChanged, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
|
|
|
|
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
|
|
|
|
var userListJson = jsonDecode(data['changedUsers']) as List;
|
|
|
|
var userListJson = jsonDecode(data['changedUsers']) as List;
|
|
|
|
@ -230,7 +229,7 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
videoStatusFlag.value = !videoStatusFlag.value;
|
|
|
|
videoStatusFlag.value = !videoStatusFlag.value;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final userAudioStatusChangedListener = emitter.on(EventType.onUserAudioStatusChanged, (data) async {
|
|
|
|
final userAudioStatusChangedListener = emitter.addListener(EventType.onUserAudioStatusChanged, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
|
|
|
|
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
|
|
|
|
var userListJson = jsonDecode(data['changedUsers']) as List;
|
|
|
|
var userListJson = jsonDecode(data['changedUsers']) as List;
|
|
|
|
@ -245,7 +244,7 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
audioStatusFlag.value = !audioStatusFlag.value;
|
|
|
|
audioStatusFlag.value = !audioStatusFlag.value;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final userShareStatusChangeListener = emitter.on(EventType.onUserShareStatusChanged, (data) async {
|
|
|
|
final userShareStatusChangeListener = emitter.addListener(EventType.onUserShareStatusChanged, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
|
|
|
|
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
|
|
|
|
ZoomVideoSdkUser shareUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['user'].toString()));
|
|
|
|
ZoomVideoSdkUser shareUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['user'].toString()));
|
|
|
|
@ -262,7 +261,7 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
userShareStatusFlag.value = !userShareStatusFlag.value;
|
|
|
|
userShareStatusFlag.value = !userShareStatusFlag.value;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final userJoinListener = emitter.on(EventType.onUserJoin, (data) async {
|
|
|
|
final userJoinListener = emitter.addListener(EventType.onUserJoin, (data) async {
|
|
|
|
if (!isMounted()) return;
|
|
|
|
if (!isMounted()) return;
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
|
|
|
|
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
|
|
|
|
@ -273,7 +272,7 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
fullScreenUser.value = remoteUserList[1];
|
|
|
|
fullScreenUser.value = remoteUserList[1];
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final userLeaveListener = emitter.on(EventType.onUserLeave, (data) async {
|
|
|
|
final userLeaveListener = emitter.addListener(EventType.onUserLeave, (data) async {
|
|
|
|
if (!isMounted()) return;
|
|
|
|
if (!isMounted()) return;
|
|
|
|
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
|
|
|
|
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
@ -296,7 +295,7 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
users.value = remoteUserList;
|
|
|
|
users.value = remoteUserList;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final userNameChangedListener = emitter.on(EventType.onUserNameChanged, (data) async {
|
|
|
|
final userNameChangedListener = emitter.addListener(EventType.onUserNameChanged, (data) async {
|
|
|
|
if (!isMounted()) return;
|
|
|
|
if (!isMounted()) return;
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
ZoomVideoSdkUser? changedUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['changedUser']));
|
|
|
|
ZoomVideoSdkUser? changedUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['changedUser']));
|
|
|
|
@ -310,27 +309,27 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
userNameFlag.value = !userNameFlag.value;
|
|
|
|
userNameFlag.value = !userNameFlag.value;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final commandReceived = emitter.on(EventType.onCommandReceived, (data) async {
|
|
|
|
final commandReceived = emitter.addListener(EventType.onCommandReceived, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
debugPrint("sender: ${ZoomVideoSdkUser.fromJson(jsonDecode(data['sender']))}, command: ${data['command']}");
|
|
|
|
debugPrint("sender: ${ZoomVideoSdkUser.fromJson(jsonDecode(data['sender']))}, command: ${data['command']}");
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final chatDeleteMessageNotify = emitter.on(EventType.onChatDeleteMessageNotify, (data) async {
|
|
|
|
final chatDeleteMessageNotify = emitter.addListener(EventType.onChatDeleteMessageNotify, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
debugPrint("onChatDeleteMessageNotify: messageID: ${data['msgID']}, deleteBy: ${data['type']}");
|
|
|
|
debugPrint("onChatDeleteMessageNotify: messageID: ${data['msgID']}, deleteBy: ${data['type']}");
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final liveStreamStatusChangeListener = emitter.on(EventType.onLiveStreamStatusChanged, (data) async {
|
|
|
|
final liveStreamStatusChangeListener = emitter.addListener(EventType.onLiveStreamStatusChanged, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
debugPrint("onLiveStreamStatusChanged: status: ${data['status']}");
|
|
|
|
debugPrint("onLiveStreamStatusChanged: status: ${data['status']}");
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final liveTranscriptionStatusChangeListener = emitter.on(EventType.onLiveTranscriptionStatus, (data) async {
|
|
|
|
final liveTranscriptionStatusChangeListener = emitter.addListener(EventType.onLiveTranscriptionStatus, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
debugPrint("onLiveTranscriptionStatus: status: ${data['status']}");
|
|
|
|
debugPrint("onLiveTranscriptionStatus: status: ${data['status']}");
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final cloudRecordingStatusListener = emitter.on(EventType.onCloudRecordingStatus, (data) async {
|
|
|
|
final cloudRecordingStatusListener = emitter.addListener(EventType.onCloudRecordingStatus, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
debugPrint("onCloudRecordingStatus: status: ${data['status']}");
|
|
|
|
debugPrint("onCloudRecordingStatus: status: ${data['status']}");
|
|
|
|
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
|
|
|
|
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
|
|
|
|
@ -382,18 +381,18 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final liveTranscriptionMsgInfoReceivedListener = emitter.on(EventType.onLiveTranscriptionMsgInfoReceived, (data) async {
|
|
|
|
final liveTranscriptionMsgInfoReceivedListener = emitter.addListener(EventType.onLiveTranscriptionMsgInfoReceived, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
ZoomVideoSdkLiveTranscriptionMessageInfo? messageInfo = ZoomVideoSdkLiveTranscriptionMessageInfo.fromJson(jsonDecode(data['messageInfo']));
|
|
|
|
ZoomVideoSdkLiveTranscriptionMessageInfo? messageInfo = ZoomVideoSdkLiveTranscriptionMessageInfo.fromJson(jsonDecode(data['messageInfo']));
|
|
|
|
debugPrint("onLiveTranscriptionMsgInfoReceived: content: ${messageInfo.messageContent}");
|
|
|
|
debugPrint("onLiveTranscriptionMsgInfoReceived: content: ${messageInfo.messageContent}");
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final inviteByPhoneStatusListener = emitter.on(EventType.onInviteByPhoneStatus, (data) async {
|
|
|
|
final inviteByPhoneStatusListener = emitter.addListener(EventType.onInviteByPhoneStatus, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
debugPrint("onInviteByPhoneStatus: status: ${data['status']}, reason: ${data['reason']}");
|
|
|
|
debugPrint("onInviteByPhoneStatus: status: ${data['status']}, reason: ${data['reason']}");
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final multiCameraStreamStatusChangedListener = emitter.on(EventType.onMultiCameraStreamStatusChanged, (data) async {
|
|
|
|
final multiCameraStreamStatusChangedListener = emitter.addListener(EventType.onMultiCameraStreamStatusChanged, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
ZoomVideoSdkUser? changedUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['changedUser']));
|
|
|
|
ZoomVideoSdkUser? changedUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['changedUser']));
|
|
|
|
var status = data['status'];
|
|
|
|
var status = data['status'];
|
|
|
|
@ -410,7 +409,7 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final requireSystemPermission = emitter.on(EventType.onRequireSystemPermission, (data) async {
|
|
|
|
final requireSystemPermission = emitter.addListener(EventType.onRequireSystemPermission, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
ZoomVideoSdkUser? changedUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['changedUser']));
|
|
|
|
ZoomVideoSdkUser? changedUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['changedUser']));
|
|
|
|
var permissionType = data['permissionType'];
|
|
|
|
var permissionType = data['permissionType'];
|
|
|
|
@ -448,7 +447,7 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final networkStatusChangeListener = emitter.on(EventType.onUserVideoNetworkStatusChanged, (data) async {
|
|
|
|
final networkStatusChangeListener = emitter.addListener(EventType.onUserVideoNetworkStatusChanged, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
ZoomVideoSdkUser? networkUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['user']));
|
|
|
|
ZoomVideoSdkUser? networkUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['user']));
|
|
|
|
|
|
|
|
|
|
|
|
@ -457,7 +456,7 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final eventErrorListener = emitter.on(
|
|
|
|
final eventErrorListener = emitter.addListener(
|
|
|
|
EventType.onError,
|
|
|
|
EventType.onError,
|
|
|
|
(data) async {
|
|
|
|
(data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
@ -489,24 +488,24 @@ class _CallScreenState extends State<CallScreen> {
|
|
|
|
},
|
|
|
|
},
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
final userRecordingConsentListener = emitter.on(EventType.onUserRecordingConsent, (data) async {
|
|
|
|
final userRecordingConsentListener = emitter.addListener(EventType.onUserRecordingConsent, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
ZoomVideoSdkUser? user = ZoomVideoSdkUser.fromJson(jsonDecode(data['user']));
|
|
|
|
ZoomVideoSdkUser? user = ZoomVideoSdkUser.fromJson(jsonDecode(data['user']));
|
|
|
|
debugPrint('userRecordingConsentListener: user= ${user.userName}');
|
|
|
|
debugPrint('userRecordingConsentListener: user= ${user.userName}');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final callCRCDeviceStatusListener = emitter.on(EventType.onCallCRCDeviceStatusChanged, (data) async {
|
|
|
|
final callCRCDeviceStatusListener = emitter.addListener(EventType.onCallCRCDeviceStatusChanged, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
debugPrint('onCallCRCDeviceStatusChanged: status = ${data['status']}');
|
|
|
|
debugPrint('onCallCRCDeviceStatusChanged: status = ${data['status']}');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final originalLanguageMsgReceivedListener = emitter.on(EventType.onOriginalLanguageMsgReceived, (data) async {
|
|
|
|
final originalLanguageMsgReceivedListener = emitter.addListener(EventType.onOriginalLanguageMsgReceived, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
ZoomVideoSdkLiveTranscriptionMessageInfo? messageInfo = ZoomVideoSdkLiveTranscriptionMessageInfo.fromJson(jsonDecode(data['messageInfo']));
|
|
|
|
ZoomVideoSdkLiveTranscriptionMessageInfo? messageInfo = ZoomVideoSdkLiveTranscriptionMessageInfo.fromJson(jsonDecode(data['messageInfo']));
|
|
|
|
debugPrint("onOriginalLanguageMsgReceived: content: ${messageInfo.messageContent}");
|
|
|
|
debugPrint("onOriginalLanguageMsgReceived: content: ${messageInfo.messageContent}");
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
final chatPrivilegeChangedListener = emitter.on(EventType.onChatPrivilegeChanged, (data) async {
|
|
|
|
final chatPrivilegeChangedListener = emitter.addListener(EventType.onChatPrivilegeChanged, (data) async {
|
|
|
|
data = data as Map;
|
|
|
|
data = data as Map;
|
|
|
|
String type = data['privilege'];
|
|
|
|
String type = data['privilege'];
|
|
|
|
debugPrint('chatPrivilegeChangedListener: type= $type');
|
|
|
|
debugPrint('chatPrivilegeChangedListener: type= $type');
|
|
|
|
|