makeCall method
Implementation
void makeCall(BuildContext context) async {
if (selectedUsersJIDList.isEmpty) {
return;
}
var isOneToOneCall = selectedUsersJIDList.length == 1;
var isGroupCall = selectedUsersJIDList.length > 1;
if ((isGroupCall &&
!availableFeatures.value.isGroupCallAvailable.checkNull()) ||
(isOneToOneCall &&
!availableFeatures.value.isOneToOneCallAvailable.checkNull())) {
Helper.showFeatureUnavailable(context);
return;
}
if ((await Mirrorfly.isOnGoingCall()).checkNull()) {
debugPrint("#Mirrorfly Call You are on another call");
toToast(Constants.msgOngoingCallAlert);
return;
}
if (!(await AppUtils.isNetConnected())) {
toToast(Constants.noInternetConnection);
return;
}
if (callType.value == CallType.audio) {
if (context.mounted) {
if (await AppPermission.askAudioCallPermissions(context)) {
if (isOneToOneCall) {
Mirrorfly.makeVoiceCall(
toUserJid: selectedUsersJIDList[0],
flyCallBack: (FlyResponse response) {
if (response.isSuccess) {
MirrorflyUikit.instance.navigationManager.navigateTo(
context: context,
pageToNavigate: OutGoingCallView(
userJid: [selectedUsersJIDList[0]],
),
routeName: Constants.outGoingCallView,
onNavigateComplete: () {});
// Get.offNamed(Routes.outGoingCallView, arguments: {
// "userJid": [selectedUsersJIDList[0]],
// "callType": CallType.audio
// });
}
});
} else {
Mirrorfly.makeGroupVoiceCall(
toUserJidList: selectedUsersJIDList,
flyCallBack: (FlyResponse response) {
if (response.isSuccess) {
MirrorflyUikit.instance.navigationManager.navigateTo(
context: context,
pageToNavigate: OutGoingCallView(
userJid: selectedUsersJIDList,
),
routeName: Constants.outGoingCallView,
onNavigateComplete: () {});
// Get.offNamed(Routes.outGoingCallView,
// arguments: {"userJid": selectedUsersJIDList, "callType": CallType.audio});
}
});
}
}
} else if (callType.value == CallType.video) {
if (context.mounted) {
if (await AppPermission.askVideoCallPermissions(context)) {
if (isOneToOneCall) {
Mirrorfly.makeVideoCall(
toUserJid: selectedUsersJIDList[0],
flyCallBack: (FlyResponse response) {
if (response.isSuccess) {
MirrorflyUikit.instance.navigationManager.navigateTo(
context: context,
pageToNavigate: OutGoingCallView(
userJid: [selectedUsersJIDList[0]],
),
routeName: Constants.outGoingCallView,
onNavigateComplete: () {});
// Get.offNamed(Routes.outGoingCallView, arguments: {
// "userJid": [selectedUsersJIDList[0]],
// "callType": CallType.video
// });
}
});
} else {
Mirrorfly.makeGroupVideoCall(
toUserJidList: selectedUsersJIDList,
flyCallBack: (FlyResponse response) {
if (response.isSuccess) {
MirrorflyUikit.instance.navigationManager.navigateTo(
context: context,
pageToNavigate: OutGoingCallView(
userJid: selectedUsersJIDList,
),
routeName: Constants.outGoingCallView,
onNavigateComplete: () {});
// Get.offNamed(Routes.outGoingCallView,
// arguments: {
// "userJid": selectedUsersJIDList,
// "callType": CallType.video
// });
}
});
}
}
}
}
}
}