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.
54 lines
2.1 KiB
Dart
54 lines
2.1 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;
|
|
}
|
|
}
|