request method

Future<bool> request({
  1. required Permission permission,
  2. String? title,
  3. String? description,
  4. String? iconPath,
  5. IconData? icon,
  6. Color? iconColor,
  7. bool useDialog = true,
  8. bool showRationaleDialog = true,
})

Implementation

Future<bool> request({
  required Permission permission,
  String? title,
  String? description,
  String? iconPath,
  IconData? icon,
  Color? iconColor,
  bool useDialog = true,
  bool showRationaleDialog = true,
}) async {
  final status = await permission.status;
  if (status.isGranted) return true;
  if (useDialog && showRationaleDialog && status.isDenied) {
    final result = await _showPermissionDialog(
      permission: permission,
      title: title ?? _getDefaultTitle(permission),
      description: description ?? _getDefaultDescription(permission),
      iconPath: iconPath,
      icon: icon ?? _getDefaultIcon(permission),
      iconColor: iconColor ?? _getDefaultColor(permission),
    );
    return result;
  } else {
    final result = await permission.request();
    return result.isGranted;
  }
}