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: AppConstants.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: AppConstants.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);
}
}