requestLocationPermission method

  1. @override
Future<String> requestLocationPermission()
override

Request location permission

Implementation

@override
Future<String> requestLocationPermission() async {
  debugPrint('Requesting location permission');
  try {
    final result = await methodChannel.invokeMethod<dynamic>(
      'requestLocationPermission',
    );
    debugPrint('Location permission result: $result');

    if (result is bool) {
      return result ? 'GRANTED' : 'DENIED';
    } else if (result is Map) {
      // For map results, check if any permission is granted
      final values = result.values.toList();
      debugPrint('Location permission values: $values');

      if (values.contains('GRANTED')) {
        return 'GRANTED';
      } else if (values.contains('OPEN_SETTINGS')) {
        return 'OPEN_SETTINGS';
      } else if (values.contains('SHOW_RATIONALE')) {
        return 'SHOW_RATIONALE';
      }
      return 'DENIED';
    }

    return result as String? ?? 'DENIED';
  } catch (e) {
    debugPrint('Error requesting location permission: $e');
    return 'ERROR';
  }
}