Advertisement
minhthong095

onCustomPermissionRequest

Jun 21st, 2022 (edited)
1,372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 1.31 KB | None | 0 0
  1. import 'dart:io';
  2.  
  3. import 'package:flutter/material.dart';
  4. import 'package:permission_handler/permission_handler.dart';
  5.  
  6. void onCustomPermissionRequest(
  7.     {required Permission permission,
  8.     VoidCallback? onGranted,
  9.     required VoidCallback onFinish,
  10.     VoidCallback? onIosPermanentlyDenied,
  11.     VoidCallback? onAndroidPermanentlyDenied}) {
  12.   if (Platform.isIOS) {
  13.     permission.status.then((value) {
  14.       if (value.isDenied) {
  15.         permission.request().then((value) {
  16.           if (value.isGranted && onGranted != null) {
  17.             onGranted();
  18.           }
  19.         });
  20.       } else if (value.isPermanentlyDenied && onIosPermanentlyDenied != null) {
  21.         onIosPermanentlyDenied();
  22.       } else if (value.isGranted && onGranted != null) {
  23.         onGranted();
  24.       }
  25.       onFinish();
  26.     });
  27.   } else {
  28.     /// [isRequestRationale] flag for checking already requested
  29.     permission.shouldShowRequestRationale.then((isRequestRationale) {
  30.       permission.request().then((value) {
  31.         if (value.isGranted && onGranted != null) {
  32.           onGranted();
  33.         } else if (value.isPermanentlyDenied &&
  34.             onAndroidPermanentlyDenied != null &&
  35.             !isRequestRationale) {
  36.           onAndroidPermanentlyDenied();
  37.         }
  38.         onFinish();
  39.       });
  40.     });
  41.   }
  42. }
  43.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement