Bladeren bron

Add file subtype and video duration to metadata

vishnukvmd 4 jaren geleden
bovenliggende
commit
97ea3b2777
2 gewijzigde bestanden met toevoegingen van 8 en 2 verwijderingen
  1. 6 1
      lib/models/file.dart
  2. 2 1
      lib/utils/file_uploader.dart

+ 6 - 1
lib/models/file.dart

@@ -98,7 +98,7 @@ class File {
     fileType = getFileType(metadata["fileType"]);
   }
 
-  Map<String, dynamic> getMetadata() {
+  Future<Map<String, dynamic>> getMetadata() async {
     final metadata = <String, dynamic>{};
     metadata["localID"] = isSharedMediaToAppSandbox() ? null : localID;
     metadata["title"] = title;
@@ -112,6 +112,11 @@ class File {
       metadata["longitude"] = location.longitude;
     }
     metadata["fileType"] = fileType.index;
+    final asset = await getAsset();
+    metadata["subType"] = asset.subTypes;
+    if (fileType == FileType.video) {
+      metadata["duration"] = asset.duration;
+    }
     metadata["hash"] = hash;
     return metadata;
   }

+ 2 - 1
lib/utils/file_uploader.dart

@@ -321,8 +321,9 @@ class FileUploader {
       file.hash = Sodium.bin2base64(
           await CryptoUtil.getHash(mediaUploadData.sourceFile));
 
+      final metadata = await file.getMetadata();
       final encryptedMetadataData = await CryptoUtil.encryptChaCha(
-          utf8.encode(jsonEncode(file.getMetadata())), fileAttributes.key);
+          utf8.encode(jsonEncode(metadata)), fileAttributes.key);
       final fileDecryptionHeader = Sodium.bin2base64(fileAttributes.header);
       final thumbnailDecryptionHeader =
           Sodium.bin2base64(encryptedThumbnailData.header);