file_util.dart 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import 'package:photo_manager/photo_manager.dart';
  2. import 'package:photos/core/cache/image_cache.dart';
  3. import 'package:photos/db/files_db.dart';
  4. import 'package:photos/models/file.dart';
  5. import 'package:photos/models/file_type.dart';
  6. Future<void> deleteFiles(List<File> files,
  7. {bool deleteEveryWhere = false}) async {
  8. await PhotoManager.editor
  9. .deleteWithIds(files.map((file) => file.localId).toList());
  10. for (File file in files) {
  11. deleteEveryWhere
  12. ? await FilesDB.instance.markForDeletion(file)
  13. : await FilesDB.instance.delete(file);
  14. }
  15. }
  16. void preloadFile(File file) {
  17. if (file.fileType == FileType.video) {
  18. return;
  19. }
  20. if (file.localId == null) {
  21. if (BytesLruCache.get(file) == null) {
  22. file.getBytes().then((data) {
  23. BytesLruCache.put(file, data);
  24. });
  25. }
  26. } else {
  27. if (FileLruCache.get(file) == null) {
  28. file.getAsset().then((asset) {
  29. asset.file.then((assetFile) {
  30. FileLruCache.put(file, assetFile);
  31. });
  32. });
  33. }
  34. }
  35. }