askiOSVideoCallPermissions static method

Future<bool> askiOSVideoCallPermissions(
  1. BuildContext context
)

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);
  }
}