requestLocationPermission method
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';
}
}