import 'package:doctor_app_flutter/widgets/dialog/AskPermissionDialog.dart'; import 'package:doctor_app_flutter/widgets/transitions/slide_up_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:permission_handler/permission_handler.dart'; class AppPermissionsUtils { static requestVideoCallPermission({BuildContext context, String type,Function onTapGrant}) async { var cameraPermission = Permission.camera; var microphonePermission = Permission.microphone; PermissionStatus permissionCameraStatus = await cameraPermission.status; PermissionStatus permissionMicrophoneStatus = await microphonePermission.status; if (permissionCameraStatus.isPermanentlyDenied || permissionMicrophoneStatus.isPermanentlyDenied) { await _showPermissionDialog(context, type,onTapGrant); } else if (!permissionCameraStatus.isGranted || !permissionMicrophoneStatus.isGranted) { permissionCameraStatus = await cameraPermission.request(); permissionMicrophoneStatus = await microphonePermission.request(); if (permissionCameraStatus.isDenied || permissionMicrophoneStatus.isDenied) await _showPermissionDialog(context, type,onTapGrant); else onTapGrant(); } else if (permissionCameraStatus.isDenied || permissionMicrophoneStatus.isDenied) await _showPermissionDialog(context, type,onTapGrant); else onTapGrant(); } static _showPermissionDialog(BuildContext context, String type,Function onTapGrant) async { Navigator.push( context, SlideUpPageRoute(widget: AskPermissionDialog(type: type,onTapGrant: onTapGrant,))); } static Future isVideoCallPermissionGranted() async { PermissionStatus permissionCameraStatus = await Permission.camera.status; PermissionStatus permissionMicrophoneStatus = await Permission.microphone.status; return permissionCameraStatus.isGranted && permissionMicrophoneStatus.isGranted; } }