浏览代码

Merge pull request #725 from ente-io/fix_collection_type

Fix collection type
Vishnu Mohandas 2 年之前
父节点
当前提交
39604b99f2
共有 3 个文件被更改,包括 20 次插入6 次删除
  1. 3 3
      lib/models/api/collection/create_request.dart
  2. 16 2
      lib/models/collection.dart
  3. 1 1
      lib/services/hidden_service.dart

+ 3 - 3
lib/models/api/collection/create_request.dart

@@ -6,7 +6,7 @@ class CreateRequest {
   String keyDecryptionNonce;
   String encryptedName;
   String nameDecryptionNonce;
-  String type;
+  CollectionType type;
   CollectionAttributes? attributes;
   MetadataRequest? magicMetadata;
 
@@ -25,7 +25,7 @@ class CreateRequest {
     String? keyDecryptionNonce,
     String? encryptedName,
     String? nameDecryptionNonce,
-    String? type,
+    CollectionType? type,
     CollectionAttributes? attributes,
     MetadataRequest? magicMetadata,
   }) =>
@@ -45,7 +45,7 @@ class CreateRequest {
     map['keyDecryptionNonce'] = keyDecryptionNonce;
     map['encryptedName'] = encryptedName;
     map['nameDecryptionNonce'] = nameDecryptionNonce;
-    map['type'] = type;
+    map['type'] = Collection.typeToString(type);
     if (attributes != null) {
       map['attributes'] = attributes!.toMap();
     }

+ 16 - 2
lib/models/collection.dart

@@ -1,6 +1,7 @@
 import 'dart:convert';
 import 'dart:core';
 
+import 'package:flutter/foundation.dart';
 import 'package:photos/models/magic_metadata.dart';
 
 class Collection {
@@ -85,8 +86,15 @@ class Collection {
         return CollectionType.folder;
       case "favorites":
         return CollectionType.favorites;
+      case "uncategorized":
+        return CollectionType.uncategorized;
+      case "album":
+        return CollectionType.album;
+      case "unknown":
+        return CollectionType.unknown;
     }
-    return CollectionType.album;
+    debugPrint("unexpected collection type $type");
+    return CollectionType.unknown;
   }
 
   static String typeToString(CollectionType type) {
@@ -95,8 +103,12 @@ class Collection {
         return "folder";
       case CollectionType.favorites:
         return "favorites";
-      default:
+      case CollectionType.album:
         return "album";
+      case CollectionType.uncategorized:
+        return "uncategorized";
+      case CollectionType.unknown:
+        return "unknown";
     }
   }
 
@@ -187,7 +199,9 @@ class Collection {
 enum CollectionType {
   folder,
   favorites,
+  uncategorized,
   album,
+  unknown,
 }
 
 enum CollectionParticipantRole {

+ 1 - 1
lib/services/hidden_service.dart

@@ -125,7 +125,7 @@ extension HiddenService on CollectionsService {
       keyDecryptionNonce: Sodium.bin2base64(encryptedKeyData.nonce!),
       encryptedName: Sodium.bin2base64(encryptedName.encryptedData!),
       nameDecryptionNonce: Sodium.bin2base64(encryptedName.nonce!),
-      type: CollectionType.album.toString(),
+      type: CollectionType.album,
       attributes: CollectionAttributes(),
       magicMetadata: metadataRequest,
     );