refreshFiles method

Future<void> refreshFiles()

Refreshes the current directory's contents.

Fetches and processes:

  • List of files and directories.
  • File counts for each subdirectory.
  • File metadata and validation.

Implementation

Future<void> refreshFiles() async {
  setState(() => isLoading = true);

  try {
    // Get current directory contents.

    final dirUrl = await getDirUrl(currentPath);
    final resources = await getResourcesInContainer(dirUrl);

    if (!mounted) return;

    // Update directories list.

    setState(() => directories = resources.subDirs);

    // Count files in current directory.

    currentDirFileCount = resources.files
        .where((f) => f.endsWith('.enc.ttl') || f.endsWith('.ttl'))
        .length;

    // Get file counts for all subdirectories.

    final counts = await FileOperations.getDirectoryCounts(
      currentPath,
      directories,
    );

    if (!mounted) return;

    // Process and validate files.

    final processedFiles = await FileOperations.getFiles(
      currentPath,
      context,
    );

    if (!mounted) return;

    // Update state with processed data.

    setState(() {
      files = processedFiles;
      directoryCounts = counts;
      isLoading = false;
    });
  } catch (e) {
    debugPrint('Error loading files: $e');
    if (mounted) {
      setState(() => isLoading = false);
    }
  }
}