files_split.dart 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import 'package:photos/models/file/file.dart';
  2. class FilesSplit {
  3. final List<EnteFile> pendingUploads;
  4. final List<EnteFile> ownedByCurrentUser;
  5. final List<EnteFile> ownedByOtherUsers;
  6. FilesSplit({
  7. required this.pendingUploads,
  8. required this.ownedByCurrentUser,
  9. required this.ownedByOtherUsers,
  10. });
  11. int get totalFileOwnedCount =>
  12. pendingUploads.length + ownedByCurrentUser.length;
  13. int get count => totalFileOwnedCount + ownedByOtherUsers.length;
  14. static FilesSplit split(Iterable<EnteFile> files, int currentUserID) {
  15. final List<EnteFile> ownedByCurrentUser = [],
  16. ownedByOtherUsers = [],
  17. pendingUploads = [];
  18. for (var f in files) {
  19. if (f.ownerID == null || f.uploadedFileID == null) {
  20. pendingUploads.add(f);
  21. } else if (f.ownerID == currentUserID) {
  22. ownedByCurrentUser.add(f);
  23. } else {
  24. ownedByOtherUsers.add(f);
  25. }
  26. }
  27. return FilesSplit(
  28. pendingUploads: pendingUploads,
  29. ownedByCurrentUser: ownedByCurrentUser,
  30. ownedByOtherUsers: ownedByOtherUsers,
  31. );
  32. }
  33. }