askiOSVideoCallPermissions static method
Implementation
static Future<bool> askiOSVideoCallPermissions(BuildContext context) async {
var info = await PackageInfo.fromPlatform();
final microphone = await Permission.microphone.status;//RECORD_AUDIO
final camera = await Permission.camera.status;
const newPermission = [
Permission.microphone,
Permission.camera,
];
if((microphone != PermissionStatus.granted && microphone != PermissionStatus.permanentlyDenied) || (camera != PermissionStatus.granted && camera != PermissionStatus.permanentlyDenied)){
if(context.mounted) {
var permissionPopupValue = await mirrorFlyPermissionDialog(
icon: recordAudioVideoPermission,
content: Constants.videoCallPermission,
appName: info.appName,
context: context);
if (permissionPopupValue) {
var newp = await newPermission.request();
PermissionStatus? speech_ = newp[Permission.microphone];
PermissionStatus? camera_ = newp[Permission.camera];
return (speech_!.isGranted && camera_!.isGranted);
} else {
toToast("Need Camera and Microphone Permission to Make Video Call");
return false;
}
}else{
LogMessage.d("askiOSVideoCallPermissions mirrorFlyPermissionDialog", "Context is Not Mounted");
return false;
}
}else if ((microphone == PermissionStatus.permanentlyDenied) || (camera == PermissionStatus.permanentlyDenied)){
if(context.mounted){
var popupValue = await customPermissionDialog(
icon: audioPermission,
content: getPermissionAlertMessage("audio_call"), appName: info.appName, context: context);
if (popupValue) {
openAppSettings();
return false;
} else {
return false;
}
}else{
LogMessage.d("askiOSVideoCallPermissions customPermissionDialog", "Context is Not Mounted");
return false;
}
} else{
return (microphone.isGranted && camera.isGranted);
}
}