Skip to content

Commit 8dc3ffe

Browse files
Add back file_picker
1 parent 1de9985 commit 8dc3ffe

File tree

4 files changed

+100
-8
lines changed

4 files changed

+100
-8
lines changed

ios/Podfile.lock

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,40 @@
11
PODS:
22
- device_info_plus (0.0.1):
33
- Flutter
4+
- DKImagePickerController/Core (4.3.9):
5+
- DKImagePickerController/ImageDataManager
6+
- DKImagePickerController/Resource
7+
- DKImagePickerController/ImageDataManager (4.3.9)
8+
- DKImagePickerController/PhotoGallery (4.3.9):
9+
- DKImagePickerController/Core
10+
- DKPhotoGallery
11+
- DKImagePickerController/Resource (4.3.9)
12+
- DKPhotoGallery (0.0.19):
13+
- DKPhotoGallery/Core (= 0.0.19)
14+
- DKPhotoGallery/Model (= 0.0.19)
15+
- DKPhotoGallery/Preview (= 0.0.19)
16+
- DKPhotoGallery/Resource (= 0.0.19)
17+
- SDWebImage
18+
- SwiftyGif
19+
- DKPhotoGallery/Core (0.0.19):
20+
- DKPhotoGallery/Model
21+
- DKPhotoGallery/Preview
22+
- SDWebImage
23+
- SwiftyGif
24+
- DKPhotoGallery/Model (0.0.19):
25+
- SDWebImage
26+
- SwiftyGif
27+
- DKPhotoGallery/Preview (0.0.19):
28+
- DKPhotoGallery/Model
29+
- DKPhotoGallery/Resource
30+
- SDWebImage
31+
- SwiftyGif
32+
- DKPhotoGallery/Resource (0.0.19):
33+
- SDWebImage
34+
- SwiftyGif
35+
- file_picker (0.0.1):
36+
- DKImagePickerController/PhotoGallery
37+
- Flutter
438
- file_selector_ios (0.0.1):
539
- Flutter
640
- Flutter (1.0.0)
@@ -22,6 +56,9 @@ PODS:
2256
- Flutter
2357
- receive_sharing_intent (1.8.0):
2458
- Flutter
59+
- SDWebImage (5.19.7):
60+
- SDWebImage/Core (= 5.19.7)
61+
- SDWebImage/Core (5.19.7)
2562
- Sentry/HybridSDK (8.35.1)
2663
- sentry_flutter (8.8.0):
2764
- Flutter
@@ -32,6 +69,7 @@ PODS:
3269
- shared_preferences_foundation (0.0.1):
3370
- Flutter
3471
- FlutterMacOS
72+
- SwiftyGif (5.4.5)
3573
- url_launcher_ios (0.0.1):
3674
- Flutter
3775
- wakelock (0.0.1):
@@ -40,6 +78,7 @@ PODS:
4078

4179
DEPENDENCIES:
4280
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
81+
- file_picker (from `.symlinks/plugins/file_picker/ios`)
4382
- file_selector_ios (from `.symlinks/plugins/file_selector_ios/ios`)
4483
- Flutter (from `Flutter`)
4584
- flutter_webrtc (from `.symlinks/plugins/flutter_webrtc/ios`)
@@ -58,12 +97,18 @@ DEPENDENCIES:
5897

5998
SPEC REPOS:
6099
trunk:
100+
- DKImagePickerController
101+
- DKPhotoGallery
102+
- SDWebImage
61103
- Sentry
104+
- SwiftyGif
62105
- WebRTC-SDK
63106

64107
EXTERNAL SOURCES:
65108
device_info_plus:
66109
:path: ".symlinks/plugins/device_info_plus/ios"
110+
file_picker:
111+
:path: ".symlinks/plugins/file_picker/ios"
67112
file_selector_ios:
68113
:path: ".symlinks/plugins/file_selector_ios/ios"
69114
Flutter:
@@ -97,6 +142,9 @@ EXTERNAL SOURCES:
97142

98143
SPEC CHECKSUMS:
99144
device_info_plus: 97af1d7e84681a90d0693e63169a5d50e0839a0d
145+
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
146+
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
147+
file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655
100148
file_selector_ios: f0670c1064a8c8450e38145d8043160105d0b97c
101149
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
102150
flutter_webrtc: 75b868e4f9e817c7a9a42ca4b6169063de4eec9f
@@ -107,10 +155,12 @@ SPEC CHECKSUMS:
107155
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
108156
quick_look: 59394001d6b484c13fd5f73b555398d523726c8c
109157
receive_sharing_intent: df9c334dc9feadcbd3266e5cb49c8443405e1c9f
158+
SDWebImage: 8a6b7b160b4d710e2a22b6900e25301075c34cb3
110159
Sentry: 1fe34e9c2cbba1e347623610d26db121dcb569f1
111160
sentry_flutter: a39c2a2d67d5e5b9cb0b94a4985c76dd5b3fc737
112161
share_plus: 8875f4f2500512ea181eef553c3e27dba5135aad
113162
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
163+
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
114164
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
115165
wakelock: d0fc7c864128eac40eba1617cb5264d9c940b46f
116166
WebRTC-SDK: c3d69a87e7185fad3568f6f3cff7c9ac5890acf3

