diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a0fbf4c7c..7de03b187 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -81,25 +81,25 @@ jobs: include: # Flutter framework may contain breaking changes in minor version releases, not following semver. # The latest Flutter framework (below) is tested on all architectures (Ubuntu, macOS, Windows). - - name: Flutter 3.19, Ubuntu + - name: Flutter 3.24, Ubuntu os: ubuntu-latest - sdk: 3.19.5 - - name: Flutter 3.19, macOS + sdk: 3.24.3 + - name: Flutter 3.24, macOS os: macos-latest - sdk: 3.19.5 - - name: Flutter 3.19, Windows + sdk: 3.24.3 + - name: Flutter 3.24, Windows os: windows-latest - sdk: 3.19.5 + sdk: 3.24.3 # Older Flutter framework versions (below) are only tested with Ubuntu to reduce CI resource usage. - - name: Flutter 3.16 + - name: Flutter 3.22 os: ubuntu-latest - sdk: 3.16.9 - - name: Flutter 3.13 + sdk: 3.22.3 + - name: Flutter 3.19 os: ubuntu-latest - sdk: 3.13.9 - - name: Flutter 3.10 + sdk: 3.19.6 + - name: Flutter 3.16 os: ubuntu-latest - sdk: 3.10.6 + sdk: 3.16.9 - name: Flutter beta os: ubuntu-latest sdk: beta diff --git a/packages/flutter/CHANGELOG.md b/packages/flutter/CHANGELOG.md index f7a334142..539409b28 100644 --- a/packages/flutter/CHANGELOG.md +++ b/packages/flutter/CHANGELOG.md @@ -1,3 +1,9 @@ +## [9.0.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/flutter-8.0.0...flutter-9.0.0) (2024-10-16) + +### BREAKING CHANGES + +* This release removes support for Flutter 3.10, 3.13 ([#1014](https://github.com/parse-community/Parse-SDK-Flutter/pull/1014)) + ## [8.0.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/flutter-7.0.0...flutter-8.0.0) (2024-05-15) ### BREAKING CHANGES diff --git a/packages/flutter/README.md b/packages/flutter/README.md index fe4989833..179e046a5 100644 --- a/packages/flutter/README.md +++ b/packages/flutter/README.md @@ -32,10 +32,10 @@ The Parse Flutter SDK is continuously tested with the most recent release of the | Version | Latest Version | End of Support | Compatible | |--------------|----------------|----------------|------------| -| Flutter 3.10 | 3.10.6 | Jul 2024 | ✅ Yes | -| Flutter 3.13 | 3.13.9 | Oct 2024 | ✅ Yes | | Flutter 3.16 | 3.16.9 | Jan 2025 | ✅ Yes | -| Flutter 3.19 | 3.19.5 | Mar 2025 | ✅ Yes | +| Flutter 3.19 | 3.19.6 | Apr 2025 | ✅ Yes | +| Flutter 3.22 | 3.22.3 | Jul 2025 | ✅ Yes | +| Flutter 3.24 | 3.24.3 | Sep 2025 | ✅ Yes | ## Getting Started diff --git a/packages/flutter/example/lib/domain/utils/db_utils.dart b/packages/flutter/example/lib/domain/utils/db_utils.dart index 95d34a3b2..03440536e 100644 --- a/packages/flutter/example/lib/domain/utils/db_utils.dart +++ b/packages/flutter/example/lib/domain/utils/db_utils.dart @@ -1,11 +1,10 @@ import 'package:path/path.dart' as path; import 'package:path_provider/path_provider.dart'; -import 'package:sembast/sembast.dart'; import 'package:sembast/sembast_io.dart'; -Future getDB() async { +Future getDB() async { final String dbDirectory = (await getApplicationDocumentsDirectory()).path; final String dbPath = path.join(dbDirectory, 'no_sql'); - final DatabaseFactory dbFactory = databaseFactoryIo; + final dynamic dbFactory = databaseFactoryIo; return await dbFactory.openDatabase(dbPath); } diff --git a/packages/flutter/example/test/data/repository/repository_mock_utils.dart b/packages/flutter/example/test/data/repository/repository_mock_utils.dart index 20386bb12..de92e769b 100644 --- a/packages/flutter/example/test/data/repository/repository_mock_utils.dart +++ b/packages/flutter/example/test/data/repository/repository_mock_utils.dart @@ -7,17 +7,16 @@ import 'package:flutter_plugin_example/domain/constants/application_constants.da import 'package:mockito/mockito.dart'; import 'package:parse_server_sdk_flutter/parse_server_sdk_flutter.dart'; import 'package:path/path.dart'; -import 'package:sembast/sembast.dart'; import 'package:sembast/sembast_io.dart'; class MockDietPlanProviderApi extends Mock implements DietPlanProviderApi {} class MockDietPlanProviderDB extends Mock implements DietPlanProviderDB {} -Future getDB() async { +Future getDB() async { final String dbDirectory = Directory.current.path; final String dbPath = join(dbDirectory, 'no_sql_test'); - final DatabaseFactory dbFactory = databaseFactoryIo; + final dynamic dbFactory = databaseFactoryIo; return await dbFactory.openDatabase(dbPath); } diff --git a/packages/flutter/lib/parse_server_sdk_flutter.dart b/packages/flutter/lib/parse_server_sdk_flutter.dart index 33e4d8e79..a7e14cf88 100644 --- a/packages/flutter/lib/parse_server_sdk_flutter.dart +++ b/packages/flutter/lib/parse_server_sdk_flutter.dart @@ -1,4 +1,4 @@ -library flutter_parse_sdk_flutter; +library; import 'dart:convert'; import 'dart:async'; @@ -19,10 +19,15 @@ export 'package:parse_server_sdk/parse_server_sdk.dart' hide Parse, CoreStoreSembastImp; part 'src/storage/core_store_shared_preferences.dart'; + part 'src/storage/core_store_sembast.dart'; + part 'src/utils/parse_live_grid.dart'; + part 'src/utils/parse_live_list.dart'; + part 'src/notification/parse_notification.dart'; + part 'src/push//parse_push.dart'; class Parse extends sdk.Parse @@ -109,30 +114,30 @@ class Parse extends sdk.Parse @override Future checkConnectivity() async { - switch (await Connectivity().checkConnectivity()) { - case ConnectivityResult.wifi: - return sdk.ParseConnectivityResult.wifi; - case ConnectivityResult.mobile: - return sdk.ParseConnectivityResult.mobile; - case ConnectivityResult.none: - return sdk.ParseConnectivityResult.none; - default: - return sdk.ParseConnectivityResult.wifi; + List list = await Connectivity().checkConnectivity(); + + if (list.contains(ConnectivityResult.wifi)) { + return sdk.ParseConnectivityResult.wifi; + } else if (list.contains(ConnectivityResult.mobile)) { + return sdk.ParseConnectivityResult.mobile; + } else { + return sdk.ParseConnectivityResult.none; } } @override Stream get connectivityStream { - return Connectivity().onConnectivityChanged.map((ConnectivityResult event) { - switch (event) { - case ConnectivityResult.wifi: + return Connectivity().onConnectivityChanged.map( + (List event) { + if (event.contains(ConnectivityResult.wifi)) { return sdk.ParseConnectivityResult.wifi; - case ConnectivityResult.mobile: + } else if (event.contains(ConnectivityResult.mobile)) { return sdk.ParseConnectivityResult.mobile; - default: + } else { return sdk.ParseConnectivityResult.none; - } - }); + } + }, + ); } @override diff --git a/packages/flutter/pubspec.yaml b/packages/flutter/pubspec.yaml index 7a6453fdd..21f3d0a46 100644 --- a/packages/flutter/pubspec.yaml +++ b/packages/flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: parse_server_sdk_flutter description: The Flutter SDK to connect to Parse Server. Build your apps faster with Parse Platform, the complete application stack. -version: 8.0.0 +version: 9.0.0 homepage: https://parseplatform.org repository: https://github.com/parse-community/Parse-SDK-Flutter issue_tracker: https://github.com/parse-community/Parse-SDK-Flutter/issues @@ -18,8 +18,8 @@ topics: - backend environment: - sdk: ">=3.0.6 <4.0.0" - flutter: ">=3.10.6" + sdk: ">=3.2.6 <4.0.0" + flutter: ">=3.16.9" dependencies: flutter: @@ -31,23 +31,23 @@ dependencies: # path: ../dart # Networking - connectivity_plus: ^5.0.2 + connectivity_plus: ^6.0.3 #Database - shared_preferences: ^2.2.2 + shared_preferences: ^2.2.3 sembast: ^3.6.0 sembast_web: ^2.2.0 # Utils - path_provider: ^2.1.2 - package_info_plus: ^4.2.0 + path_provider: ^2.1.4 + package_info_plus: ^5.0.1 path: ^1.8.3 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^3.0.1 + flutter_lints: ^4.0.0 path_provider_platform_interface: ^2.1.2 plugin_platform_interface: ^2.1.8 diff --git a/packages/flutter/test/src/storage/core_store_directory_io_test.dart b/packages/flutter/test/src/storage/core_store_directory_io_test.dart index a2a39a421..acb32a053 100644 --- a/packages/flutter/test/src/storage/core_store_directory_io_test.dart +++ b/packages/flutter/test/src/storage/core_store_directory_io_test.dart @@ -1,5 +1,5 @@ @TestOn('dart-vm') -@Timeout.factor(2) +library; import 'dart:io'; import 'dart:math';