list method
Implementation
Iterable<AssetItem> list([String? prefix]) sync* {
// If a prefix is provided, navigate to that folder first
if (prefix != null) {
final parts = prefix.split('/');
AssetFolder? current = this;
for (var i = 0; i < parts.length; i++) {
final folderPath = parts.sublist(0, i + 1).join('/');
current = current?.subfolders[folderPath];
if (current == null) return; // prefix not found
}
yield* current!.list(); // recursively list from the prefix folder
return;
}
// No prefix: yield items in this folder
yield* items.values;
// Recurse into subfolders
for (final sub in subfolders.values) {
yield* sub.list();
}
}