|
@@ -48,43 +48,7 @@ abstract class BasePhotoController extends BaseController {
|
|
|
FileSizeCalculatorUtil.calculateTotalSize(assetIds: selectedPhotosIds, updateValue: (double totalSize) {
|
|
FileSizeCalculatorUtil.calculateTotalSize(assetIds: selectedPhotosIds, updateValue: (double totalSize) {
|
|
|
selectedFilesSize.value = totalSize; // 监听并更新 UI
|
|
selectedFilesSize.value = totalSize; // 监听并更新 UI
|
|
|
});
|
|
});
|
|
|
- // double totalSize = 0;
|
|
|
|
|
- // final uncasedIds = selectedPhotosIds.where((id) => !FileSizeCalculatorUtil.fileSizeCache.containsKey(id)).toSet();
|
|
|
|
|
- //
|
|
|
|
|
- // // **1️⃣ 先处理缓存中的文件**
|
|
|
|
|
- //
|
|
|
|
|
- // totalSize = selectedPhotosIds.fold(0, (prev, id) => prev + (FileSizeCalculatorUtil.fileSizeCache[id] ?? 0));
|
|
|
|
|
- //
|
|
|
|
|
- //
|
|
|
|
|
- // // **2️⃣ 分批处理未缓存的文件**
|
|
|
|
|
- // const batchSize = 50;
|
|
|
|
|
- // for (int i = 0; i < uncasedIds.length; i += batchSize) {
|
|
|
|
|
- // if (selectedPhotosIds.isEmpty) {
|
|
|
|
|
- // selectedFilesSize.value = 0;
|
|
|
|
|
- // return;
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // final batch = uncasedIds.skip(i).take(batchSize);
|
|
|
|
|
- // final sizes = await Future.wait(batch.map(FileSizeCalculatorUtil.getFileSize));
|
|
|
|
|
- //
|
|
|
|
|
- // totalSize += sizes.fold(0, (sum, size) => sum + size);
|
|
|
|
|
- //
|
|
|
|
|
- // // **再检查一次是否被清空,避免无意义计算**
|
|
|
|
|
- // if (selectedPhotosIds.isEmpty) {
|
|
|
|
|
- // selectedFilesSize.value = 0;
|
|
|
|
|
- // return;
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // // **减少 UI 更新频率**
|
|
|
|
|
- // if (i % (batchSize * 2) == 0 || i + batchSize >= uncasedIds.length) {
|
|
|
|
|
- // selectedFilesSize.value = totalSize;
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // await Future.delayed(Duration.zero);
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // selectedFilesSize.value = totalSize; // 确保最终更新总大小
|
|
|
|
|
- // PhotoManager.clearFileCache();
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 切换图片选中状态
|
|
// 切换图片选中状态
|