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

Commit

Permalink
apply feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
adpinola committed Oct 17, 2022
1 parent 18f6951 commit fe8c0e5
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ class GetMultipleDirectoriesPage extends StatelessWidget {

Future<void> _getDirectoryPaths(BuildContext context) async {
const String confirmButtonText = 'Choose';
final List<String>? directoryPaths =
await FileSelectorPlatform.instance.getDirectoriesPaths(
final List<String> directoryPaths =
await FileSelectorPlatform.instance.getDirectoryPaths(
confirmButtonText: confirmButtonText,
);
if (directoryPaths == null) {
if (directoryPaths.isEmpty) {
// Operation was canceled by the user.
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ const String _typeGroupMimeTypesKey = 'mimeTypes';
const String _openFileMethod = 'openFile';
const String _getSavePathMethod = 'getSavePath';
const String _getDirectoryPathMethod = 'getDirectoryPath';
const String _getDirectoriesPathsMethod = 'getDirectoriesPaths';

const String _acceptedTypeGroupsKey = 'acceptedTypeGroups';
const String _confirmButtonTextKey = 'confirmButtonText';
Expand Down Expand Up @@ -103,26 +102,26 @@ class FileSelectorLinux extends FileSelectorPlatform {
String? initialDirectory,
String? confirmButtonText,
}) async {
return _channel.invokeMethod<String>(
_getDirectoryPathMethod,
<String, dynamic>{
_initialDirectoryKey: initialDirectory,
_confirmButtonTextKey: confirmButtonText,
},
);
final List<String>? path = await _channel
.invokeListMethod<String>(_getDirectoryPathMethod, <String, dynamic>{
_initialDirectoryKey: initialDirectory,
_confirmButtonTextKey: confirmButtonText,
});
return path?.first;
}

@override
Future<List<String>?> getDirectoriesPaths({
Future<List<String>> getDirectoryPaths({
String? initialDirectory,
String? confirmButtonText,
}) async {
return _channel
.invokeListMethod<String>(_getDirectoriesPathsMethod, <String, dynamic>{
final List<String>? pathList = await _channel
.invokeListMethod<String>(_getDirectoryPathMethod, <String, dynamic>{
_initialDirectoryKey: initialDirectory,
_confirmButtonTextKey: confirmButtonText,
_multipleKey: true,
});
return pathList ?? <String>[];
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ const char kChannelName[] = "plugins.flutter.dev/file_selector_linux";
const char kOpenFileMethod[] = "openFile";
const char kGetSavePathMethod[] = "getSavePath";
const char kGetDirectoryPathMethod[] = "getDirectoryPath";
const char kGetDirectoriesPathsMethod[] = "getDirectoriesPaths";

const char kAcceptedTypeGroupsKey[] = "acceptedTypeGroups";
const char kConfirmButtonTextKey[] = "confirmButtonText";
Expand Down Expand Up @@ -132,9 +131,6 @@ GtkFileChooserNative* create_dialog_for_method(GtkWindow* window,
} else if (strcmp(method, kGetDirectoryPathMethod) == 0) {
return create_dialog(window, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
"Choose Directory", "_Open", properties);
} else if (strcmp(method, kGetDirectoriesPathsMethod) == 0) {
return create_dialog(window, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
"Choose one or more Directories", "_Open", properties);
} else if (strcmp(method, kGetSavePathMethod) == 0) {
return create_dialog(window, GTK_FILE_CHOOSER_ACTION_SAVE, "Save File",
"_Save", properties);
Expand Down Expand Up @@ -197,10 +193,9 @@ static void method_call_cb(FlMethodChannel* channel, FlMethodCall* method_call,

g_autoptr(FlMethodResponse) response = nullptr;
if (strcmp(method, kOpenFileMethod) == 0 ||
strcmp(method, kGetDirectoriesPathsMethod) == 0) {
strcmp(method, kGetDirectoryPathMethod) == 0) {
response = show_dialog(self, method, args, true);
} else if (strcmp(method, kGetDirectoryPathMethod) == 0 ||
strcmp(method, kGetSavePathMethod) == 0) {
} else if (strcmp(method, kGetSavePathMethod) == 0) {
response = show_dialog(self, method, args, false);
} else {
response = FL_METHOD_RESPONSE(fl_method_not_implemented_response_new());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ TEST(FileSelectorPlugin, TestGetMultipleDirectories) {
fl_value_set_string_take(args, "multiple", fl_value_new_bool(true));

g_autoptr(GtkFileChooserNative) dialog =
create_dialog_for_method(nullptr, "getDirectoriesPaths", args);
create_dialog_for_method(nullptr, "getDirectoryPath", args);

ASSERT_NE(dialog, nullptr);
EXPECT_EQ(gtk_file_chooser_get_action(GTK_FILE_CHOOSER(dialog)),
Expand Down
4 changes: 0 additions & 4 deletions packages/file_selector/file_selector_linux/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@ repository: https://github.com/flutter/plugins/tree/main/packages/file_selector/
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+file_selector%22
version: 0.9.0+2

# TODO(adpinola): remove this once file_selector_platform_interface version is updated to 2.3.0
# with getDirectoriesPaths method.
publish_to: none

environment:
sdk: ">=2.12.0 <3.0.0"
flutter: ">=2.10.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -373,28 +373,28 @@ void main() {
);
});
test('passes confirmButtonText correctly', () async {
await plugin.getDirectoryPath(confirmButtonText: 'Open File');
await plugin.getDirectoryPath(confirmButtonText: 'Select Folder');

expect(
log,
<Matcher>[
isMethodCall('getDirectoryPath', arguments: <String, dynamic>{
'initialDirectory': null,
'confirmButtonText': 'Open File',
'confirmButtonText': 'Select Folder',
}),
],
);
});
});

group('#getDirectoriesPaths', () {
group('#getDirectoryPaths', () {
test('passes initialDirectory correctly', () async {
await plugin.getDirectoriesPaths(initialDirectory: '/example/directory');
await plugin.getDirectoryPaths(initialDirectory: '/example/directory');

expect(
log,
<Matcher>[
isMethodCall('getDirectoriesPaths', arguments: <String, dynamic>{
isMethodCall('getDirectoryPath', arguments: <String, dynamic>{
'initialDirectory': '/example/directory',
'confirmButtonText': null,
'multiple': true,
Expand All @@ -403,26 +403,27 @@ void main() {
);
});
test('passes confirmButtonText correctly', () async {
await plugin.getDirectoriesPaths(confirmButtonText: 'Open File');
await plugin.getDirectoryPaths(
confirmButtonText: 'Select one or mode folders');

expect(
log,
<Matcher>[
isMethodCall('getDirectoriesPaths', arguments: <String, dynamic>{
isMethodCall('getDirectoryPath', arguments: <String, dynamic>{
'initialDirectory': null,
'confirmButtonText': 'Open File',
'confirmButtonText': 'Select one or mode folders',
'multiple': true,
}),
],
);
});
test('passes multiple flag correctly', () async {
await plugin.getDirectoriesPaths();
await plugin.getDirectoryPaths();

expect(
log,
<Matcher>[
isMethodCall('getDirectoriesPaths', arguments: <String, dynamic>{
isMethodCall('getDirectoryPath', arguments: <String, dynamic>{
'initialDirectory': null,
'confirmButtonText': null,
'multiple': true,
Expand Down

0 comments on commit fe8c0e5

Please sign in to comment.