[file_selector] Return a non-null value from getSavePath on web (#3630)
diff --git a/packages/file_selector/file_selector_web/CHANGELOG.md b/packages/file_selector/file_selector_web/CHANGELOG.md
index 4caad4b..3eb7c3b 100644
--- a/packages/file_selector/file_selector_web/CHANGELOG.md
+++ b/packages/file_selector/file_selector_web/CHANGELOG.md
@@ -1,3 +1,8 @@
+# 0.8.1
+
+- Return a non-null value from `getSavePath` for consistency with
+ API expectations that null indicates canceling.
+
# 0.8.0
- Migrated to null-safety
diff --git a/packages/file_selector/file_selector_web/example/integration_test/file_selector_web_test.dart b/packages/file_selector/file_selector_web/example/integration_test/file_selector_web_test.dart
index 5442fed..ea9569b 100644
--- a/packages/file_selector/file_selector_web/example/integration_test/file_selector_web_test.dart
+++ b/packages/file_selector/file_selector_web/example/integration_test/file_selector_web_test.dart
@@ -73,6 +73,14 @@
expect(await files[1].lastModified(), isNotNull);
});
});
+
+ group('getSavePath', () {
+ testWidgets('returns non-null', (WidgetTester _) async {
+ final plugin = FileSelectorWeb();
+ final savePath = plugin.getSavePath();
+ expect(await savePath, isNotNull);
+ });
+ });
});
}
diff --git a/packages/file_selector/file_selector_web/lib/file_selector_web.dart b/packages/file_selector/file_selector_web/lib/file_selector_web.dart
index 1c411ca..cf95e40 100644
--- a/packages/file_selector/file_selector_web/lib/file_selector_web.dart
+++ b/packages/file_selector/file_selector_web/lib/file_selector_web.dart
@@ -45,6 +45,9 @@
return _openFiles(acceptedTypeGroups: acceptedTypeGroups, multiple: true);
}
+ // This is intended to be passed to XFile, which ignores the path, but 'null'
+ // indicates a canceled save on other platforms, so provide a non-null dummy
+ // value.
@override
Future<String?> getSavePath({
List<XTypeGroup>? acceptedTypeGroups,
@@ -52,7 +55,7 @@
String? suggestedName,
String? confirmButtonText,
}) async =>
- null;
+ '';
@override
Future<String?> getDirectoryPath({
diff --git a/packages/file_selector/file_selector_web/pubspec.yaml b/packages/file_selector/file_selector_web/pubspec.yaml
index 55424a7..17f0f47 100644
--- a/packages/file_selector/file_selector_web/pubspec.yaml
+++ b/packages/file_selector/file_selector_web/pubspec.yaml
@@ -1,7 +1,7 @@
name: file_selector_web
description: Web platform implementation of file_selector
homepage: https://github.com/flutter/plugins/tree/master/packages/file_selector/file_selector_web
-version: 0.8.0
+version: 0.8.1
flutter:
plugin: