file_type.dart 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import "package:photo_manager/photo_manager.dart";
  2. enum FileType {
  3. image,
  4. video,
  5. livePhoto,
  6. other,
  7. }
  8. int getInt(FileType fileType) {
  9. switch (fileType) {
  10. case FileType.image:
  11. return 0;
  12. case FileType.video:
  13. return 1;
  14. case FileType.livePhoto:
  15. return 2;
  16. default:
  17. return -1;
  18. }
  19. }
  20. FileType getFileType(int fileType) {
  21. switch (fileType) {
  22. case 0:
  23. return FileType.image;
  24. case 1:
  25. return FileType.video;
  26. case 2:
  27. return FileType.livePhoto;
  28. default:
  29. return FileType.other;
  30. }
  31. }
  32. FileType fileTypeFromAsset(AssetEntity asset) {
  33. FileType type = FileType.image;
  34. switch (asset.type) {
  35. case AssetType.image:
  36. type = FileType.image;
  37. // PHAssetMediaSubtype.photoLive.rawValue is 8
  38. // This hack should go away once photos_manager support livePhotos
  39. if (asset.subtype > -1 && (asset.subtype & 8) != 0) {
  40. type = FileType.livePhoto;
  41. }
  42. break;
  43. case AssetType.video:
  44. type = FileType.video;
  45. break;
  46. default:
  47. type = FileType.other;
  48. break;
  49. }
  50. return type;
  51. }
  52. String getHumanReadableString(FileType fileType) {
  53. switch (fileType) {
  54. case FileType.image:
  55. return "Image";
  56. case FileType.video:
  57. return "Video";
  58. case FileType.livePhoto:
  59. return "Live Photo";
  60. default:
  61. return fileType.name.toUpperCase();
  62. }
  63. }