requestLocationPermission method

Future<PermissionStatus> requestLocationPermission()

Request location permission specifically

Implementation

Future<PermissionStatus> requestLocationPermission() async {
  try {
    _logger.logInfo('Permissions', 'Requesting location permission...');

    final status = await Permission.locationWhenInUse.request();

    switch (status) {
      case PermissionStatus.granted:
        _logger.logSuccess('Permissions', 'Location permission granted');
        break;
      case PermissionStatus.denied:
        _logger.logWarning('Permissions', 'Location permission denied');
        break;
      case PermissionStatus.permanentlyDenied:
        _logger.logWarning(
          'Permissions',
          'Location permission permanently denied',
        );
        break;
      case PermissionStatus.restricted:
        _logger.logWarning('Permissions', 'Location permission restricted');
        break;
      case PermissionStatus.limited:
        _logger.logWarning('Permissions', 'Location permission limited');
        break;
      case PermissionStatus.provisional:
        _logger.logInfo('Permissions', 'Location permission provisional');
        break;
    }

    return status;
  } catch (error) {
    _logger.logError(
      'Permissions',
      'Location permission request failed: ${error.toString()}',
    );
    return PermissionStatus.denied;
  }
}