From cf4dea566e125656d31f279daa38c056c37f2d11 Mon Sep 17 00:00:00 2001
From: Pupsi28 <larslukasneuhaus@gmx.de>
Date: Mon, 8 Apr 2024 22:39:28 +0200
Subject: [PATCH] solved pr comments; picking multiple Images from Gallery is
 now possible

---
 lib/view/pages/files/files.dart               |  4 ++--
 lib/view/pages/files/filesUploadDialog.dart   | 20 +------------------
 .../pages/talk/components/chatTextfield.dart  |  4 ++--
 lib/widget/filePick.dart                      |  8 ++++++++
 4 files changed, 13 insertions(+), 23 deletions(-)

diff --git a/lib/view/pages/files/files.dart b/lib/view/pages/files/files.dart
index a39bdbe..8068408 100644
--- a/lib/view/pages/files/files.dart
+++ b/lib/view/pages/files/files.dart
@@ -219,8 +219,8 @@ class _FilesState extends State<Files> {
                     leading: const Icon(Icons.add_a_photo_outlined),
                     title: const Text('Aus Gallerie hochladen'),
                     onTap: () {
-                      FilePick.galleryPick().then((value) {
-                        if(value != null) mediaUpload([value.path]);
+                      FilePick.multipleGalleryPick().then((value) {
+                        if(value != null) mediaUpload(value.map((e) => e.path).toList());
                       });
                       Navigator.of(context).pop();
                     },
diff --git a/lib/view/pages/files/filesUploadDialog.dart b/lib/view/pages/files/filesUploadDialog.dart
index 794d9a7..72803c2 100644
--- a/lib/view/pages/files/filesUploadDialog.dart
+++ b/lib/view/pages/files/filesUploadDialog.dart
@@ -170,7 +170,6 @@ class _FilesUploadDialogState extends State<FilesUploadDialog> {
       );
 
       if(uploadTask.statusCode < 200 || uploadTask.statusCode > 299) {
-        // error code
         setState(() {
           _isUploading = false;
           _overallProgressValue = 0.0;
@@ -241,7 +240,7 @@ class _FilesUploadDialogState extends State<FilesUploadDialog> {
                       value: currentFile._uploadProgress,
                       borderRadius: const BorderRadius.all(Radius.circular(2)),
                     ) : null,
-                    leading: Container(
+                    trailing: Container(
                       width: 24,
                       height: 24,
                       padding: EdgeInsets.zero,
@@ -256,23 +255,6 @@ class _FilesUploadDialogState extends State<FilesUploadDialog> {
                             });
                           }
                         },
-                        icon: const Icon(Icons.close_outlined),
-                      ),
-                    ),
-                    trailing: Container(
-                      width: 24,
-                      height: 24,
-                      padding: EdgeInsets.zero,
-                      child: IconButton(
-                        tooltip: 'Namen löschen',
-                        padding: EdgeInsets.zero,
-                        onPressed: () {
-                          if(!_isUploading) {
-                            setState(() {
-                              currentFile.fileName = '';
-                            });
-                          }
-                        },
                         icon: const Icon(Icons.delete_outlined),
                       ),
                     ),
diff --git a/lib/view/pages/talk/components/chatTextfield.dart b/lib/view/pages/talk/components/chatTextfield.dart
index a39be26..3628006 100644
--- a/lib/view/pages/talk/components/chatTextfield.dart
+++ b/lib/view/pages/talk/components/chatTextfield.dart
@@ -111,8 +111,8 @@ class _ChatTextfieldState extends State<ChatTextfield> {
                               leading: const Icon(Icons.image),
                               title: const Text('Aus Gallerie auswählen'),
                               onTap: () {
-                                FilePick.galleryPick().then((value) {
-                                  if(value != null) mediaUpload([value.path]);
+                                FilePick.multipleGalleryPick().then((value) {
+                                  if(value != null) mediaUpload(value.map((e) => e.path).toList());
                                 });
                                 Navigator.of(context).pop();
                               },
diff --git a/lib/widget/filePick.dart b/lib/widget/filePick.dart
index a4d490d..b9d7dbb 100644
--- a/lib/widget/filePick.dart
+++ b/lib/widget/filePick.dart
@@ -13,6 +13,14 @@ class FilePick {
     return null;
   }
 
+  static Future<List<XFile>?> multipleGalleryPick() async {
+    final pickedImages = await _picker.pickMultiImage();
+    if(pickedImages.isNotEmpty) {
+      return pickedImages;
+    }
+    return null;
+  }
+
   static Future<List<String>?> documentPick() async {
     var result = await FilePicker.platform.pickFiles(allowMultiple: true);
     var paths = result?.files.nonNulls.map((e) => e.path).toList();