lib/interface/home.dart

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'dart:convert';
33
import 'dart:io';
44

55
import 'package:desktop_drop/desktop_drop.dart';
6+
import 'package:file_picker/file_picker.dart';
67
import 'package:file_selector/file_selector.dart';
78
import 'package:firedart/firedart.dart';
89
import 'package:flutter/foundation.dart';
@@ -541,15 +542,15 @@ class HomeScreenState extends ConsumerState<HomeScreen>
541542
title: const Text('Media'),
542543
onTap: () async {
543544
Navigator.of(context).pop();
544-
openFilePicker(true);
545+
openFilePicker(FileType.media);
545546
},
546547
),
547548
ListTile(
548549
leading: const Icon(Icons.description),
549550
title: const Text('Files'),
550551
onTap: () async {
551552
Navigator.of(context).pop();
552-
openFilePicker(false);
553+
openFilePicker(FileType.any);
553554
},
554555
),
555556
],
@@ -558,13 +559,37 @@ class HomeScreenState extends ConsumerState<HomeScreen>
558559
});
559560
}
560561

561-
Future<void> openFilePicker(bool mediaOnly) async {
562+
Future<void> openFilePicker(FileType type) async {
562563
isPickingFile = true;
563-
var result = await openFiles();
564+
List<File> files = [];
565+
if (type == FileType.media) {
566+
// Only use file_picker on mobile iOS to picker media.
567+
// file_picker was not working without hacks on linux
568+
var result = await FilePicker.platform.pickFiles(
569+
dialogTitle: 'Image or Video',
570+
type: FileType.media,
571+
lockParentWindow: true,
572+
withData: false,
573+
allowCompression: false,
574+
withReadStream: true,
575+
allowMultiple: true,
576+
);
577+
if (result != null) {
578+
for (var file in result.files) {
579+
String? filePath = file.path;
580+
if (filePath == null) {
581+
continue;
582+
}
583+
files.add(File(filePath));
584+
}
585+
}
586+
} else {
587+
var xfiles = await openFiles();
588+
files = xfiles.map((it) => File(it.path)).toList();
589+
}
564590

565-
if (result.isNotEmpty) {
566-
var files = result.map((it) => File(it.path!)).toList();
567-
var param = mediaOnly ? 'media' : 'fileManager';
591+
if (files.isNotEmpty) {
592+
var param = type == FileType.media ? 'media' : 'fileManager';
568593
await setPayload(FilePayload(files), param);
569594
logger('HOME: File selected ${files.length}');
570595
}
@@ -756,7 +781,7 @@ class HomeScreenState extends ConsumerState<HomeScreen>
756781
if (Platform.isIOS) {
757782
openPhotoAndFileBottomSheet();
758783
} else {
759-
openFilePicker(false);
784+
openFilePicker(FileType.any);
760785
}
761786
}
762787

pubspec.lock

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,14 @@ packages:
222222
url: "https://pub.dev"
223223
source: hosted
224224
version: "7.0.0"
225+
file_picker:
226+
dependency: "direct main"
227+
description:
228+
name: file_picker
229+
sha256: "167bb619cdddaa10ef2907609feb8a79c16dfa479d3afaf960f8e223f754bf12"
230+
url: "https://pub.dev"
231+
source: hosted
232+
version: "8.1.2"
225233
file_selector:
226234
dependency: "direct main"
227235
description:
@@ -320,6 +328,14 @@ packages:
320328
url: "https://pub.dev"
321329
source: hosted
322330
version: "4.0.0"
331+
flutter_plugin_android_lifecycle:
332+
dependency: transitive
333+
description:
334+
name: flutter_plugin_android_lifecycle
335+
sha256: "9ee02950848f61c4129af3d6ec84a1cfc0e47931abc746b03e7a3bc3e8ff6eda"
336+
url: "https://pub.dev"
337+
source: hosted
338+
version: "2.0.22"
323339
flutter_riverpod:
324340
dependency: "direct main"
325341
description:

pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ dependencies:
3838
pasteboard: ^0.2.0
3939
file_selector: ^1.0.3
4040
in_app_review: ^2.0.9
41+
file_picker: ^8.1.2
4142

4243
dev_dependencies:
4344
integration_test:

0 commit comments

Comments
 (0)