Forráskód Böngészése

Hook API call to update collection

Neeraj Gupta 2 éve
szülő
commit
ccbd5bf69e

+ 12 - 0
lib/ui/viewer/gallery/gallery_app_bar_widget.dart

@@ -414,6 +414,18 @@ class _GalleryAppBarWidgetState extends State<GalleryAppBarWidget> {
               await _deleteBackedUpFiles(context);
             } else if (value == 6) {
               await _showSortOption(context);
+            } else if (value == 7) {
+              await changeCollectionVisibility(
+                context,
+                widget.collection!,
+                widget.collection!.hasShareeArchived()
+                    ? visibleVisibility
+                    : archiveVisibility,
+                isOwner: false,
+              );
+              if (mounted) {
+                setState(() {});
+              }
             } else {
               showToast(context, S.of(context).somethingWentWrong);
             }

+ 9 - 3
lib/utils/magic_util.dart

@@ -49,8 +49,9 @@ Future<void> changeVisibility(
 Future<void> changeCollectionVisibility(
   BuildContext context,
   Collection collection,
-  int newVisibility,
-) async {
+  int newVisibility, {
+  bool isOwner = true,
+}) async {
   final dialog = createProgressDialog(
     context,
     newVisibility == archiveVisibility
@@ -60,7 +61,12 @@ Future<void> changeCollectionVisibility(
   await dialog.show();
   try {
     final Map<String, dynamic> update = {magicKeyVisibility: newVisibility};
-    await CollectionsService.instance.updateMagicMetadata(collection, update);
+    if (isOwner) {
+      await CollectionsService.instance.updateMagicMetadata(collection, update);
+    } else {
+      await CollectionsService.instance
+          .updateShareeMagicMetadata(collection, update);
+    }
     // Force reload home gallery to pull in the now unarchived files
     Bus.instance.fire(ForceReloadHomeGalleryEvent("CollectionArchiveChange"));
     showShortToast(