From dea2935d63f81e219f526c9e975a21cf211415b6 Mon Sep 17 00:00:00 2001 From: David Iglesias Teixeira Date: Fri, 22 Jan 2021 16:57:00 -0800 Subject: [PATCH 1/8] [cross_file] Migrate to null-safety. --- packages/cross_file/CHANGELOG.md | 9 ++- packages/cross_file/lib/src/types/base.dart | 10 ++-- packages/cross_file/lib/src/types/html.dart | 59 ++++++++++--------- .../cross_file/lib/src/types/interface.dart | 26 ++++---- packages/cross_file/lib/src/types/io.dart | 32 +++++----- .../lib/src/web_helpers/web_helpers.dart | 2 +- packages/cross_file/pubspec.yaml | 9 ++- .../cross_file/test/x_file_html_test.dart | 18 +++--- packages/cross_file/test/x_file_io_test.dart | 2 +- 9 files changed, 86 insertions(+), 81 deletions(-) diff --git a/packages/cross_file/CHANGELOG.md b/packages/cross_file/CHANGELOG.md index 5ad91979dc89..560db39b67d2 100644 --- a/packages/cross_file/CHANGELOG.md +++ b/packages/cross_file/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.3.0-nullsafety + +* Migrated package to null-safety. +* **breaking change** According to our unit tests, the API should be backwards-compatible. Please report any issues you may encounter so they can be documented here! + ## 0.2.0 * **breaking change** Make sure the `saveTo` method returns a `Future` so it can be awaited and users are sure the file has been written to disk. @@ -8,8 +13,8 @@ ## 0.1.0+1 -- Update Flutter SDK constraint. +* Update Flutter SDK constraint. ## 0.1.0 -- Initial open-source release \ No newline at end of file +* Initial open-source release. diff --git a/packages/cross_file/lib/src/types/base.dart b/packages/cross_file/lib/src/types/base.dart index 1a1b5694d58f..2a59c1c2b246 100644 --- a/packages/cross_file/lib/src/types/base.dart +++ b/packages/cross_file/lib/src/types/base.dart @@ -15,7 +15,7 @@ import 'dart:typed_data'; /// the methods should seem familiar. abstract class XFileBase { /// Construct a CrossFile - XFileBase(String path); + XFileBase(String? path); /// Save the CrossFile at the indicated file path. Future saveTo(String path) { @@ -31,19 +31,19 @@ abstract class XFileBase { /// Accessing the data contained in the picked file by its path /// is platform-dependant (and won't work on web), so use the /// byte getters in the CrossFile instance instead. - String get path { + String? get path { throw UnimplementedError('.path has not been implemented.'); } /// The name of the file as it was selected by the user in their device. /// /// Use only for cosmetic reasons, do not try to use this as a path. - String get name { + String? get name { throw UnimplementedError('.name has not been implemented.'); } /// For web, it may be necessary for a file to know its MIME type. - String get mimeType { + String? get mimeType { throw UnimplementedError('.mimeType has not been implemented.'); } @@ -75,7 +75,7 @@ abstract class XFileBase { /// If `end` is present, only up to byte-index `end` will be read. Otherwise, until end of file. /// /// In order to make sure that system resources are freed, the stream must be read to completion or the subscription on the stream must be cancelled. - Stream openRead([int start, int end]) { + Stream openRead([int? start, int? end]) { throw UnimplementedError('openRead() has not been implemented.'); } diff --git a/packages/cross_file/lib/src/types/html.dart b/packages/cross_file/lib/src/types/html.dart index 646939612d75..9302cb2d7189 100644 --- a/packages/cross_file/lib/src/types/html.dart +++ b/packages/cross_file/lib/src/types/html.dart @@ -5,7 +5,6 @@ import 'dart:convert'; import 'dart:typed_data'; -import 'package:http/http.dart' as http show readBytes; import 'package:meta/meta.dart'; import 'dart:html'; @@ -16,16 +15,17 @@ import './base.dart'; /// /// It wraps the bytes of a selected file. class XFile extends XFileBase { - String path; + late String? path; - final String mimeType; - final Uint8List _data; - final int _length; - final String name; - final DateTime _lastModified; - Element _target; + final String? mimeType; + final Uint8List? _data; + final int? _length; + final String? name; + final DateTime? _lastModified; - final CrossFileTestOverrides _overrides; + late Element _target; + + final CrossFileTestOverrides? _overrides; bool get _hasTestOverrides => _overrides != null; @@ -40,10 +40,10 @@ class XFile extends XFileBase { this.path, { this.mimeType, this.name, - int length, - Uint8List bytes, - DateTime lastModified, - @visibleForTesting CrossFileTestOverrides overrides, + int? length, + Uint8List? bytes, + DateTime? lastModified, + @visibleForTesting CrossFileTestOverrides? overrides, }) : _data = bytes, _length = length, _overrides = overrides, @@ -55,10 +55,10 @@ class XFile extends XFileBase { Uint8List bytes, { this.mimeType, this.name, - int length, - DateTime lastModified, + int? length, + DateTime? lastModified, this.path, - @visibleForTesting CrossFileTestOverrides overrides, + @visibleForTesting CrossFileTestOverrides? overrides, }) : _data = bytes, _length = length, _overrides = overrides, @@ -72,17 +72,20 @@ class XFile extends XFileBase { @override Future lastModified() async { - if (_lastModified != null) { - return Future.value(_lastModified); - } - return null; + return Future.value(_lastModified); } Future get _bytes async { if (_data != null) { - return Future.value(UnmodifiableUint8ListView(_data)); + return Future.value(UnmodifiableUint8ListView(_data!)); } - return http.readBytes(path); + + // We can force 'response' to be a byte buffer by passing responseType: + ByteBuffer? response = + (await HttpRequest.request(path!, responseType: 'arraybuffer')) + .response; + + return response?.asUint8List() ?? Uint8List(0); } @override @@ -101,7 +104,7 @@ class XFile extends XFileBase { } @override - Stream openRead([int start, int end]) async* { + Stream openRead([int? start, int? end]) async* { final bytes = await _bytes; yield bytes.sublist(start ?? 0, end ?? bytes.length); } @@ -114,10 +117,10 @@ class XFile extends XFileBase { // Create an tag with the appropriate download attributes and click it // May be overridden with CrossFileTestOverrides - final AnchorElement element = - (_hasTestOverrides && _overrides.createAnchorElement != null) - ? _overrides.createAnchorElement(this.path, this.name) - : createAnchorElement(this.path, this.name); + final AnchorElement element = _hasTestOverrides + ? _overrides!.createAnchorElement(this.path!, this.name ?? '') + as AnchorElement + : createAnchorElement(this.path!, this.name ?? ''); // Clear the children in our container so we can add an element to click _target.children.clear(); @@ -132,5 +135,5 @@ class CrossFileTestOverrides { Element Function(String href, String suggestedName) createAnchorElement; /// Default constructor for overrides - CrossFileTestOverrides({this.createAnchorElement}); + CrossFileTestOverrides({required this.createAnchorElement}); } diff --git a/packages/cross_file/lib/src/types/interface.dart b/packages/cross_file/lib/src/types/interface.dart index e30bc63b4c92..122f3d1d9364 100644 --- a/packages/cross_file/lib/src/types/interface.dart +++ b/packages/cross_file/lib/src/types/interface.dart @@ -21,12 +21,12 @@ class XFile extends XFileBase { /// (like in web) XFile( String path, { - String mimeType, - String name, - int length, - Uint8List bytes, - DateTime lastModified, - @visibleForTesting CrossFileTestOverrides overrides, + String? mimeType, + String? name, + int? length, + Uint8List? bytes, + DateTime? lastModified, + @visibleForTesting CrossFileTestOverrides? overrides, }) : super(path) { throw UnimplementedError( 'CrossFile is not available in your current platform.'); @@ -35,12 +35,12 @@ class XFile extends XFileBase { /// Construct a CrossFile object from its data XFile.fromData( Uint8List bytes, { - String mimeType, - String name, - int length, - DateTime lastModified, - String path, - @visibleForTesting CrossFileTestOverrides overrides, + String? mimeType, + String? name, + int? length, + DateTime? lastModified, + String? path, + @visibleForTesting CrossFileTestOverrides? overrides, }) : super(path) { throw UnimplementedError( 'CrossFile is not available in your current platform.'); @@ -54,5 +54,5 @@ class CrossFileTestOverrides { dynamic Function(String href, String suggestedName) createAnchorElement; /// Default constructor for overrides - CrossFileTestOverrides({this.createAnchorElement}); + CrossFileTestOverrides({required this.createAnchorElement}); } diff --git a/packages/cross_file/lib/src/types/io.dart b/packages/cross_file/lib/src/types/io.dart index d9a93559b507..6eafaf0ce0cc 100644 --- a/packages/cross_file/lib/src/types/io.dart +++ b/packages/cross_file/lib/src/types/io.dart @@ -11,20 +11,20 @@ import './base.dart'; /// A CrossFile backed by a dart:io File. class XFile extends XFileBase { final File _file; - final String mimeType; - final DateTime _lastModified; - int _length; + final String? mimeType; + final DateTime? _lastModified; + int? _length; - final Uint8List _bytes; + final Uint8List? _bytes; /// Construct a CrossFile object backed by a dart:io File. XFile( String path, { this.mimeType, - String name, - int length, - Uint8List bytes, - DateTime lastModified, + String? name, + int? length, + Uint8List? bytes, + DateTime? lastModified, }) : _file = File(path), _bytes = null, _lastModified = lastModified, @@ -34,10 +34,10 @@ class XFile extends XFileBase { XFile.fromData( Uint8List bytes, { this.mimeType, - String path, - String name, - int length, - DateTime lastModified, + String? path, + String? name, + int? length, + DateTime? lastModified, }) : _bytes = bytes, _file = File(path ?? ''), _length = length, @@ -84,7 +84,7 @@ class XFile extends XFileBase { @override Future readAsString({Encoding encoding = utf8}) { if (_bytes != null) { - return Future.value(String.fromCharCodes(_bytes)); + return Future.value(String.fromCharCodes(_bytes!)); } return _file.readAsString(encoding: encoding); } @@ -97,13 +97,13 @@ class XFile extends XFileBase { return _file.readAsBytes(); } - Stream _getBytes(int start, int end) async* { - final bytes = _bytes; + Stream _getBytes(int? start, int? end) async* { + final bytes = _bytes!; yield bytes.sublist(start ?? 0, end ?? bytes.length); } @override - Stream openRead([int start, int end]) { + Stream openRead([int? start, int? end]) { if (_bytes != null) { return _getBytes(start, end); } else { diff --git a/packages/cross_file/lib/src/web_helpers/web_helpers.dart b/packages/cross_file/lib/src/web_helpers/web_helpers.dart index 813f5f975561..a963e9933f99 100644 --- a/packages/cross_file/lib/src/web_helpers/web_helpers.dart +++ b/packages/cross_file/lib/src/web_helpers/web_helpers.dart @@ -31,7 +31,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/cross_file/pubspec.yaml b/packages/cross_file/pubspec.yaml index 4c9acf9b008a..07a68ab9b881 100644 --- a/packages/cross_file/pubspec.yaml +++ b/packages/cross_file/pubspec.yaml @@ -1,19 +1,18 @@ name: cross_file description: An abstraction to allow working with files across multiple platforms. homepage: https://github.com/flutter/plugins/tree/master/packages/cross_file -version: 0.2.0 +version: 0.3.0-nullsafety dependencies: flutter: sdk: flutter - http: ^0.12.0+1 - meta: ^1.0.5 + meta: ^1.3.0-nullsafety.6 dev_dependencies: flutter_test: sdk: flutter - pedantic: ^1.8.0 + pedantic: ^1.10.0-nullsafety.3 environment: - sdk: ">=2.1.0 <3.0.0" + sdk: ">=2.12.0-0 <3.0.0" flutter: ">=1.22.0" diff --git a/packages/cross_file/test/x_file_html_test.dart b/packages/cross_file/test/x_file_html_test.dart index fadba96b3c6c..a271aa1f1525 100644 --- a/packages/cross_file/test/x_file_html_test.dart +++ b/packages/cross_file/test/x_file_html_test.dart @@ -11,10 +11,8 @@ import 'dart:typed_data'; import 'package:flutter_test/flutter_test.dart'; import 'package:cross_file/cross_file.dart'; -import 'dart:html'; - final String expectedStringContents = 'Hello, world!'; -final Uint8List bytes = utf8.encode(expectedStringContents); +final Uint8List bytes = Uint8List.fromList(utf8.encode(expectedStringContents)); final html.File textFile = html.File([bytes], 'hello.txt'); final String textFileUrl = html.Url.createObjectUrl(textFile); @@ -66,7 +64,7 @@ void main() { await file.saveTo(''); - final container = querySelector('#${CrossFileDomElementId}'); + final container = html.querySelector('#${CrossFileDomElementId}'); expect(container, isNotNull); }); @@ -76,18 +74,18 @@ void main() { await file.saveTo('path'); - final container = querySelector('#${CrossFileDomElementId}'); - final AnchorElement element = container?.children?.firstWhere( - (element) => element.tagName == 'A', - orElse: () => null); + final container = html.querySelector('#${CrossFileDomElementId}'); + final html.AnchorElement element = + container?.children.firstWhere((element) => element.tagName == 'A') + as html.AnchorElement; - expect(element, isNotNull); + // if element is not found, the `firstWhere` call will throw StateError. expect(element.href, file.path); expect(element.download, file.name); }); test('anchor element is clicked', () async { - final mockAnchor = AnchorElement(); + final mockAnchor = html.AnchorElement(); CrossFileTestOverrides overrides = CrossFileTestOverrides( createAnchorElement: (_, __) => mockAnchor, diff --git a/packages/cross_file/test/x_file_io_test.dart b/packages/cross_file/test/x_file_io_test.dart index 65edea1ea45d..25f46a4edad9 100644 --- a/packages/cross_file/test/x_file_io_test.dart +++ b/packages/cross_file/test/x_file_io_test.dart @@ -24,7 +24,7 @@ import 'package:cross_file/cross_file.dart'; final pathPrefix = './assets/'; final path = pathPrefix + 'hello.txt'; final String expectedStringContents = 'Hello, world!'; -final Uint8List bytes = utf8.encode(expectedStringContents); +final Uint8List bytes = Uint8List.fromList(utf8.encode(expectedStringContents)); final File textFile = File(path); final String textFilePath = textFile.path; From 5281ca09dd063e2d758ba4261c7f571a148cba55 Mon Sep 17 00:00:00 2001 From: David Iglesias Teixeira Date: Mon, 25 Jan 2021 11:59:40 -0800 Subject: [PATCH 2/8] Address PR feedback. --- packages/cross_file/CHANGELOG.md | 4 ++- packages/cross_file/lib/src/types/html.dart | 38 +++++++++------------ 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/packages/cross_file/CHANGELOG.md b/packages/cross_file/CHANGELOG.md index 560db39b67d2..47905de3faef 100644 --- a/packages/cross_file/CHANGELOG.md +++ b/packages/cross_file/CHANGELOG.md @@ -1,7 +1,9 @@ ## 0.3.0-nullsafety * Migrated package to null-safety. -* **breaking change** According to our unit tests, the API should be backwards-compatible. Please report any issues you may encounter so they can be documented here! +* **breaking change** According to our unit tests, the API should be backwards-compatible. However, some changes were made: + * Web: `lastModified` returns the epoch time as a default value, to maintain the `Future` return type. + ## 0.2.0 diff --git a/packages/cross_file/lib/src/types/html.dart b/packages/cross_file/lib/src/types/html.dart index 9302cb2d7189..73e7759502ce 100644 --- a/packages/cross_file/lib/src/types/html.dart +++ b/packages/cross_file/lib/src/types/html.dart @@ -15,12 +15,12 @@ import './base.dart'; /// /// It wraps the bytes of a selected file. class XFile extends XFileBase { - late String? path; + late String path; final String? mimeType; final Uint8List? _data; final int? _length; - final String? name; + final String name; final DateTime? _lastModified; late Element _target; @@ -39,7 +39,7 @@ class XFile extends XFileBase { XFile( this.path, { this.mimeType, - this.name, + String? name, int? length, Uint8List? bytes, DateTime? lastModified, @@ -47,33 +47,35 @@ class XFile extends XFileBase { }) : _data = bytes, _length = length, _overrides = overrides, - _lastModified = lastModified, + _lastModified = lastModified ?? DateTime.fromMillisecondsSinceEpoch(0), + name = name ?? '', super(path); /// Construct an CrossFile from its data XFile.fromData( Uint8List bytes, { this.mimeType, - this.name, + String? name, int? length, DateTime? lastModified, - this.path, + String? path, @visibleForTesting CrossFileTestOverrides? overrides, }) : _data = bytes, _length = length, _overrides = overrides, - _lastModified = lastModified, + _lastModified = lastModified ?? DateTime.fromMillisecondsSinceEpoch(0), + name = name ?? '', super(path) { if (path == null) { final blob = (mimeType == null) ? Blob([bytes]) : Blob([bytes], mimeType); this.path = Url.createObjectUrl(blob); + } else { + this.path = path; } } @override - Future lastModified() async { - return Future.value(_lastModified); - } + Future lastModified() async => Future.value(_lastModified); Future get _bytes async { if (_data != null) { @@ -82,16 +84,13 @@ class XFile extends XFileBase { // We can force 'response' to be a byte buffer by passing responseType: ByteBuffer? response = - (await HttpRequest.request(path!, responseType: 'arraybuffer')) - .response; + (await HttpRequest.request(path, responseType: 'arraybuffer')).response; return response?.asUint8List() ?? Uint8List(0); } @override - Future length() async { - return _length ?? (await _bytes).length; - } + Future length() async => _length ?? (await _bytes).length; @override Future readAsString({Encoding encoding = utf8}) async { @@ -99,9 +98,7 @@ class XFile extends XFileBase { } @override - Future readAsBytes() async { - return Future.value(await _bytes); - } + Future readAsBytes() async => Future.value(await _bytes); @override Stream openRead([int? start, int? end]) async* { @@ -118,9 +115,8 @@ class XFile extends XFileBase { // Create an tag with the appropriate download attributes and click it // May be overridden with CrossFileTestOverrides final AnchorElement element = _hasTestOverrides - ? _overrides!.createAnchorElement(this.path!, this.name ?? '') - as AnchorElement - : createAnchorElement(this.path!, this.name ?? ''); + ? _overrides!.createAnchorElement(this.path, this.name) as AnchorElement + : createAnchorElement(this.path, this.name); // Clear the children in our container so we can add an element to click _target.children.clear(); From 31f16de0665125082a61eb6f27f591109e7cce15 Mon Sep 17 00:00:00 2001 From: David Iglesias Teixeira Date: Mon, 25 Jan 2021 12:00:49 -0800 Subject: [PATCH 3/8] Remove tests from stable --- script/nnbd_plugins.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/script/nnbd_plugins.sh b/script/nnbd_plugins.sh index b2ca25bf6836..44e5df9e95ef 100644 --- a/script/nnbd_plugins.sh +++ b/script/nnbd_plugins.sh @@ -8,6 +8,7 @@ readonly NNBD_PLUGINS_LIST=( "android_intent" "battery" "connectivity" + "cross_file" "device_info" "flutter_plugin_android_lifecycle" "flutter_webview" From 23fdd1c7644fbbb283b9d27f8c020de455338b59 Mon Sep 17 00:00:00 2001 From: David Iglesias Teixeira Date: Mon, 25 Jan 2021 12:02:43 -0800 Subject: [PATCH 4/8] Format changelog --- packages/cross_file/CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/cross_file/CHANGELOG.md b/packages/cross_file/CHANGELOG.md index 47905de3faef..19b84cac68a7 100644 --- a/packages/cross_file/CHANGELOG.md +++ b/packages/cross_file/CHANGELOG.md @@ -2,8 +2,7 @@ * Migrated package to null-safety. * **breaking change** According to our unit tests, the API should be backwards-compatible. However, some changes were made: - * Web: `lastModified` returns the epoch time as a default value, to maintain the `Future` return type. - + * Web: `lastModified` returns the epoch time as a default value, to maintain the `Future` return type. ## 0.2.0 From 4ae4755169b83fc4f34c67bb9d8790fe9c143528 Mon Sep 17 00:00:00 2001 From: David Iglesias Teixeira Date: Mon, 25 Jan 2021 14:02:29 -0800 Subject: [PATCH 5/8] Skip platform_interface packages --- script/build_all_plugins_app.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/script/build_all_plugins_app.sh b/script/build_all_plugins_app.sh index 72390c213da9..3c48115c4c01 100755 --- a/script/build_all_plugins_app.sh +++ b/script/build_all_plugins_app.sh @@ -19,10 +19,12 @@ source "$SCRIPT_DIR/nnbd_plugins.sh" check_changed_packages > /dev/null readonly EXCLUDED_PLUGINS_LIST=( + "camera_platform_interface" "connectivity_macos" "connectivity_platform_interface" "connectivity_web" "extension_google_sign_in_as_googleapis_auth" + "file_selector_platform_interface" "flutter_plugin_android_lifecycle" "google_maps_flutter_platform_interface" "google_maps_flutter_web" From 5f649cb746aff4480ed1e392a8de269f9a18eeac Mon Sep 17 00:00:00 2001 From: David Iglesias Teixeira Date: Mon, 25 Jan 2021 14:45:04 -0800 Subject: [PATCH 6/8] Exclude some more pkgs --- script/build_all_plugins_app.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/script/build_all_plugins_app.sh b/script/build_all_plugins_app.sh index 3c48115c4c01..60c72e21a7c2 100755 --- a/script/build_all_plugins_app.sh +++ b/script/build_all_plugins_app.sh @@ -37,6 +37,7 @@ readonly EXCLUDED_PLUGINS_LIST=( "path_provider_macos" "path_provider_platform_interface" "path_provider_web" + "path_provider_windows" "plugin_platform_interface" "shared_preferences_linux" "shared_preferences_macos" From fb59b3f6255fd0a71cf18f47bc7a407a6fb96b44 Mon Sep 17 00:00:00 2001 From: David Iglesias Teixeira Date: Mon, 25 Jan 2021 15:14:48 -0800 Subject: [PATCH 7/8] Get the build going in stable --- packages/cross_file/pubspec.yaml | 2 +- script/build_all_plugins_app.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/cross_file/pubspec.yaml b/packages/cross_file/pubspec.yaml index 07a68ab9b881..af1b7e7d4c0f 100644 --- a/packages/cross_file/pubspec.yaml +++ b/packages/cross_file/pubspec.yaml @@ -6,7 +6,7 @@ version: 0.3.0-nullsafety dependencies: flutter: sdk: flutter - meta: ^1.3.0-nullsafety.6 + meta: ^1.3.0-nullsafety.3 dev_dependencies: flutter_test: diff --git a/script/build_all_plugins_app.sh b/script/build_all_plugins_app.sh index 60c72e21a7c2..db85eddf95b0 100755 --- a/script/build_all_plugins_app.sh +++ b/script/build_all_plugins_app.sh @@ -24,15 +24,15 @@ readonly EXCLUDED_PLUGINS_LIST=( "connectivity_platform_interface" "connectivity_web" "extension_google_sign_in_as_googleapis_auth" - "file_selector_platform_interface" + "file_selector" # currently out of sync with camera "flutter_plugin_android_lifecycle" "google_maps_flutter_platform_interface" "google_maps_flutter_web" "google_sign_in_platform_interface" "google_sign_in_web" "image_picker_platform_interface" - "local_auth" # flutter_plugin_android_lifecycle conflict "instrumentation_adapter" + "local_auth" # flutter_plugin_android_lifecycle conflict "path_provider_linux" "path_provider_macos" "path_provider_platform_interface" From be62759aae63aa6fa823527d6d3e188124d7934a Mon Sep 17 00:00:00 2001 From: David Iglesias Teixeira Date: Mon, 25 Jan 2021 15:23:34 -0800 Subject: [PATCH 8/8] Undo some changes that are not needed. --- script/build_all_plugins_app.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/script/build_all_plugins_app.sh b/script/build_all_plugins_app.sh index db85eddf95b0..3e08b914ff86 100755 --- a/script/build_all_plugins_app.sh +++ b/script/build_all_plugins_app.sh @@ -19,7 +19,6 @@ source "$SCRIPT_DIR/nnbd_plugins.sh" check_changed_packages > /dev/null readonly EXCLUDED_PLUGINS_LIST=( - "camera_platform_interface" "connectivity_macos" "connectivity_platform_interface" "connectivity_web" @@ -37,7 +36,6 @@ readonly EXCLUDED_PLUGINS_LIST=( "path_provider_macos" "path_provider_platform_interface" "path_provider_web" - "path_provider_windows" "plugin_platform_interface" "shared_preferences_linux" "shared_preferences_macos"