refreshFiles method
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);
}
}
}