openFile method

Future<void> openFile(
  1. BuildContext context,
  2. FilePickerConfig config,
  3. FileWrapper file
)

Opens the provided file.

Opens links in an InAppWebView, otherwise opens the file using the native viewer.

Implementation

Future<void> openFile(BuildContext context, FilePickerConfig config, FileWrapper file) async {
  if (file.content != null && file.content is XFile) {
    final XFile fileToOpen = file.content as XFile;
    if (file.isImage()) {
      // Edit the file
      final ZdsFileEditPostProcessor editPostProcessor = ZdsFileEditPostProcessor(() => context);
      final FileWrapper editedFile = await editPostProcessor.process(config, file);
      if (editedFile.content != file.content) {
        const ZdsFileCompressPostProcessor compressPostProcessor = ZdsFileCompressPostProcessor();
        final FileWrapper compressedFile = await compressPostProcessor.process(config, editedFile);
        final int index = removeFile(file);
        items.insert(index, compressedFile);
        notifyListeners();
      }
    } else {
      await OpenFilex.open(fileToOpen.path);
    }
  }
}