checkPermission static method

Future<bool> checkPermission(
  1. Permission permission,
  2. String permissionIcon,
  3. String permissionContent
)

Implementation

static Future<bool> checkPermission(Permission permission,
    String permissionIcon, String permissionContent) async {
  var status = await permission.status;
  debugPrint("checkPermission $permission status $status");
  if (status == PermissionStatus.granted) {
    debugPrint("permission granted opening");
    return true;
  } else if (status == PermissionStatus.denied ||
      (Platform.isAndroid && await permission.shouldShowRequestRationale)) {
    LogMessage.d('denied', 'permission');
    var popupValue = await customPermissionDialog(
        icon: permissionIcon,
        content: permissionContent,
        dialogStyle: AppStyleConfig.dialogStyle);
    if (popupValue) {
      var newp = await AppPermission.requestPermission(permission);
      return newp.isGranted;
    } else {
      return false;
    }
  } else if (status == PermissionStatus.denied) {
    LogMessage.d('denied', 'permission');
    var popupValue = await customPermissionDialog(
        icon: permissionIcon,
        content: permissionContent,
        dialogStyle: AppStyleConfig.dialogStyle);
    if (popupValue) {
      // return AppPermission.requestPermission(permission);/*.then((value) {
      var newp = await AppPermission.requestPermission(permission);
      /*if(newp.isPermanentlyDenied) {
        // savePermissionAsked(permission);
        var deniedPopupValue = await customPermissionDialog(
            icon: permissionIcon,
            content: getPermissionAlertMessage(
                permission.toString().replaceAll("Permission.", "")));
        if (deniedPopupValue) {
          openAppSettings();
          return false;
        } else {
          return false;
        }
      }else{
        return newp.isGranted;
      }*/
      return newp.isGranted;
    } else {
      return false;
    }
  } else {
    var deniedPopupValue = await customPermissionDialog(
        icon: permissionIcon,
        content: getPermissionAlertMessage(
            permission.toString().replaceAll("Permission.", "")),
        dialogStyle: AppStyleConfig.dialogStyle);
    if (deniedPopupValue) {
      openAppSettings();
      return false;
    } else {
      return false;
    }
  }
}