Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'dart:io';
- import 'package:flutter/material.dart';
- import 'package:permission_handler/permission_handler.dart';
- void onCustomPermissionRequest(
- {required Permission permission,
- VoidCallback? onGranted,
- required VoidCallback onFinish,
- VoidCallback? onIosPermanentlyDenied,
- VoidCallback? onAndroidPermanentlyDenied}) {
- if (Platform.isIOS) {
- permission.status.then((value) {
- if (value.isDenied) {
- permission.request().then((value) {
- if (value.isGranted && onGranted != null) {
- onGranted();
- }
- });
- } else if (value.isPermanentlyDenied && onIosPermanentlyDenied != null) {
- onIosPermanentlyDenied();
- } else if (value.isGranted && onGranted != null) {
- onGranted();
- }
- onFinish();
- });
- } else {
- /// [isRequestRationale] flag for checking already requested
- permission.shouldShowRequestRationale.then((isRequestRationale) {
- permission.request().then((value) {
- if (value.isGranted && onGranted != null) {
- onGranted();
- } else if (value.isPermanentlyDenied &&
- onAndroidPermanentlyDenied != null &&
- !isRequestRationale) {
- onAndroidPermanentlyDenied();
- }
- onFinish();
- });
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement