1+ import 'dart:io' ;
2+
13import 'package:desktop_drop/desktop_drop.dart' ;
24import 'package:flutter/material.dart' ;
35import 'package:file_picker/file_picker.dart' ;
@@ -9,6 +11,7 @@ import 'package:netshare/entity/shared_file_entity.dart';
911import 'package:netshare/provider/file_provider.dart' ;
1012import 'package:netshare/ui/common_view/empty_widget.dart' ;
1113import 'package:netshare/ui/list_file/file_tile_upload.dart' ;
14+ import 'package:netshare/ui/send/file_type_chooser.dart' ;
1215import 'package:netshare/util/extension.dart' ;
1316import 'package:netshare/util/utility_functions.dart' ;
1417import 'package:path/path.dart' as path;
@@ -243,15 +246,40 @@ class _SendWidgetState extends State<SendWidget> {
243246 );
244247
245248 void _pickFile () async {
246- FilePickerResult ? result = await FilePicker .platform.pickFiles (allowMultiple: true );
249+ FileType type = FileType .any;
250+ if (Platform .isIOS) {
251+ // asking pick file or media
252+ showModalBottomSheet (
253+ showDragHandle: true ,
254+ context: context,
255+ shape: const RoundedRectangleBorder (
256+ borderRadius: BorderRadius .vertical (top: Radius .circular (20 ))),
257+ builder: (context) =>
258+ FileTypeChooser (
259+ onSelectedType: (selectedType) {
260+ if (selectedType == 0 ) {
261+ type = FileType .media;
262+ }
263+ Navigator .pop (context);
264+ _processPickingFile (type);
265+ },
266+ ),
267+ );
268+ } else {
269+ _processPickingFile (type);
270+ }
271+ }
272+
273+ void _processPickingFile (type) async {
274+ FilePickerResult ? result = await FilePicker .platform.pickFiles (allowMultiple: true , type: type);
247275 if (result != null ) {
248276 setState (() {
249277 _pickedFiles = _pickedFiles
250- ..addAll (result.paths.where ((element) => element != null ).map ((e) => FileUpload (e! )).toList ());
278+ ..addAll (result.paths.where ((element) => element != null )
279+ .map ((e) => FileUpload (e! ))
280+ .toList ());
251281 _pickedFiles = _pickedFiles.toSet ().toList (); // remove duplicate files
252282 });
253- } else {
254- // User canceled the picker
255283 }
256284 }
257285
0 commit comments