pickFiles static method
Implementation
static Future<List<PickerResult>> pickFiles({
required BuildContext context,
FilePickerConfig? config,
}) async {
try {
// FilePicker uses SAF (Storage Access Framework) which doesn't require permissions
// The system handles permission through the document picker UI
if (!await _checkAndRequestPermission(context)) {
return [];
}
if (Platform.isAndroid || Platform.isIOS) {
int maxCount = config?.maxCount ?? maxFileCount;
final List<PickerResult> results = await FilePickerPlatform.pickFiles(
maxCount: maxCount,
allowedMimeTypes: [],
);
if (results.isEmpty) {
return [];
}
if (results.length > maxCount) {
if (context.mounted) {
AtomicLocalizations atomicLocal = AtomicLocalizations.of(context);
_showErrorDialog(context, atomicLocal.maxCountFile(maxCount));
}
return results.take(maxCount).toList();
}
return results;
} else {
throw UnsupportedError('FilePicker only supports Android and iOS');
}
} catch (e) {
debugPrint('FilePicker.pickFiles error: $e');
return [];
}
}