initCallController method
Future<void>
initCallController({
- required List<
String?> userJid, - required BuildContext buildContext,
Implementation
Future<void> initCallController(
{required List<String?> userJid,
required BuildContext buildContext}) async {
debugPrint("#Mirrorfly Call Controller onInit");
groupId(await Mirrorfly.getCallGroupJid());
context = buildContext;
/* if (userJid != null && userJid != "") {
debugPrint("#Mirrorfly Call initCallController UserJid $userJid");
var data = await getProfileDetails(userJid);
profile(data);
calleeName(data.getName());
}*/
audioDeviceChanged();
// if (Get.currentRoute == Routes.onGoingCallView) {
// //startTimer();
// }
getAudioDevices();
/* Mirrorfly.getAllAvailableAudioInput().then((value) {
final availableList = audioDevicesFromJson(value);
availableAudioList(availableList);
debugPrint(
"${Constants.tag} flutter getAllAvailableAudioInput $availableList");
});*/
await Mirrorfly.getCallDirection().then((value) async {
debugPrint("#Mirrorfly Call Direction $value");
if (value == "Incoming") {
Mirrorfly.getCallUsersList().then((value) {
// [{"userJid":"919789482015@xmpp-uikit-qa.contus.us","callStatus":"Trying to Connect"},{"userJid":"919894940560@xmpp-uikit-qa.contus.us","callStatus":"Trying to Connect"},{"userJid":"917010279986@xmpp-uikit-qa.contus.us","callStatus":"Connected"}]
debugPrint("#Mirrorfly call get users --> $value");
final callUserList = callUserListFromJson(value);
callList.addAll(callUserList);
if (callUserList.length > 1) {
// pinnedUserJid(callUserList[0].userJid);
CallUserList firstAttendedCallUser = callUserList.firstWhere(
(callUser) =>
callUser.callStatus?.value == CallStatus.attended ||
callUser.callStatus?.value == CallStatus.connected,
orElse: () => callUserList[0]);
pinnedUserJid(firstAttendedCallUser.userJid!.value);
pinnedUser(firstAttendedCallUser);
}
// getNames();
});
} else {
debugPrint("#Mirrorfly Call Direction outgoing");
debugPrint("#Mirrorfly Call getCallUsersList");
Mirrorfly.getCallUsersList().then((value) {
debugPrint("#Mirrorfly call get users --> $value");
final callUserList = callUserListFromJson(value);
callList(callUserList);
if (callUserList.length > 1) {
// pinnedUserJid(callUserList[0].userJid);
CallUserList firstAttendedCallUser = callUserList.firstWhere(
(callUser) =>
callUser.callStatus?.value == CallStatus.attended ||
callUser.callStatus?.value == CallStatus.connected,
orElse: () => callUserList[0]);
pinnedUserJid(firstAttendedCallUser.userJid!.value);
pinnedUser(firstAttendedCallUser);
}
});
}
});
await Mirrorfly.getCallType().then((value) => callType(value));
debugPrint("#Mirrorfly call type ${callType.value}");
if (callType.value == 'audio') {
Mirrorfly.isUserAudioMuted().then((value) => muted(value));
videoMuted(true);
} else {
Mirrorfly.isUserAudioMuted().then((value) => muted(value));
Mirrorfly.isUserVideoMuted().then((value) => videoMuted(value));
// videoMuted(false);
}
ever(callList, (callback) {
debugPrint("#Mirrorfly call list is changed ******");
debugPrint("#Mirrorfly call list $callList");
});
}