Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

Commit 52287e6

Browse files
eugerossettoadpinola
authored andcommitted
Add getDirectoriesPaths to method channel.
1 parent 7639114 commit 52287e6

File tree

3 files changed

+46
-1
lines changed

3 files changed

+46
-1
lines changed

packages/file_selector/file_selector_platform_interface/lib/src/method_channel/method_channel_file_selector.dart

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,18 @@ class MethodChannelFileSelector extends FileSelectorPlatform {
9393
},
9494
);
9595
}
96+
97+
/// Gets a list of directories paths from a dialog
98+
@override
99+
Future<List<String>?> getDirectoriesPaths(
100+
{String? initialDirectory, String? confirmButtonText}) async {
101+
return _channel.invokeListMethod<String>(
102+
'getDirectoriesPaths',
103+
<String, dynamic>{
104+
'initialDirectory': initialDirectory,
105+
'confirmButtonText': confirmButtonText,
106+
'multiple': true,
107+
},
108+
);
109+
}
96110
}

packages/file_selector/file_selector_platform_interface/lib/src/platform_interface/file_selector_interface.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ abstract class FileSelectorPlatform extends PlatformInterface {
7777

7878
/// Open file dialog for loading directories and return multiple directories paths
7979
/// Returns `null` if user cancels the operation.
80-
Future<List<String?>> getDirectoriesPaths({
80+
Future<List<String>?> getDirectoriesPaths({
8181
String? initialDirectory,
8282
String? confirmButtonText,
8383
}) {

packages/file_selector/file_selector_platform_interface/test/method_channel_file_selector_test.dart

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,37 @@ void main() {
247247
);
248248
});
249249
});
250+
group('#getDirectoriesPaths', () {
251+
test('passes initialDirectory correctly', () async {
252+
await plugin.getDirectoriesPaths(
253+
initialDirectory: '/example/directory');
254+
255+
expect(
256+
log,
257+
<Matcher>[
258+
isMethodCall('getDirectoriesPaths', arguments: <String, dynamic>{
259+
'initialDirectory': '/example/directory',
260+
'confirmButtonText': null,
261+
'multiple': true
262+
}),
263+
],
264+
);
265+
});
266+
test('passes confirmButtonText correctly', () async {
267+
await plugin.getDirectoriesPaths(confirmButtonText: 'Open File');
268+
269+
expect(
270+
log,
271+
<Matcher>[
272+
isMethodCall('getDirectoriesPaths', arguments: <String, dynamic>{
273+
'initialDirectory': null,
274+
'confirmButtonText': 'Open File',
275+
'multiple': true
276+
}),
277+
],
278+
);
279+
});
280+
});
250281
});
251282
});
252283
}

0 commit comments

Comments
 (0)