You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.9 KiB
Dart
43 lines
1.9 KiB
Dart
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<bool> isVideoCallPermissionGranted() async {
|
|
PermissionStatus permissionCameraStatus = await Permission.camera.status;
|
|
PermissionStatus permissionMicrophoneStatus = await Permission.microphone.status;
|
|
return permissionCameraStatus.isGranted && permissionMicrophoneStatus.isGranted;
|
|
}
|
|
}
|