From a9a954de25601d3ed79e087cf5d2c3f1b57f29d3 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 1 May 2023 10:39:49 -0400 Subject: [PATCH 1/5] Migrate macOS to new name --- .../lib/file_selector_macos.dart | 10 +++++----- .../file_selector_macos/pubspec.yaml | 2 +- .../test/file_selector_macos_test.dart | 16 ++++++++-------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/file_selector/file_selector_macos/lib/file_selector_macos.dart b/packages/file_selector/file_selector_macos/lib/file_selector_macos.dart index f8a087fa687..f6f6f712bed 100644 --- a/packages/file_selector/file_selector_macos/lib/file_selector_macos.dart +++ b/packages/file_selector/file_selector_macos/lib/file_selector_macos.dart @@ -104,17 +104,17 @@ class FileSelectorMacOS extends FileSelectorPlatform { // Reject a filter that isn't an allow-any, but doesn't set any // macOS-supported filter categories. if ((typeGroup.extensions?.isEmpty ?? true) && - (typeGroup.macUTIs?.isEmpty ?? true) && + (typeGroup.uniformTypeIdentifiers?.isEmpty ?? true) && (typeGroup.mimeTypes?.isEmpty ?? true)) { throw ArgumentError('Provided type group $typeGroup does not allow ' 'all files, but does not set any of the macOS-supported filter ' - 'categories. At least one of "extensions", "macUTIs", or ' - '"mimeTypes" must be non-empty for macOS if anything is ' - 'non-empty.'); + 'categories. At least one of "extensions", ' + '"uniformTypeIdentifiers", or "mimeTypes" must be non-empty for ' + 'macOS if anything is non-empty.'); } allowedTypes.extensions.addAll(typeGroup.extensions ?? []); allowedTypes.mimeTypes.addAll(typeGroup.mimeTypes ?? []); - allowedTypes.utis.addAll(typeGroup.macUTIs ?? []); + allowedTypes.utis.addAll(typeGroup.uniformTypeIdentifiers ?? []); } return allowedTypes; diff --git a/packages/file_selector/file_selector_macos/pubspec.yaml b/packages/file_selector/file_selector_macos/pubspec.yaml index 4b922261bbe..a11a89290ae 100644 --- a/packages/file_selector/file_selector_macos/pubspec.yaml +++ b/packages/file_selector/file_selector_macos/pubspec.yaml @@ -18,7 +18,7 @@ flutter: dependencies: cross_file: ^0.3.1 - file_selector_platform_interface: ^2.2.0 + file_selector_platform_interface: ^2.3.0 flutter: sdk: flutter diff --git a/packages/file_selector/file_selector_macos/test/file_selector_macos_test.dart b/packages/file_selector/file_selector_macos/test/file_selector_macos_test.dart index 181409e6f1b..ca1f4dd7aa7 100644 --- a/packages/file_selector/file_selector_macos/test/file_selector_macos_test.dart +++ b/packages/file_selector/file_selector_macos/test/file_selector_macos_test.dart @@ -69,14 +69,14 @@ void main() { label: 'text', extensions: ['txt'], mimeTypes: ['text/plain'], - macUTIs: ['public.text'], + uniformTypeIdentifiers: ['public.text'], ); const XTypeGroup groupTwo = XTypeGroup( label: 'image', extensions: ['jpg'], mimeTypes: ['image/jpg'], - macUTIs: ['public.image'], + uniformTypeIdentifiers: ['public.image'], webWildCards: ['image/*']); await plugin.openFile(acceptedTypeGroups: [group, groupTwo]); @@ -165,14 +165,14 @@ void main() { label: 'text', extensions: ['txt'], mimeTypes: ['text/plain'], - macUTIs: ['public.text'], + uniformTypeIdentifiers: ['public.text'], ); const XTypeGroup groupTwo = XTypeGroup( label: 'image', extensions: ['jpg'], mimeTypes: ['image/jpg'], - macUTIs: ['public.image'], + uniformTypeIdentifiers: ['public.image'], webWildCards: ['image/*']); await plugin.openFiles(acceptedTypeGroups: [group, groupTwo]); @@ -256,14 +256,14 @@ void main() { label: 'text', extensions: ['txt'], mimeTypes: ['text/plain'], - macUTIs: ['public.text'], + uniformTypeIdentifiers: ['public.text'], ); const XTypeGroup groupTwo = XTypeGroup( label: 'image', extensions: ['jpg'], mimeTypes: ['image/jpg'], - macUTIs: ['public.image'], + uniformTypeIdentifiers: ['public.image'], webWildCards: ['image/*']); await plugin @@ -372,13 +372,13 @@ void main() { label: 'text', extensions: ['txt'], mimeTypes: ['text/plain'], - macUTIs: ['public.text'], + uniformTypeIdentifiers: ['public.text'], ), const XTypeGroup( label: 'image', extensions: ['jpg'], mimeTypes: ['image/jpg'], - macUTIs: ['public.image'], + uniformTypeIdentifiers: ['public.image'], ), const XTypeGroup( label: 'any', From be2382ac25bbf6c1387904183275b9513b03bcee Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 1 May 2023 10:43:04 -0400 Subject: [PATCH 2/5] Migrate iOS to new name --- .../example/lib/open_image_page.dart | 2 +- .../example/lib/open_multiple_images_page.dart | 4 ++-- .../example/lib/open_text_page.dart | 2 +- .../file_selector_ios/lib/file_selector_ios.dart | 6 +++--- .../file_selector/file_selector_ios/pubspec.yaml | 2 +- .../test/file_selector_ios_test.dart | 12 ++++++------ 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/file_selector/file_selector_ios/example/lib/open_image_page.dart b/packages/file_selector/file_selector_ios/example/lib/open_image_page.dart index a89c1bf1c08..e4fd5dd0765 100644 --- a/packages/file_selector/file_selector_ios/example/lib/open_image_page.dart +++ b/packages/file_selector/file_selector_ios/example/lib/open_image_page.dart @@ -18,7 +18,7 @@ class OpenImagePage extends StatelessWidget { const XTypeGroup typeGroup = XTypeGroup( label: 'images', extensions: ['jpg', 'png'], - macUTIs: ['public.image'], + uniformTypeIdentifiers: ['public.image'], ); final XFile? file = await FileSelectorPlatform.instance .openFile(acceptedTypeGroups: [typeGroup]); diff --git a/packages/file_selector/file_selector_ios/example/lib/open_multiple_images_page.dart b/packages/file_selector/file_selector_ios/example/lib/open_multiple_images_page.dart index a101a45ddfc..cdbf5f2f21e 100644 --- a/packages/file_selector/file_selector_ios/example/lib/open_multiple_images_page.dart +++ b/packages/file_selector/file_selector_ios/example/lib/open_multiple_images_page.dart @@ -18,12 +18,12 @@ class OpenMultipleImagesPage extends StatelessWidget { const XTypeGroup jpgsTypeGroup = XTypeGroup( label: 'JPEGs', extensions: ['jpg', 'jpeg'], - macUTIs: ['public.jpeg'], + uniformTypeIdentifiers: ['public.jpeg'], ); const XTypeGroup pngTypeGroup = XTypeGroup( label: 'PNGs', extensions: ['png'], - macUTIs: ['public.png'], + uniformTypeIdentifiers: ['public.png'], ); final List files = await FileSelectorPlatform.instance .openFiles(acceptedTypeGroups: [ diff --git a/packages/file_selector/file_selector_ios/example/lib/open_text_page.dart b/packages/file_selector/file_selector_ios/example/lib/open_text_page.dart index 14ec0ea9b89..f606fdc7f9f 100644 --- a/packages/file_selector/file_selector_ios/example/lib/open_text_page.dart +++ b/packages/file_selector/file_selector_ios/example/lib/open_text_page.dart @@ -15,7 +15,7 @@ class OpenTextPage extends StatelessWidget { const XTypeGroup typeGroup = XTypeGroup( label: 'text', extensions: ['txt', 'json'], - macUTIs: ['public.text'], + uniformTypeIdentifiers: ['public.text'], ); final XFile? file = await FileSelectorPlatform.instance .openFile(acceptedTypeGroups: [typeGroup]); diff --git a/packages/file_selector/file_selector_ios/lib/file_selector_ios.dart b/packages/file_selector/file_selector_ios/lib/file_selector_ios.dart index e75f67e4f1b..22349b6232e 100644 --- a/packages/file_selector/file_selector_ios/lib/file_selector_ios.dart +++ b/packages/file_selector/file_selector_ios/lib/file_selector_ios.dart @@ -53,11 +53,11 @@ class FileSelectorIOS extends FileSelectorPlatform { if (typeGroup.allowsAny) { return []; } - if (typeGroup.macUTIs?.isEmpty ?? true) { + if (typeGroup.uniformTypeIdentifiers?.isEmpty ?? true) { throw ArgumentError('The provided type group $typeGroup should either ' - 'allow all files, or have a non-empty "macUTIs"'); + 'allow all files, or have a non-empty "uniformTypeIdentifiers"'); } - allowedUTIs.addAll(typeGroup.macUTIs!); + allowedUTIs.addAll(typeGroup.uniformTypeIdentifiers!); } return allowedUTIs; } diff --git a/packages/file_selector/file_selector_ios/pubspec.yaml b/packages/file_selector/file_selector_ios/pubspec.yaml index aa94300b0b9..d620533ae51 100644 --- a/packages/file_selector/file_selector_ios/pubspec.yaml +++ b/packages/file_selector/file_selector_ios/pubspec.yaml @@ -17,7 +17,7 @@ flutter: pluginClass: FFSFileSelectorPlugin dependencies: - file_selector_platform_interface: ^2.2.0 + file_selector_platform_interface: ^2.3.0 flutter: sdk: flutter diff --git a/packages/file_selector/file_selector_ios/test/file_selector_ios_test.dart b/packages/file_selector/file_selector_ios/test/file_selector_ios_test.dart index e10ad17a2fb..6d3c3c684ca 100644 --- a/packages/file_selector/file_selector_ios/test/file_selector_ios_test.dart +++ b/packages/file_selector/file_selector_ios/test/file_selector_ios_test.dart @@ -40,14 +40,14 @@ void main() { label: 'text', extensions: ['txt'], mimeTypes: ['text/plain'], - macUTIs: ['public.text'], + uniformTypeIdentifiers: ['public.text'], ); const XTypeGroup groupTwo = XTypeGroup( label: 'image', extensions: ['jpg'], mimeTypes: ['image/jpg'], - macUTIs: ['public.image'], + uniformTypeIdentifiers: ['public.image'], webWildCards: ['image/*']); await plugin.openFile(acceptedTypeGroups: [group, groupTwo]); @@ -56,7 +56,7 @@ void main() { final FileSelectorConfig config = result.captured[0] as FileSelectorConfig; - // iOS only accepts macUTIs. + // iOS only accepts uniformTypeIdentifiers. expect(listEquals(config.utis, ['public.text', 'public.image']), isTrue); expect(config.allowMultiSelection, isFalse); @@ -92,14 +92,14 @@ void main() { label: 'text', extensions: ['txt'], mimeTypes: ['text/plain'], - macUTIs: ['public.text'], + uniformTypeIdentifiers: ['public.text'], ); const XTypeGroup groupTwo = XTypeGroup( label: 'image', extensions: ['jpg'], mimeTypes: ['image/jpg'], - macUTIs: ['public.image'], + uniformTypeIdentifiers: ['public.image'], webWildCards: ['image/*']); await plugin.openFiles(acceptedTypeGroups: [group, groupTwo]); @@ -108,7 +108,7 @@ void main() { final FileSelectorConfig config = result.captured[0] as FileSelectorConfig; - // iOS only accepts macUTIs. + // iOS only accepts uniformTypeIdentifiers. expect(listEquals(config.utis, ['public.text', 'public.image']), isTrue); expect(config.allowMultiSelection, isTrue); From 55d80dbf014392a4d67e43551ae0b1afd46e154e Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 1 May 2023 10:45:34 -0400 Subject: [PATCH 3/5] Update tests in packages that don't support it --- .../test/file_selector_linux_test.dart | 9 ------- .../file_selector_web/pubspec.yaml | 2 +- .../file_selector_web/test/utils_test.dart | 3 ++- .../test/file_selector_windows_test.dart | 27 +++++++++---------- 4 files changed, 15 insertions(+), 26 deletions(-) diff --git a/packages/file_selector/file_selector_linux/test/file_selector_linux_test.dart b/packages/file_selector/file_selector_linux/test/file_selector_linux_test.dart index 53a549da3d4..5127d28b7f6 100644 --- a/packages/file_selector/file_selector_linux/test/file_selector_linux_test.dart +++ b/packages/file_selector/file_selector_linux/test/file_selector_linux_test.dart @@ -38,15 +38,12 @@ void main() { label: 'text', extensions: ['txt'], mimeTypes: ['text/plain'], - macUTIs: ['public.text'], ); const XTypeGroup groupTwo = XTypeGroup( label: 'image', extensions: ['jpg'], mimeTypes: ['image/jpg'], - macUTIs: ['public.image'], - webWildCards: ['image/*'], ); await plugin.openFile(acceptedTypeGroups: [group, groupTwo]); @@ -144,15 +141,12 @@ void main() { label: 'text', extensions: ['txt'], mimeTypes: ['text/plain'], - macUTIs: ['public.text'], ); const XTypeGroup groupTwo = XTypeGroup( label: 'image', extensions: ['jpg'], mimeTypes: ['image/jpg'], - macUTIs: ['public.image'], - webWildCards: ['image/*'], ); await plugin.openFiles(acceptedTypeGroups: [group, groupTwo]); @@ -250,15 +244,12 @@ void main() { label: 'text', extensions: ['txt'], mimeTypes: ['text/plain'], - macUTIs: ['public.text'], ); const XTypeGroup groupTwo = XTypeGroup( label: 'image', extensions: ['jpg'], mimeTypes: ['image/jpg'], - macUTIs: ['public.image'], - webWildCards: ['image/*'], ); await plugin diff --git a/packages/file_selector/file_selector_web/pubspec.yaml b/packages/file_selector/file_selector_web/pubspec.yaml index 9c0693f0d77..478c9b6bba7 100644 --- a/packages/file_selector/file_selector_web/pubspec.yaml +++ b/packages/file_selector/file_selector_web/pubspec.yaml @@ -17,7 +17,7 @@ flutter: fileName: file_selector_web.dart dependencies: - file_selector_platform_interface: ^2.2.0 + file_selector_platform_interface: ^2.3.0 flutter: sdk: flutter flutter_web_plugins: diff --git a/packages/file_selector/file_selector_web/test/utils_test.dart b/packages/file_selector/file_selector_web/test/utils_test.dart index f9f3a41295f..e207f3d45df 100644 --- a/packages/file_selector/file_selector_web/test/utils_test.dart +++ b/packages/file_selector/file_selector_web/test/utils_test.dart @@ -56,7 +56,8 @@ void main() { test('throws for a type group that does not support web', () { const List acceptedTypes = [ - XTypeGroup(label: 'text', macUTIs: ['public.text']), + XTypeGroup( + label: 'text', uniformTypeIdentifiers: ['public.text']), ]; expect(() => acceptedTypesToString(acceptedTypes), throwsArgumentError); }); diff --git a/packages/file_selector/file_selector_windows/test/file_selector_windows_test.dart b/packages/file_selector/file_selector_windows/test/file_selector_windows_test.dart index 62745f7df70..e5e24c9ece0 100644 --- a/packages/file_selector/file_selector_windows/test/file_selector_windows_test.dart +++ b/packages/file_selector/file_selector_windows/test/file_selector_windows_test.dart @@ -51,14 +51,13 @@ void main() { label: 'text', extensions: ['txt'], mimeTypes: ['text/plain'], - macUTIs: ['public.text'], ); const XTypeGroup groupTwo = XTypeGroup( - label: 'image', - extensions: ['jpg'], - mimeTypes: ['image/jpg'], - macUTIs: ['public.image']); + label: 'image', + extensions: ['jpg'], + mimeTypes: ['image/jpg'], + ); await plugin.openFile(acceptedTypeGroups: [group, groupTwo]); @@ -129,14 +128,13 @@ void main() { label: 'text', extensions: ['txt'], mimeTypes: ['text/plain'], - macUTIs: ['public.text'], ); const XTypeGroup groupTwo = XTypeGroup( - label: 'image', - extensions: ['jpg'], - mimeTypes: ['image/jpg'], - macUTIs: ['public.image']); + label: 'image', + extensions: ['jpg'], + mimeTypes: ['image/jpg'], + ); await plugin.openFiles(acceptedTypeGroups: [group, groupTwo]); @@ -235,14 +233,13 @@ void main() { label: 'text', extensions: ['txt'], mimeTypes: ['text/plain'], - macUTIs: ['public.text'], ); const XTypeGroup groupTwo = XTypeGroup( - label: 'image', - extensions: ['jpg'], - mimeTypes: ['image/jpg'], - macUTIs: ['public.image']); + label: 'image', + extensions: ['jpg'], + mimeTypes: ['image/jpg'], + ); await plugin .getSavePath(acceptedTypeGroups: [group, groupTwo]); From 4d889311af33ef59cc9464a8891e96579c00d88c Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 1 May 2023 10:50:15 -0400 Subject: [PATCH 4/5] Update app-facing README --- packages/file_selector/file_selector/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/file_selector/file_selector/README.md b/packages/file_selector/file_selector/README.md index d5878e2d268..3fc0f14f0e6 100644 --- a/packages/file_selector/file_selector/README.md +++ b/packages/file_selector/file_selector/README.md @@ -99,12 +99,12 @@ Different platforms support different type group filter options. To avoid filters that cover all platforms you are targeting, or that you conditionally pass different `XTypeGroup`s based on `Platform`. -| | Linux | macOS | Web | Windows | -|----------------|-------|--------|-----|-------------| -| `extensions` | ✔️ | ✔️ | ✔️ | ✔️ | -| `mimeTypes` | ✔️ | ✔️† | ✔️ | | -| `macUTIs` | | ✔️ | | | -| `webWildCards` | | | ✔️ | | +| | iOS | Linux | macOS | Web | Windows | +|--------------------------|-----|-------|--------|-----|-------------| +| `extensions` | | ✔️ | ✔️ | ✔️ | ✔️ | +| `mimeTypes` | | ✔️ | ✔️† | ✔️ | | +| `uniformTypeIdentifiers` | ✔️ | | ✔️ | | | +| `webWildCards` | | | | ✔️ | | † `mimeTypes` are not supported on version of macOS earlier than 11 (Big Sur). @@ -118,4 +118,4 @@ pass different `XTypeGroup`s based on `Platform`. | Choose a directory | Pick a folder and get its path | ❌ | ✔️ | ✔️ | ✔️ | ❌ | [example]:./example -[entitlement]: https://docs.flutter.dev/desktop#entitlements-and-the-app-sandbox \ No newline at end of file +[entitlement]: https://docs.flutter.dev/desktop#entitlements-and-the-app-sandbox From 4e89bffe62f084f68165972e3befd9bcb224e638 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 1 May 2023 10:56:09 -0400 Subject: [PATCH 5/5] Version bumps --- packages/file_selector/file_selector/CHANGELOG.md | 3 ++- packages/file_selector/file_selector/pubspec.yaml | 4 ++-- packages/file_selector/file_selector_ios/CHANGELOG.md | 4 ++++ packages/file_selector/file_selector_ios/pubspec.yaml | 2 +- packages/file_selector/file_selector_macos/CHANGELOG.md | 4 ++++ packages/file_selector/file_selector_macos/pubspec.yaml | 2 +- 6 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/file_selector/file_selector/CHANGELOG.md b/packages/file_selector/file_selector/CHANGELOG.md index febebfdcdca..ed6ce16bed3 100644 --- a/packages/file_selector/file_selector/CHANGELOG.md +++ b/packages/file_selector/file_selector/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 0.9.2+5 +* Updates references to the deprecated `macUTIs`. * Aligns Dart and Flutter SDK constraints. ## 0.9.2+4 diff --git a/packages/file_selector/file_selector/pubspec.yaml b/packages/file_selector/file_selector/pubspec.yaml index 5a8e910911f..becf6d39639 100644 --- a/packages/file_selector/file_selector/pubspec.yaml +++ b/packages/file_selector/file_selector/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for opening and saving files, or selecting directories, using native file selection UI. repository: https://github.com/flutter/packages/tree/main/packages/file_selector/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.2+4 +version: 0.9.2+5 environment: sdk: ">=2.17.0 <4.0.0" @@ -27,7 +27,7 @@ dependencies: file_selector_ios: ^0.5.0 file_selector_linux: ^0.9.0 file_selector_macos: ^0.9.0 - file_selector_platform_interface: ^2.2.0 + file_selector_platform_interface: ^2.3.0 file_selector_web: ^0.9.0 file_selector_windows: ^0.9.0 flutter: diff --git a/packages/file_selector/file_selector_ios/CHANGELOG.md b/packages/file_selector/file_selector_ios/CHANGELOG.md index 568b6ceee97..8a48d5b089d 100644 --- a/packages/file_selector/file_selector_ios/CHANGELOG.md +++ b/packages/file_selector/file_selector_ios/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.5.1+4 + +* Updates references to the deprecated `macUTIs`. + ## 0.5.1+3 * Updates pigeon to fix warnings with clang 15. diff --git a/packages/file_selector/file_selector_ios/pubspec.yaml b/packages/file_selector/file_selector_ios/pubspec.yaml index d620533ae51..944f46709fd 100644 --- a/packages/file_selector/file_selector_ios/pubspec.yaml +++ b/packages/file_selector/file_selector_ios/pubspec.yaml @@ -2,7 +2,7 @@ name: file_selector_ios description: iOS implementation of the file_selector plugin. repository: https://github.com/flutter/packages/tree/main/packages/file_selector/file_selector_ios issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+file_selector%22 -version: 0.5.1+3 +version: 0.5.1+4 environment: sdk: ">=2.18.0 <4.0.0" diff --git a/packages/file_selector/file_selector_macos/CHANGELOG.md b/packages/file_selector/file_selector_macos/CHANGELOG.md index a83f52552fd..1d033a30248 100644 --- a/packages/file_selector/file_selector_macos/CHANGELOG.md +++ b/packages/file_selector/file_selector_macos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.9.0+9 + +* Updates references to the deprecated `macUTIs`. + ## 0.9.0+8 * Updates pigeon for null value handling fixes. diff --git a/packages/file_selector/file_selector_macos/pubspec.yaml b/packages/file_selector/file_selector_macos/pubspec.yaml index a11a89290ae..47f65505d91 100644 --- a/packages/file_selector/file_selector_macos/pubspec.yaml +++ b/packages/file_selector/file_selector_macos/pubspec.yaml @@ -2,7 +2,7 @@ name: file_selector_macos description: macOS implementation of the file_selector plugin. repository: https://github.com/flutter/packages/tree/main/packages/file_selector/file_selector_macos issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+file_selector%22 -version: 0.9.0+8 +version: 0.9.0+9 environment: sdk: ">=2.18.0 <4.0.0"