瀏覽代碼

1.增加点击keep all后,回到主页

云天逵 1 年之前
父節點
當前提交
1d43565f88

+ 4 - 4
lib/base/base_photo_controller.dart

@@ -17,7 +17,6 @@ abstract class BasePhotoController extends BaseController {
   final RxDouble selectedFilesSize = 0.0.obs;
   RxInt selectedFileCount = 0.obs;
   final RxSet<String> selectedPhotosIds = <String>{}.obs;
-  bool isDeleteFinish = false;
 
   // 将selectedFilesSize转成String类型,然后单位转换,如果超过1MB,则转成MB,超过1GB,则转成GB,否则KB
   String get selectedFilesSizeString {
@@ -71,7 +70,8 @@ abstract class BasePhotoController extends BaseController {
 
   // 切换图片组选中状态
   void toggleGroupSelection(List<AssetEntity> imagesList) {
-    print("BasePhotoController toggleGroupSelection");
+
+
     final group = getGroupByImages(imagesList);
     final newValue = !group.isSelected.value;
     group.toggleSelectAll(newValue);
@@ -148,7 +148,7 @@ abstract class BasePhotoController extends BaseController {
               getPhotosType(), selectedPhotosIds);
 
           selectedPhotosIds.clear();
-          isDeleteFinish = true;
+
 
           ToastUtil.show("Delete success");
           Future.delayed(Duration(seconds: 2), () {
@@ -158,7 +158,7 @@ abstract class BasePhotoController extends BaseController {
         } else {
           SmartDialog.dismiss(tag: 'photoDeletingDialog');
           ToastUtil.show("Delete failed");
-          isDeleteFinish = false;
+
         }
       }
     } else {

+ 1 - 1
lib/module/home/home_controller.dart

@@ -64,7 +64,7 @@ class HomeController extends BaseController {
   Future<void> onInit() async {
     // TODO: implement onInit
     super.onInit();
-    // loadPhotosFromDirectory();
+    loadPhotosFromDirectory();
     if (await Permission.photos.request().isGranted) {
       PhotoManager.clearFileCache();
       getStorageInfo();

+ 14 - 16
lib/module/photo_preview/photo_preview_controller.dart

@@ -94,51 +94,49 @@ class PhotoPreviewController extends BaseController
     }
   }
 
+
   // 获取参数
   void _getArgs() {
     photosType = parameters?['photosType'];
     currentImageId = parameters?['currentImageId'];
   }
 
+  void _assignPhotosAndSelections(BasePhotoController controller) {
+    listAssetEntity.assignAll(controller.getAllPhotos());
+    selectedPhotosIds.assignAll(controller.selectedPhotosIds);
+    selectedFileCount.value = selectedPhotosIds.length;
+  }
+
   void _initData() {
     listAssetEntity.clear();
     selectedPhotosIds.clear();
 
     switch (photosType) {
+
       case PhotosType.peoplePhotos:
         final PeoplePhotoController controller =
-            Get.find<PeoplePhotoController>();
-        listAssetEntity.assignAll(controller.getAllPhotos());
-        selectedPhotosIds.assignAll(controller.selectedPhotosIds);
-        selectedFileCount.value = selectedPhotosIds.length;
+        Get.find<PeoplePhotoController>();
+        _assignPhotosAndSelections(controller);
         break;
       case PhotosType.screenshots:
         final ScreenShotsController controller =
             Get.find<ScreenShotsController>();
-        listAssetEntity.assignAll(controller.getAllPhotos());
-        selectedPhotosIds.assignAll(controller.selectedPhotosIds);
-        selectedFileCount.value = selectedPhotosIds.length;
+        _assignPhotosAndSelections(controller);
         break;
       case PhotosType.similarPhotos:
         final SimilarPhotoController controller =
             Get.find<SimilarPhotoController>();
-        listAssetEntity.assignAll(controller.getAllPhotos());
-        selectedPhotosIds.assignAll(controller.selectedPhotosIds);
-        selectedFileCount.value = selectedPhotosIds.length;
+        _assignPhotosAndSelections(controller);
         break;
       case PhotosType.locationPhotos:
         final LocationsSinglePhotoController controller =
             Get.find<LocationsSinglePhotoController>();
-        listAssetEntity.assignAll(controller.getAllPhotos());
-        selectedPhotosIds.assignAll(controller.selectedPhotosIds);
-        selectedFileCount.value = selectedPhotosIds.length;
+        _assignPhotosAndSelections(controller);
         break;
       case PhotosType.blurryPhotos:
         final ScreenShotsController controller =
             Get.find<ScreenShotsController>();
-        listAssetEntity.assignAll(controller.getAllPhotos());
-        selectedPhotosIds.assignAll(controller.selectedPhotosIds);
-        selectedFileCount.value = selectedPhotosIds.length;
+        _assignPhotosAndSelections(controller);
         break;
     }
 

+ 12 - 14
lib/module/photo_preview/photo_selected_preview_controller.dart

@@ -59,7 +59,6 @@ class PhotoSelectedPreviewController extends BasePhotoController {
     print('PhotoSelectedPreviewController clickBack');
     photoPreviewController.updateSelections(selectedPhotosIds);
 
-
     Get.back();
   }
 
@@ -70,15 +69,13 @@ class PhotoSelectedPreviewController extends BasePhotoController {
 
   @override
   void clickDelete() async {
-
-    if(userRepository.isVip()) {
+    if (userRepository.isVip()) {
       if (selectedPhotosIds.isNotEmpty) {
         photoDeletingDialog();
         print(
             "PhotoSelectedPreviewController clickDelete selectedPhotosIds $selectedPhotosIds");
         final assetsToDelete = photoGroups
-            .expand((group) =>
-            group.images
+            .expand((group) => group.images
                 .where((asset) => selectedPhotosIds.contains(asset.id)))
             .toList();
 
@@ -87,12 +84,9 @@ class PhotoSelectedPreviewController extends BasePhotoController {
         );
 
         if (result.length == selectedPhotosIds.length) {
-          isDeleteFinish = true;
-
           for (var group in photoGroups) {
-            group.images
-                .removeWhere((element) =>
-                selectedPhotosIds.contains(element.id));
+            group.images.removeWhere(
+                (element) => selectedPhotosIds.contains(element.id));
 
             // 更新 group 中的 selectedImages 状态
             group.selectedImages.value = group.images.map((image) {
@@ -112,31 +106,35 @@ class PhotoSelectedPreviewController extends BasePhotoController {
           selectedPhotosIds.clear();
           ToastUtil.show("Delete success");
 
-
           Future.delayed(Duration(seconds: 2), () {
             SmartDialog.dismiss(tag: 'photoDeletingDialog');
             photoDeleteFinishDialog(onDismiss: () {
-              Get.until((route) => Get. currentRoute ==RoutePath.mainTab);
+              Get.until((route) => Get.currentRoute == RoutePath.mainTab);
             });
           });
         } else {
           SmartDialog.dismiss(tag: 'photoDeletingDialog');
           ToastUtil.show("Delete failed");
-          isDeleteFinish = false;
         }
       } else {
         isKeepAll.value = true;
+
+        Future.delayed(Duration(seconds: 3), () {
+          Get.until((route) => Get. currentRoute ==RoutePath.mainTab);
+        });
       }
-    }else{
+    } else {
       StorePage.start();
     }
   }
+
   @override
   void onClose() {
     // TODO: implement onClose
     super.onClose();
     isKeepAll.value = false;
   }
+
   @override
   PhotosType getPhotosType() => photosType;
 }