From 13223481124728eccf7046b7e80dfe3d3beeb83e Mon Sep 17 00:00:00 2001 From: SirusCodes Date: Wed, 3 Feb 2021 11:37:28 +0530 Subject: [PATCH 1/4] Migrated file_selector_platform_interface to nnbd(75235) --- .../method_channel_file_selector.dart | 44 +++++++++---------- .../file_selector_interface.dart | 30 ++++++------- .../src/types/x_type_group/x_type_group.dart | 10 ++--- .../lib/src/web_helpers/web_helpers.dart | 4 +- .../pubspec.yaml | 12 ++--- .../file_selector_web/pubspec.yaml | 4 +- 6 files changed, 52 insertions(+), 52 deletions(-) diff --git a/packages/file_selector/file_selector_platform_interface/lib/src/method_channel/method_channel_file_selector.dart b/packages/file_selector/file_selector_platform_interface/lib/src/method_channel/method_channel_file_selector.dart index 586b1abcae1e..e14239f51690 100644 --- a/packages/file_selector/file_selector_platform_interface/lib/src/method_channel/method_channel_file_selector.dart +++ b/packages/file_selector/file_selector_platform_interface/lib/src/method_channel/method_channel_file_selector.dart @@ -19,57 +19,57 @@ class MethodChannelFileSelector extends FileSelectorPlatform { /// Load a file from user's computer and return it as an XFile @override - Future openFile({ - List acceptedTypeGroups, - String initialDirectory, - String confirmButtonText, + Future openFile({ + List? acceptedTypeGroups, + String? initialDirectory, + String? confirmButtonText, }) async { - final List path = await _channel.invokeListMethod( + final List? path = await _channel.invokeListMethod( 'openFile', { 'acceptedTypeGroups': - acceptedTypeGroups?.map((group) => group.toJSON())?.toList(), + acceptedTypeGroups?.map((group) => group.toJSON()).toList(), 'initialDirectory': initialDirectory, 'confirmButtonText': confirmButtonText, 'multiple': false, }, ); - return path == null ? null : XFile(path?.first); + return path == null ? null : XFile(path.first); } /// Load multiple files from user's computer and return it as an XFile @override Future> openFiles({ - List acceptedTypeGroups, - String initialDirectory, - String confirmButtonText, + List? acceptedTypeGroups, + String? initialDirectory, + String? confirmButtonText, }) async { - final List pathList = await _channel.invokeListMethod( + final List? pathList = await _channel.invokeListMethod( 'openFile', { 'acceptedTypeGroups': - acceptedTypeGroups?.map((group) => group.toJSON())?.toList(), + acceptedTypeGroups?.map((group) => group.toJSON()).toList(), 'initialDirectory': initialDirectory, 'confirmButtonText': confirmButtonText, 'multiple': true, }, ); - return pathList?.map((path) => XFile(path))?.toList() ?? []; + return pathList?.map((path) => XFile(path)).toList() ?? []; } /// Gets the path from a save dialog @override - Future getSavePath({ - List acceptedTypeGroups, - String initialDirectory, - String suggestedName, - String confirmButtonText, + Future getSavePath({ + List? acceptedTypeGroups, + String? initialDirectory, + String? suggestedName, + String? confirmButtonText, }) async { return _channel.invokeMethod( 'getSavePath', { 'acceptedTypeGroups': - acceptedTypeGroups?.map((group) => group.toJSON())?.toList(), + acceptedTypeGroups?.map((group) => group.toJSON()).toList(), 'initialDirectory': initialDirectory, 'suggestedName': suggestedName, 'confirmButtonText': confirmButtonText, @@ -79,9 +79,9 @@ class MethodChannelFileSelector extends FileSelectorPlatform { /// Gets a directory path from a dialog @override - Future getDirectoryPath({ - String initialDirectory, - String confirmButtonText, + Future getDirectoryPath({ + String? initialDirectory, + String? confirmButtonText, }) async { return _channel.invokeMethod( 'getDirectoryPath', diff --git a/packages/file_selector/file_selector_platform_interface/lib/src/platform_interface/file_selector_interface.dart b/packages/file_selector/file_selector_platform_interface/lib/src/platform_interface/file_selector_interface.dart index e7b32631a58b..9f64da8f3d92 100644 --- a/packages/file_selector/file_selector_platform_interface/lib/src/platform_interface/file_selector_interface.dart +++ b/packages/file_selector/file_selector_platform_interface/lib/src/platform_interface/file_selector_interface.dart @@ -38,37 +38,37 @@ abstract class FileSelectorPlatform extends PlatformInterface { } /// Open file dialog for loading files and return a file path - Future openFile({ - List acceptedTypeGroups, - String initialDirectory, - String confirmButtonText, + Future openFile({ + List? acceptedTypeGroups, + String? initialDirectory, + String? confirmButtonText, }) { throw UnimplementedError('openFile() has not been implemented.'); } /// Open file dialog for loading files and return a list of file paths Future> openFiles({ - List acceptedTypeGroups, - String initialDirectory, - String confirmButtonText, + List? acceptedTypeGroups, + String? initialDirectory, + String? confirmButtonText, }) { throw UnimplementedError('openFiles() has not been implemented.'); } /// Open file dialog for saving files and return a file path at which to save - Future getSavePath({ - List acceptedTypeGroups, - String initialDirectory, - String suggestedName, - String confirmButtonText, + Future getSavePath({ + List? acceptedTypeGroups, + String? initialDirectory, + String? suggestedName, + String? confirmButtonText, }) { throw UnimplementedError('getSavePath() has not been implemented.'); } /// Open file dialog for loading directories and return a directory path - Future getDirectoryPath({ - String initialDirectory, - String confirmButtonText, + Future getDirectoryPath({ + String? initialDirectory, + String? confirmButtonText, }) { throw UnimplementedError('getDirectoryPath() has not been implemented.'); } diff --git a/packages/file_selector/file_selector_platform_interface/lib/src/types/x_type_group/x_type_group.dart b/packages/file_selector/file_selector_platform_interface/lib/src/types/x_type_group/x_type_group.dart index fb591f2b248a..f3f05e2ab3a6 100644 --- a/packages/file_selector/file_selector_platform_interface/lib/src/types/x_type_group/x_type_group.dart +++ b/packages/file_selector/file_selector_platform_interface/lib/src/types/x_type_group/x_type_group.dart @@ -17,19 +17,19 @@ class XTypeGroup { }); /// The 'name' or reference to this group of types - final String label; + final String? label; /// The extensions for this group - final List extensions; + final List? extensions; /// The MIME types for this group - final List mimeTypes; + final List? mimeTypes; /// The UTIs for this group - final List macUTIs; + final List? macUTIs; /// The web wild cards for this group (ex: image/*, video/*) - final List webWildCards; + final List? webWildCards; /// Converts this object into a JSON formatted object Map toJSON() { diff --git a/packages/file_selector/file_selector_platform_interface/lib/src/web_helpers/web_helpers.dart b/packages/file_selector/file_selector_platform_interface/lib/src/web_helpers/web_helpers.dart index 9e40e562bc9a..5330c5cf6dcd 100644 --- a/packages/file_selector/file_selector_platform_interface/lib/src/web_helpers/web_helpers.dart +++ b/packages/file_selector/file_selector_platform_interface/lib/src/web_helpers/web_helpers.dart @@ -1,7 +1,7 @@ import 'dart:html'; /// Create anchor element with download attribute -AnchorElement createAnchorElement(String href, String suggestedName) { +AnchorElement createAnchorElement(String href, String? suggestedName) { final element = AnchorElement(href: href); if (suggestedName == null) { @@ -27,7 +27,7 @@ Element ensureInitialized(String id) { if (target == null) { final Element targetElement = Element.tag('flt-x-file')..id = id; - querySelector('body').children.add(targetElement); + querySelector('body')!.children.add(targetElement); target = targetElement; } return target; diff --git a/packages/file_selector/file_selector_platform_interface/pubspec.yaml b/packages/file_selector/file_selector_platform_interface/pubspec.yaml index f1d0038a5062..3007801c9422 100644 --- a/packages/file_selector/file_selector_platform_interface/pubspec.yaml +++ b/packages/file_selector/file_selector_platform_interface/pubspec.yaml @@ -3,23 +3,23 @@ description: A common platform interface for the file_selector plugin. homepage: https://github.com/flutter/plugins/tree/master/packages/file_selector/file_selector_platform_interface # NOTE: We strongly prefer non-breaking changes, even at the expense of a # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes -version: 1.0.3+1 +version: 2.0.0-nullsafety.0 dependencies: flutter: sdk: flutter meta: ^1.0.5 - http: ^0.12.0+1 - plugin_platform_interface: ^1.0.1 - cross_file: ^0.2.0 + http: ^0.13.0-nullsafety.0 + plugin_platform_interface: 1.1.0-nullsafety.2 + cross_file: ^0.3.0-nullsafety dev_dependencies: test: ^1.15.0 flutter_test: sdk: flutter - mockito: ^4.1.1 + mockito: ^5.0.0-nullsafety.5 pedantic: ^1.8.0 environment: - sdk: ">=2.1.0 <3.0.0" + sdk: '>=2.12.0-133.7.beta <3.0.0' flutter: ">=1.9.1+hotfix.4" diff --git a/packages/file_selector/file_selector_web/pubspec.yaml b/packages/file_selector/file_selector_web/pubspec.yaml index a170d5f39607..79181e821cec 100644 --- a/packages/file_selector/file_selector_web/pubspec.yaml +++ b/packages/file_selector/file_selector_web/pubspec.yaml @@ -22,8 +22,8 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - mockito: ^4.1.1 - pedantic: ^1.8.0 + mockito: ^5.0.0-nullsafety.5 + pedantic: ^1.10.0-nullsafety.3 integration_test: path: ../../integration_test From 3dcd8872c94b2a1a796f7f3fe9006bcfd9934182 Mon Sep 17 00:00:00 2001 From: SirusCodes Date: Fri, 5 Feb 2021 23:15:24 +0530 Subject: [PATCH 2/4] updated CHANGELOG and doc comments --- .../file_selector_platform_interface/CHANGELOG.md | 4 ++++ .../lib/src/platform_interface/file_selector_interface.dart | 3 +++ 2 files changed, 7 insertions(+) diff --git a/packages/file_selector/file_selector_platform_interface/CHANGELOG.md b/packages/file_selector/file_selector_platform_interface/CHANGELOG.md index aafe4db278d8..2fbe18db7bfd 100644 --- a/packages/file_selector/file_selector_platform_interface/CHANGELOG.md +++ b/packages/file_selector/file_selector_platform_interface/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.0-nullsafety.0 + +* Migration to null-safety + ## 1.0.3+1 * Bump the [cross_file](https://pub.dev/packages/cross_file) package version. diff --git a/packages/file_selector/file_selector_platform_interface/lib/src/platform_interface/file_selector_interface.dart b/packages/file_selector/file_selector_platform_interface/lib/src/platform_interface/file_selector_interface.dart index 9f64da8f3d92..0be02c2185dd 100644 --- a/packages/file_selector/file_selector_platform_interface/lib/src/platform_interface/file_selector_interface.dart +++ b/packages/file_selector/file_selector_platform_interface/lib/src/platform_interface/file_selector_interface.dart @@ -38,6 +38,7 @@ abstract class FileSelectorPlatform extends PlatformInterface { } /// Open file dialog for loading files and return a file path + /// Returns `null` if user cancels the operation. Future openFile({ List? acceptedTypeGroups, String? initialDirectory, @@ -56,6 +57,7 @@ abstract class FileSelectorPlatform extends PlatformInterface { } /// Open file dialog for saving files and return a file path at which to save + /// Returns `null` if user cancels the operation. Future getSavePath({ List? acceptedTypeGroups, String? initialDirectory, @@ -66,6 +68,7 @@ abstract class FileSelectorPlatform extends PlatformInterface { } /// Open file dialog for loading directories and return a directory path + /// Returns `null` if user cancels the operation. Future getDirectoryPath({ String? initialDirectory, String? confirmButtonText, From 0239d6491a01a19a789db9782485bb75c3f5765d Mon Sep 17 00:00:00 2001 From: SirusCodes Date: Sat, 6 Feb 2021 23:18:49 +0530 Subject: [PATCH 3/4] made changes for CI --- .../file_selector/file_selector_platform_interface/pubspec.yaml | 2 +- script/nnbd_plugins.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/file_selector/file_selector_platform_interface/pubspec.yaml b/packages/file_selector/file_selector_platform_interface/pubspec.yaml index 3007801c9422..68142d627cc6 100644 --- a/packages/file_selector/file_selector_platform_interface/pubspec.yaml +++ b/packages/file_selector/file_selector_platform_interface/pubspec.yaml @@ -10,7 +10,7 @@ dependencies: sdk: flutter meta: ^1.0.5 http: ^0.13.0-nullsafety.0 - plugin_platform_interface: 1.1.0-nullsafety.2 + plugin_platform_interface: ^1.1.0-nullsafety.2 cross_file: ^0.3.0-nullsafety dev_dependencies: diff --git a/script/nnbd_plugins.sh b/script/nnbd_plugins.sh index 3d0676f8b1a5..8e0c82202628 100644 --- a/script/nnbd_plugins.sh +++ b/script/nnbd_plugins.sh @@ -10,6 +10,7 @@ readonly NNBD_PLUGINS_LIST=( "connectivity" "cross_file" "device_info" + "file_selector" "flutter_plugin_android_lifecycle" "flutter_webview" "google_sign_in" @@ -30,7 +31,6 @@ readonly NNBD_PLUGINS_LIST=( readonly NON_NNBD_PLUGINS_LIST=( # "android_alarm_manager" "camera" - # "file_selector" # "google_maps_flutter" # "image_picker" # "in_app_purchase" From 52fc320a31dd6d04567686cbc8601fe1b4f3f0ce Mon Sep 17 00:00:00 2001 From: stuartmorgan Date: Mon, 8 Feb 2021 06:01:05 -0800 Subject: [PATCH 4/4] Standardize on -0 for SDK --- .../file_selector/file_selector_platform_interface/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/file_selector/file_selector_platform_interface/pubspec.yaml b/packages/file_selector/file_selector_platform_interface/pubspec.yaml index 68142d627cc6..9735bced03fb 100644 --- a/packages/file_selector/file_selector_platform_interface/pubspec.yaml +++ b/packages/file_selector/file_selector_platform_interface/pubspec.yaml @@ -21,5 +21,5 @@ dev_dependencies: pedantic: ^1.8.0 environment: - sdk: '>=2.12.0-133.7.beta <3.0.0' + sdk: '>=2.12.0-0 <3.0.0' flutter: ">=1.9.1+hotfix.4"