diff --git a/.github/workflows/ads_consent_client.yaml b/.github/workflows/ads_consent_client.yaml index 06ae565a9..02084b8ce 100644 --- a/.github/workflows/ads_consent_client.yaml +++ b/.github/workflows/ads_consent_client.yaml @@ -16,6 +16,6 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/ads_consent_client coverage_excludes: "lib/src/generated/*.dart" diff --git a/.github/workflows/api.yaml b/.github/workflows/api.yaml index f7d6a29b6..5d3abb1fd 100644 --- a/.github/workflows/api.yaml +++ b/.github/workflows/api.yaml @@ -16,7 +16,7 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1 with: - dart_sdk: 3.5.2 + dart_sdk: 3.6.0 working_directory: flutter_news_example/api analyze_directories: "routes lib test" coverage_excludes: "**/*.g.dart" diff --git a/.github/workflows/app_ui.yaml b/.github/workflows/app_ui.yaml index 7c69bf709..91028dfb6 100644 --- a/.github/workflows/app_ui.yaml +++ b/.github/workflows/app_ui.yaml @@ -16,6 +16,6 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/app_ui coverage_excludes: "lib/src/generated/*.dart" diff --git a/.github/workflows/article_repository.yaml b/.github/workflows/article_repository.yaml index 966d86bf8..0e85e986c 100644 --- a/.github/workflows/article_repository.yaml +++ b/.github/workflows/article_repository.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1 with: - dart_sdk: 3.5.2 + dart_sdk: 3.6.0 working_directory: flutter_news_example/packages/article_repository diff --git a/.github/workflows/authentication_client.yaml b/.github/workflows/authentication_client.yaml index d1ff34ea1..4b4132cf2 100644 --- a/.github/workflows/authentication_client.yaml +++ b/.github/workflows/authentication_client.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1 with: - dart_sdk: 3.5.2 + dart_sdk: 3.6.0 working_directory: flutter_news_example/packages/authentication_client/authentication_client diff --git a/.github/workflows/deep_link_client.yaml b/.github/workflows/deep_link_client.yaml index bfdad6593..056739584 100644 --- a/.github/workflows/deep_link_client.yaml +++ b/.github/workflows/deep_link_client.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1 with: - dart_sdk: 3.4.3 + dart_sdk: 3.6.0 working_directory: flutter_news_example/packages/deep_link_client/deep_link_client diff --git a/.github/workflows/email_launcher.yaml b/.github/workflows/email_launcher.yaml index 4ba4ed6a0..24b824c25 100644 --- a/.github/workflows/email_launcher.yaml +++ b/.github/workflows/email_launcher.yaml @@ -16,6 +16,6 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/email_launcher coverage_excludes: "lib/src/generated/*.dart" diff --git a/.github/workflows/firebase_authentication_client.yaml b/.github/workflows/firebase_authentication_client.yaml index 3ef4ca3e7..340a20033 100644 --- a/.github/workflows/firebase_authentication_client.yaml +++ b/.github/workflows/firebase_authentication_client.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/authentication_client/firebase_authentication_client diff --git a/.github/workflows/firebase_deep_link_client.yaml b/.github/workflows/firebase_deep_link_client.yaml index a10be4b8c..2476a86ec 100644 --- a/.github/workflows/firebase_deep_link_client.yaml +++ b/.github/workflows/firebase_deep_link_client.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.22.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/deep_link_client/firebase_deep_link_client diff --git a/.github/workflows/firebase_notifications_client.yaml b/.github/workflows/firebase_notifications_client.yaml index d67efcc0c..03c35822f 100644 --- a/.github/workflows/firebase_notifications_client.yaml +++ b/.github/workflows/firebase_notifications_client.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/notifications_client/firebase_notifications_client diff --git a/.github/workflows/flutter_news_example.yaml b/.github/workflows/flutter_news_example.yaml index ea8880054..8a3fb3d7b 100644 --- a/.github/workflows/flutter_news_example.yaml +++ b/.github/workflows/flutter_news_example.yaml @@ -36,7 +36,7 @@ jobs: - uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 with: channel: ${{matrix.channel}} - flutter-version: "3.24.2" + flutter-version: "3.27.0" cache: false - name: Install Dependencies diff --git a/.github/workflows/form_inputs.yaml b/.github/workflows/form_inputs.yaml index 126a9c12a..753415618 100644 --- a/.github/workflows/form_inputs.yaml +++ b/.github/workflows/form_inputs.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1 with: - dart_sdk: 3.5.2 + dart_sdk: 3.6.0 working_directory: flutter_news_example/packages/form_inputs diff --git a/.github/workflows/in_app_purchase_repository.yaml b/.github/workflows/in_app_purchase_repository.yaml index 0f97cca16..c76b9e8df 100644 --- a/.github/workflows/in_app_purchase_repository.yaml +++ b/.github/workflows/in_app_purchase_repository.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/in_app_purchase_repository diff --git a/.github/workflows/news_blocks.yaml b/.github/workflows/news_blocks.yaml index 07c3282b6..093b2029a 100644 --- a/.github/workflows/news_blocks.yaml +++ b/.github/workflows/news_blocks.yaml @@ -17,5 +17,5 @@ jobs: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1 with: coverage_excludes: "**/*.g.dart" - dart_sdk: 3.5.2 + dart_sdk: 3.6.0 working_directory: flutter_news_example/api/packages/news_blocks diff --git a/.github/workflows/news_blocks_ui.yaml b/.github/workflows/news_blocks_ui.yaml index bb02feeaa..c2c798742 100644 --- a/.github/workflows/news_blocks_ui.yaml +++ b/.github/workflows/news_blocks_ui.yaml @@ -16,6 +16,6 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/news_blocks_ui coverage_excludes: "lib/src/generated/*.dart" diff --git a/.github/workflows/news_repository.yaml b/.github/workflows/news_repository.yaml index 1cc12e531..0ac997504 100644 --- a/.github/workflows/news_repository.yaml +++ b/.github/workflows/news_repository.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/news_repository diff --git a/.github/workflows/notifications_client.yaml b/.github/workflows/notifications_client.yaml index 19a8641f8..76be32253 100644 --- a/.github/workflows/notifications_client.yaml +++ b/.github/workflows/notifications_client.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1 with: - dart_sdk: 3.5.2 + dart_sdk: 3.6.0 working_directory: flutter_news_example/packages/notifications_client/notifications_client diff --git a/.github/workflows/notifications_repository.yaml b/.github/workflows/notifications_repository.yaml index a5d07d5eb..a02e20f47 100644 --- a/.github/workflows/notifications_repository.yaml +++ b/.github/workflows/notifications_repository.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/notifications_repository diff --git a/.github/workflows/one_signal_notifications_client.yaml b/.github/workflows/one_signal_notifications_client.yaml index b3d7b7677..4ff1ad2e2 100644 --- a/.github/workflows/one_signal_notifications_client.yaml +++ b/.github/workflows/one_signal_notifications_client.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/notifications_client/one_signal_notifications_client diff --git a/.github/workflows/package_info_client.yaml b/.github/workflows/package_info_client.yaml index af31d6909..05b7599b3 100644 --- a/.github/workflows/package_info_client.yaml +++ b/.github/workflows/package_info_client.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1 with: - dart_sdk: 3.5.2 + dart_sdk: 3.6.0 working_directory: flutter_news_example/packages/package_info_client diff --git a/.github/workflows/permission_client.yaml b/.github/workflows/permission_client.yaml index 3a743a85d..79b8aa719 100644 --- a/.github/workflows/permission_client.yaml +++ b/.github/workflows/permission_client.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/permission_client diff --git a/.github/workflows/persistent_storage.yaml b/.github/workflows/persistent_storage.yaml index 630d993fc..b5bb4b2d2 100644 --- a/.github/workflows/persistent_storage.yaml +++ b/.github/workflows/persistent_storage.yaml @@ -17,5 +17,5 @@ jobs: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: coverage_excludes: "**/*.g.dart" - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/storage/persistent_storage diff --git a/.github/workflows/purchase_client.yaml b/.github/workflows/purchase_client.yaml index c91785583..137c29a65 100644 --- a/.github/workflows/purchase_client.yaml +++ b/.github/workflows/purchase_client.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/purchase_client diff --git a/.github/workflows/secure_storage.yaml b/.github/workflows/secure_storage.yaml index 39d60372b..3866c4657 100644 --- a/.github/workflows/secure_storage.yaml +++ b/.github/workflows/secure_storage.yaml @@ -17,5 +17,5 @@ jobs: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: coverage_excludes: "**/*.g.dart" - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/storage/secure_storage diff --git a/.github/workflows/share_launcher.yaml b/.github/workflows/share_launcher.yaml index 42b866b95..6c59b9b64 100644 --- a/.github/workflows/share_launcher.yaml +++ b/.github/workflows/share_launcher.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/share_launcher diff --git a/.github/workflows/storage.yaml b/.github/workflows/storage.yaml index ffdfaacc8..4fd677351 100644 --- a/.github/workflows/storage.yaml +++ b/.github/workflows/storage.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1 with: - dart_sdk: 3.5.2 + dart_sdk: 3.6.0 working_directory: flutter_news_example/packages/storage/storage diff --git a/.github/workflows/token_storage.yaml b/.github/workflows/token_storage.yaml index 9728e337a..92a2e355e 100644 --- a/.github/workflows/token_storage.yaml +++ b/.github/workflows/token_storage.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1 with: - dart_sdk: 3.5.2 + dart_sdk: 3.6.0 working_directory: flutter_news_example/packages/authentication_client/token_storage diff --git a/.github/workflows/user_repository.yaml b/.github/workflows/user_repository.yaml index e75115e18..6962e1e47 100644 --- a/.github/workflows/user_repository.yaml +++ b/.github/workflows/user_repository.yaml @@ -16,5 +16,5 @@ jobs: build: uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 with: - flutter_version: 3.24.2 + flutter_version: 3.27.0 working_directory: flutter_news_example/packages/user_repository diff --git a/flutter_news_example/.vscode/cspell.json b/flutter_news_example/.vscode/cspell.json index 078389e34..f3283b61b 100644 --- a/flutter_news_example/.vscode/cspell.json +++ b/flutter_news_example/.vscode/cspell.json @@ -131,7 +131,8 @@ "xcworkspace", "xxlg", "xxxlg", - "xxxs" + "xxxs", + "ARGB" ], "ignorePaths": [ ".github/workflows/**", @@ -139,4 +140,4 @@ "**/api/lib/src/data/static_news_data.dart", "**/lib/terms_of_service/terms_of_service_mock_text.dart" ] -} +} \ No newline at end of file diff --git a/flutter_news_example/analysis_options.yaml b/flutter_news_example/analysis_options.yaml index d9b1825fe..bc0a24581 100644 --- a/flutter_news_example/analysis_options.yaml +++ b/flutter_news_example/analysis_options.yaml @@ -1,5 +1,7 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml analyzer: + errors: + document_ignores: ignore exclude: - lib/l10n/* - lib/generated/* diff --git a/flutter_news_example/api/analysis_options.yaml b/flutter_news_example/api/analysis_options.yaml index 44fe184a5..954d3941a 100644 --- a/flutter_news_example/api/analysis_options.yaml +++ b/flutter_news_example/api/analysis_options.yaml @@ -1,5 +1,7 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml analyzer: + errors: + document_ignores: ignore exclude: - build/** - lib/**/*.g.dart diff --git a/flutter_news_example/api/lib/api.dart b/flutter_news_example/api/lib/api.dart index e61d0902c..4eadca868 100644 --- a/flutter_news_example/api/lib/api.dart +++ b/flutter_news_example/api/lib/api.dart @@ -1,6 +1,3 @@ -/// Flutter News Example API Server-Side Library -library api; - export 'src/data/in_memory_news_data_source.dart' show InMemoryNewsDataSource; export 'src/data/models/models.dart' show diff --git a/flutter_news_example/api/lib/client.dart b/flutter_news_example/api/lib/client.dart index d8ff3ae39..c73671a25 100644 --- a/flutter_news_example/api/lib/client.dart +++ b/flutter_news_example/api/lib/client.dart @@ -1,6 +1,3 @@ -/// Flutter News Example API Client-Side Library -library client; - export 'package:news_blocks/news_blocks.dart' show BlockAction, diff --git a/flutter_news_example/api/lib/src/client/flutter_news_example_api_client.dart b/flutter_news_example/api/lib/src/client/flutter_news_example_api_client.dart index 38e5a4522..4fc6ca62c 100644 --- a/flutter_news_example/api/lib/src/client/flutter_news_example_api_client.dart +++ b/flutter_news_example/api/lib/src/client/flutter_news_example_api_client.dart @@ -78,7 +78,7 @@ class FlutterNewsExampleApiClient { final http.Client _httpClient; final TokenProvider _tokenProvider; - /// GET /api/v1/articles/ + /// GET /api/v1/articles/<id> /// Requests article content metadata. /// /// Supported parameters: @@ -116,7 +116,7 @@ class FlutterNewsExampleApiClient { return ArticleResponse.fromJson(body); } - /// GET /api/v1/articles//related + /// GET /api/v1/articles/<id>/related /// Requests related articles. /// /// Supported parameters: diff --git a/flutter_news_example/api/packages/news_blocks/analysis_options.yaml b/flutter_news_example/api/packages/news_blocks/analysis_options.yaml index 0d852c865..3e2a4f685 100644 --- a/flutter_news_example/api/packages/news_blocks/analysis_options.yaml +++ b/flutter_news_example/api/packages/news_blocks/analysis_options.yaml @@ -1,4 +1,6 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml analyzer: + errors: + document_ignores: ignore exclude: - lib/**/*.g.dart diff --git a/flutter_news_example/api/packages/news_blocks/pubspec.yaml b/flutter_news_example/api/packages/news_blocks/pubspec.yaml index 34cf77ad4..7600566c9 100644 --- a/flutter_news_example/api/packages/news_blocks/pubspec.yaml +++ b/flutter_news_example/api/packages/news_blocks/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: equatable: ^2.0.3 @@ -12,12 +12,12 @@ dependencies: meta: ^1.7.0 dev_dependencies: - build_runner: ^2.0.0 + build_runner: ^2.4.15 coverage: ^1.1.0 - json_serializable: ^6.8.0 + json_serializable: ^6.9.5 mocktail: ^1.0.2 test: ^1.21.4 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 dependency_overrides: frontend_server_client: ^4.0.0 \ No newline at end of file diff --git a/flutter_news_example/api/pubspec.lock b/flutter_news_example/api/pubspec.lock index d1aa092c4..0a76cd1c9 100644 --- a/flutter_news_example/api/pubspec.lock +++ b/flutter_news_example/api/pubspec.lock @@ -5,23 +5,23 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" url: "https://pub.dev" source: hosted - version: "72.0.0" + version: "76.0.0" _macros: dependency: transitive description: dart source: sdk - version: "0.3.2" + version: "0.3.3" analyzer: dependency: transitive description: name: analyzer - sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" url: "https://pub.dev" source: hosted - version: "6.7.0" + version: "6.11.0" args: dependency: transitive description: @@ -74,26 +74,26 @@ packages: dependency: transitive description: name: build_resolvers - sha256: "64e12b0521812d1684b1917bc80945625391cb9bdd4312536b1d69dcb6133ed8" + sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" url: "https://pub.dev" source: hosted - version: "2.4.9" + version: "2.4.15" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: c9e32d21dd6626b5c163d48b037ce906bbe428bc23ab77bcd77bb21e593b6185 + sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" url: "https://pub.dev" source: hosted - version: "7.2.11" + version: "8.0.0" built_collection: dependency: transitive description: @@ -130,10 +130,10 @@ packages: dependency: "direct main" description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.1" convert: dependency: transitive description: @@ -170,10 +170,10 @@ packages: dependency: transitive description: name: dart_style - sha256: abd7625e16f51f554ea244d090292945ec4d4be7bfbaf2ec8cccea568919d334 + sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.3.8" equatable: dependency: "direct main" description: @@ -290,10 +290,10 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: c2fcb3920cf2b6ae6845954186420fca40bc0a8abcc84903b7801f17d7050d7c + sha256: c50ef5fc083d5b5e12eef489503ba3bf5ccc899e487d691584699b4bdefeea8c url: "https://pub.dev" source: hosted - version: "6.9.0" + version: "6.9.5" logging: dependency: transitive description: @@ -306,10 +306,10 @@ packages: dependency: transitive description: name: macros - sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" url: "https://pub.dev" source: hosted - version: "0.1.2-main.4" + version: "0.1.3-main.0" matcher: dependency: transitive description: @@ -441,18 +441,18 @@ packages: dependency: transitive description: name: source_gen - sha256: fc0da689e5302edb6177fdd964efcb7f58912f43c28c2047a808f5bfff643d16 + sha256: "35c8150ece9e8c8d263337a265153c3329667640850b9304861faea59fc98f6b" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "2.0.0" source_helper: dependency: transitive description: name: source_helper - sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" + sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" url: "https://pub.dev" source: hosted - version: "1.3.4" + version: "1.3.5" source_map_stack_trace: dependency: transitive description: @@ -561,10 +561,10 @@ packages: dependency: "direct dev" description: name: very_good_analysis - sha256: "1fb637c0022034b1f19ea2acb42a3603cbd8314a470646a59a2fb01f5f3a8629" + sha256: "62d2b86d183fb81b2edc22913d9f155d26eb5cf3855173adb1f59fac85035c63" url: "https://pub.dev" source: hosted - version: "6.0.0" + version: "7.0.0" vm_service: dependency: transitive description: @@ -585,10 +585,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.1" web_socket_channel: dependency: transitive description: @@ -614,4 +614,4 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.4.0 <4.0.0" + dart: ">=3.6.0 <4.0.0" diff --git a/flutter_news_example/api/pubspec.yaml b/flutter_news_example/api/pubspec.yaml index 9c65d619e..8f30b1468 100644 --- a/flutter_news_example/api/pubspec.yaml +++ b/flutter_news_example/api/pubspec.yaml @@ -4,10 +4,10 @@ version: 0.1.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: - collection: ^1.16.0 + collection: ^1.19.0 dart_frog: ^1.1.0 equatable: ^2.0.7 http: ^1.2.2 @@ -16,11 +16,11 @@ dependencies: path: packages/news_blocks dev_dependencies: - build_runner: ^2.4.9 - json_serializable: ^6.9.0 + build_runner: ^2.4.15 + json_serializable: ^6.9.5 mocktail: ^1.0.4 test: ^1.25.12 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 dependency_overrides: frontend_server_client: ^4.0.0 \ No newline at end of file diff --git a/flutter_news_example/ios/Flutter/AppFrameworkInfo.plist b/flutter_news_example/ios/Flutter/AppFrameworkInfo.plist index 4f8d4d245..8c6e56146 100644 --- a/flutter_news_example/ios/Flutter/AppFrameworkInfo.plist +++ b/flutter_news_example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/flutter_news_example/lib/ads/bloc/full_screen_ads_bloc.dart b/flutter_news_example/lib/ads/bloc/full_screen_ads_bloc.dart index ae5e860d7..740f5b0bf 100644 --- a/flutter_news_example/lib/ads/bloc/full_screen_ads_bloc.dart +++ b/flutter_news_example/lib/ads/bloc/full_screen_ads_bloc.dart @@ -90,7 +90,7 @@ class FullScreenAdsBloc extends Bloc { status: FullScreenAdsStatus.loadingInterstitialAdSucceeded, ), ); - } catch (error, stackTrace) { + } on Object catch (error, stackTrace) { emit( state.copyWith( status: FullScreenAdsStatus.loadingInterstitialAdFailed, @@ -138,7 +138,7 @@ class FullScreenAdsBloc extends Bloc { status: FullScreenAdsStatus.loadingRewardedAdSucceeded, ), ); - } catch (error, stackTrace) { + } on Object catch (error, stackTrace) { emit( state.copyWith( status: FullScreenAdsStatus.loadingRewardedAdFailed, @@ -184,7 +184,7 @@ class FullScreenAdsBloc extends Bloc { // Load the next interstitial ad. add(const LoadInterstitialAdRequested()); - } catch (error, stackTrace) { + } on Object catch (error, stackTrace) { emit( state.copyWith( status: FullScreenAdsStatus.showingInterstitialAdFailed, @@ -226,7 +226,7 @@ class FullScreenAdsBloc extends Bloc { // Load the next rewarded ad. add(const LoadRewardedAdRequested()); - } catch (error, stackTrace) { + } on Object catch (error, stackTrace) { emit( state.copyWith( status: FullScreenAdsStatus.showingRewardedAdFailed, diff --git a/flutter_news_example/lib/ads/widgets/sticky_ad.dart b/flutter_news_example/lib/ads/widgets/sticky_ad.dart index ccd3e14ab..412dace0b 100644 --- a/flutter_news_example/lib/ads/widgets/sticky_ad.dart +++ b/flutter_news_example/lib/ads/widgets/sticky_ad.dart @@ -76,7 +76,7 @@ class StickyAdContainer extends StatelessWidget { boxShadow: [ if (shadowEnabled) BoxShadow( - color: AppColors.black.withOpacity(0.3), + color: AppColors.black.withValues(alpha: 0.3), blurRadius: 3, spreadRadius: 1, offset: const Offset(0, 1), @@ -141,7 +141,7 @@ class StickyAdCloseIconBackground extends StatelessWidget { borderRadius: BorderRadius.circular(20), boxShadow: [ BoxShadow( - color: AppColors.black.withOpacity(0.3), + color: AppColors.black.withValues(alpha: 0.3), blurRadius: 3, spreadRadius: 1, offset: const Offset(0, 1), diff --git a/flutter_news_example/lib/analytics/bloc/analytics_bloc.dart b/flutter_news_example/lib/analytics/bloc/analytics_bloc.dart index 62d9148bb..3dde296d4 100644 --- a/flutter_news_example/lib/analytics/bloc/analytics_bloc.dart +++ b/flutter_news_example/lib/analytics/bloc/analytics_bloc.dart @@ -26,7 +26,7 @@ class AnalyticsBloc extends Bloc { try { await _analyticsRepository .setUserId(user != User.anonymous ? user.id : null); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { addError(error, stackTrace); } } @@ -37,7 +37,7 @@ class AnalyticsBloc extends Bloc { ) async { try { await _analyticsRepository.track(event.event); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { addError(error, stackTrace); } } diff --git a/flutter_news_example/lib/app/bloc/app_bloc.dart b/flutter_news_example/lib/app/bloc/app_bloc.dart index 5a63b760b..c06f08c96 100644 --- a/flutter_news_example/lib/app/bloc/app_bloc.dart +++ b/flutter_news_example/lib/app/bloc/app_bloc.dart @@ -85,7 +85,7 @@ class AppBloc extends Bloc { // account is deleted. unawaited(_notificationsRepository.toggleNotifications(enable: false)); await _userRepository.deleteAccount(); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { await _userRepository.logOut(); addError(error, stackTrace); } diff --git a/flutter_news_example/lib/article/bloc/article_bloc.dart b/flutter_news_example/lib/article/bloc/article_bloc.dart index a7b02dee0..6945dff01 100644 --- a/flutter_news_example/lib/article/bloc/article_bloc.dart +++ b/flutter_news_example/lib/article/bloc/article_bloc.dart @@ -103,7 +103,7 @@ class ArticleBloc extends HydratedBloc { isPremium: response.isPremium, ), ); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(state.copyWith(status: ArticleStatus.failure)); addError(error, stackTrace); } @@ -132,7 +132,7 @@ class ArticleBloc extends HydratedBloc { hasReachedArticleViewsLimit: hasReachedArticleViewsLimit, ), ); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(state.copyWith(status: ArticleStatus.rewardedAdWatchedFailure)); addError(error, stackTrace); } @@ -152,7 +152,7 @@ class ArticleBloc extends HydratedBloc { ) async { try { await _shareLauncher.share(text: event.uri.toString()); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(state.copyWith(status: ArticleStatus.shareFailure)); addError(error, stackTrace); } diff --git a/flutter_news_example/lib/article/widgets/article_trailing_content.dart b/flutter_news_example/lib/article/widgets/article_trailing_content.dart index 1886e43db..7791e5b45 100644 --- a/flutter_news_example/lib/article/widgets/article_trailing_content.dart +++ b/flutter_news_example/lib/article/widgets/article_trailing_content.dart @@ -95,8 +95,8 @@ class ArticleTrailingShadow extends StatelessWidget { decoration: BoxDecoration( gradient: LinearGradient( colors: [ - AppColors.white.withOpacity(0), - AppColors.white.withOpacity(1), + AppColors.white.withValues(alpha: 0), + AppColors.white.withValues(alpha: 1), ], begin: Alignment.topCenter, end: Alignment.bottomCenter, diff --git a/flutter_news_example/lib/categories/bloc/categories_bloc.dart b/flutter_news_example/lib/categories/bloc/categories_bloc.dart index 2c10c8ad2..b0fdead5d 100644 --- a/flutter_news_example/lib/categories/bloc/categories_bloc.dart +++ b/flutter_news_example/lib/categories/bloc/categories_bloc.dart @@ -34,7 +34,7 @@ class CategoriesBloc extends Bloc { selectedCategory: response.categories.firstOrNull, ), ); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(state.copyWith(status: CategoriesStatus.failure)); addError(error, stackTrace); } diff --git a/flutter_news_example/lib/categories/bloc/categories_state.dart b/flutter_news_example/lib/categories/bloc/categories_state.dart index c3e387c8b..39436c002 100644 --- a/flutter_news_example/lib/categories/bloc/categories_state.dart +++ b/flutter_news_example/lib/categories/bloc/categories_state.dart @@ -28,7 +28,7 @@ class CategoriesState extends Equatable { return categories ?.firstWhere((category) => category.id == categoryId) .name; - } catch (_) { + } on Object catch (_) { return null; } } diff --git a/flutter_news_example/lib/feed/bloc/feed_bloc.dart b/flutter_news_example/lib/feed/bloc/feed_bloc.dart index 74103a3b2..13bb86d1f 100644 --- a/flutter_news_example/lib/feed/bloc/feed_bloc.dart +++ b/flutter_news_example/lib/feed/bloc/feed_bloc.dart @@ -71,7 +71,7 @@ class FeedBloc extends HydratedBloc { ..addAll({categoryId: hasMoreNewsForCategory}), ), ); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(state.copyWith(status: FeedStatus.failure)); addError(error, stackTrace); } @@ -110,7 +110,7 @@ class FeedBloc extends HydratedBloc { ..addAll({category.id: hasMoreNewsForCategory}), ), ); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(state.copyWith(status: FeedStatus.failure)); addError(error, stackTrace); } diff --git a/flutter_news_example/lib/login/bloc/login_bloc.dart b/flutter_news_example/lib/login/bloc/login_bloc.dart index 522fa9ed5..086d80d0f 100644 --- a/flutter_news_example/lib/login/bloc/login_bloc.dart +++ b/flutter_news_example/lib/login/bloc/login_bloc.dart @@ -45,7 +45,7 @@ class LoginBloc extends Bloc { email: state.email.value, ); emit(state.copyWith(status: FormzSubmissionStatus.success)); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(state.copyWith(status: FormzSubmissionStatus.failure)); addError(error, stackTrace); } @@ -61,7 +61,7 @@ class LoginBloc extends Bloc { emit(state.copyWith(status: FormzSubmissionStatus.success)); } on LogInWithGoogleCanceled { emit(state.copyWith(status: FormzSubmissionStatus.canceled)); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(state.copyWith(status: FormzSubmissionStatus.failure)); addError(error, stackTrace); } @@ -75,7 +75,7 @@ class LoginBloc extends Bloc { try { await _userRepository.logInWithApple(); emit(state.copyWith(status: FormzSubmissionStatus.success)); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(state.copyWith(status: FormzSubmissionStatus.failure)); addError(error, stackTrace); } @@ -91,7 +91,7 @@ class LoginBloc extends Bloc { emit(state.copyWith(status: FormzSubmissionStatus.success)); } on LogInWithTwitterCanceled { emit(state.copyWith(status: FormzSubmissionStatus.canceled)); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(state.copyWith(status: FormzSubmissionStatus.failure)); addError(error, stackTrace); } @@ -107,7 +107,7 @@ class LoginBloc extends Bloc { emit(state.copyWith(status: FormzSubmissionStatus.success)); } on LogInWithFacebookCanceled { emit(state.copyWith(status: FormzSubmissionStatus.canceled)); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(state.copyWith(status: FormzSubmissionStatus.failure)); addError(error, stackTrace); } diff --git a/flutter_news_example/lib/login/bloc/login_with_email_link_bloc.dart b/flutter_news_example/lib/login/bloc/login_with_email_link_bloc.dart index d1de79d36..ad2eadb52 100644 --- a/flutter_news_example/lib/login/bloc/login_with_email_link_bloc.dart +++ b/flutter_news_example/lib/login/bloc/login_with_email_link_bloc.dart @@ -67,7 +67,7 @@ class LoginWithEmailLinkBloc ); emit(state.copyWith(status: LoginWithEmailLinkStatus.success)); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(state.copyWith(status: LoginWithEmailLinkStatus.failure)); addError(error, stackTrace); } diff --git a/flutter_news_example/lib/main/bootstrap/bootstrap.dart b/flutter_news_example/lib/main/bootstrap/bootstrap.dart index e03edea39..546d169a5 100644 --- a/flutter_news_example/lib/main/bootstrap/bootstrap.dart +++ b/flutter_news_example/lib/main/bootstrap/bootstrap.dart @@ -37,8 +37,9 @@ Future bootstrap(AppBuilder builder) async { analyticsRepository: analyticsRepository, ); Bloc.observer = blocObserver; + final storageDirectory = await getApplicationSupportDirectory(); HydratedBloc.storage = await HydratedStorage.build( - storageDirectory: await getApplicationSupportDirectory(), + storageDirectory: HydratedStorageDirectory(storageDirectory.path), ); if (kDebugMode) { diff --git a/flutter_news_example/lib/navigation/widgets/nav_drawer_sections.dart b/flutter_news_example/lib/navigation/widgets/nav_drawer_sections.dart index b6600bbee..df5cda1a8 100644 --- a/flutter_news_example/lib/navigation/widgets/nav_drawer_sections.dart +++ b/flutter_news_example/lib/navigation/widgets/nav_drawer_sections.dart @@ -100,7 +100,7 @@ class NavDrawerSectionItem extends StatelessWidget { ), horizontalTitleGap: AppSpacing.md, minLeadingWidth: AppSpacing.xlg, - selectedTileColor: AppColors.white.withOpacity(0.08), + selectedTileColor: AppColors.white.withValues(alpha: 0.08), selected: selected, onTap: onTap, title: Text( diff --git a/flutter_news_example/lib/newsletter/bloc/newsletter_bloc.dart b/flutter_news_example/lib/newsletter/bloc/newsletter_bloc.dart index 7d891a168..c4a300083 100644 --- a/flutter_news_example/lib/newsletter/bloc/newsletter_bloc.dart +++ b/flutter_news_example/lib/newsletter/bloc/newsletter_bloc.dart @@ -27,7 +27,7 @@ class NewsletterBloc extends Bloc { try { await newsRepository.subscribeToNewsletter(email: state.email.value); emit(state.copyWith(status: NewsletterStatus.success)); - } catch (error, stackTrace) { + } on Object catch (error, stackTrace) { emit(state.copyWith(status: NewsletterStatus.failure)); addError(error, stackTrace); } diff --git a/flutter_news_example/lib/notification_preferences/bloc/notification_preferences_bloc.dart b/flutter_news_example/lib/notification_preferences/bloc/notification_preferences_bloc.dart index 2b36e7a3e..0605ce17d 100644 --- a/flutter_news_example/lib/notification_preferences/bloc/notification_preferences_bloc.dart +++ b/flutter_news_example/lib/notification_preferences/bloc/notification_preferences_bloc.dart @@ -51,7 +51,7 @@ class NotificationPreferencesBloc selectedCategories: updatedCategories, ), ); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit( state.copyWith(status: NotificationPreferencesStatus.failure), ); @@ -86,7 +86,7 @@ class NotificationPreferencesBloc categories: categoriesResponse.categories.toSet(), ), ); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit( state.copyWith(status: NotificationPreferencesStatus.failure), ); diff --git a/flutter_news_example/lib/onboarding/bloc/onboarding_bloc.dart b/flutter_news_example/lib/onboarding/bloc/onboarding_bloc.dart index a6d6fb37c..b682f9cc8 100644 --- a/flutter_news_example/lib/onboarding/bloc/onboarding_bloc.dart +++ b/flutter_news_example/lib/onboarding/bloc/onboarding_bloc.dart @@ -39,7 +39,7 @@ class OnboardingBloc extends Bloc { ? const EnablingAdTrackingSucceeded() : const EnablingAdTrackingFailed(), ); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(const EnablingAdTrackingFailed()); addError(error, stackTrace); } @@ -53,7 +53,7 @@ class OnboardingBloc extends Bloc { emit(const EnablingNotifications()); await _notificationsRepository.toggleNotifications(enable: true); emit(const EnablingNotificationsSucceeded()); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit(const EnablingNotificationsFailed()); addError(error, stackTrace); } diff --git a/flutter_news_example/lib/search/bloc/search_bloc.dart b/flutter_news_example/lib/search/bloc/search_bloc.dart index 3b845e598..f0ddf4010 100644 --- a/flutter_news_example/lib/search/bloc/search_bloc.dart +++ b/flutter_news_example/lib/search/bloc/search_bloc.dart @@ -61,7 +61,7 @@ class SearchBloc extends Bloc { status: SearchStatus.populated, ), ); - } catch (error, stackTrace) { + } on Object catch (error, stackTrace) { emit(state.copyWith(status: SearchStatus.failure)); addError(error, stackTrace); } @@ -88,7 +88,7 @@ class SearchBloc extends Bloc { status: SearchStatus.populated, ), ); - } catch (error, stackTrace) { + } on Object catch (error, stackTrace) { emit(state.copyWith(status: SearchStatus.failure)); addError(error, stackTrace); } diff --git a/flutter_news_example/lib/subscriptions/dialog/bloc/subscriptions_bloc.dart b/flutter_news_example/lib/subscriptions/dialog/bloc/subscriptions_bloc.dart index 3384c7e22..766db3742 100644 --- a/flutter_news_example/lib/subscriptions/dialog/bloc/subscriptions_bloc.dart +++ b/flutter_news_example/lib/subscriptions/dialog/bloc/subscriptions_bloc.dart @@ -41,7 +41,7 @@ class SubscriptionsBloc extends Bloc { try { final subscriptions = await _inAppPurchaseRepository.fetchSubscriptions(); emit(state.copyWith(subscriptions: subscriptions)); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { addError(error, stackTrace); } } @@ -53,7 +53,7 @@ class SubscriptionsBloc extends Bloc { try { emit(state.copyWith(purchaseStatus: PurchaseStatus.pending)); await _inAppPurchaseRepository.purchase(subscription: event.subscription); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { addError(error, stackTrace); } } diff --git a/flutter_news_example/lib/user_profile/bloc/user_profile_bloc.dart b/flutter_news_example/lib/user_profile/bloc/user_profile_bloc.dart index 71306f319..7af10dddb 100644 --- a/flutter_news_example/lib/user_profile/bloc/user_profile_bloc.dart +++ b/flutter_news_example/lib/user_profile/bloc/user_profile_bloc.dart @@ -58,7 +58,7 @@ class UserProfileBloc extends Bloc { notificationsEnabled: notificationsEnabled, ), ); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit( state.copyWith( status: UserProfileStatus.fetchingNotificationsEnabledFailed, @@ -92,7 +92,7 @@ class UserProfileBloc extends Bloc { status: UserProfileStatus.togglingNotificationsSucceeded, ), ); - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { emit( state.copyWith( status: UserProfileStatus.togglingNotificationsFailed, diff --git a/flutter_news_example/packages/ads_consent_client/analysis_options.yaml b/flutter_news_example/packages/ads_consent_client/analysis_options.yaml index bb7209144..7eed40a1b 100644 --- a/flutter_news_example/packages/ads_consent_client/analysis_options.yaml +++ b/flutter_news_example/packages/ads_consent_client/analysis_options.yaml @@ -1 +1,4 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml +analyzer: + errors: + document_ignores: ignore diff --git a/flutter_news_example/packages/ads_consent_client/pubspec.yaml b/flutter_news_example/packages/ads_consent_client/pubspec.yaml index cdaaa86a2..3e99ea2bb 100644 --- a/flutter_news_example/packages/ads_consent_client/pubspec.yaml +++ b/flutter_news_example/packages/ads_consent_client/pubspec.yaml @@ -4,15 +4,15 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: flutter: sdk: flutter - google_mobile_ads: ^5.0.0 + google_mobile_ads: ^5.3.1 dev_dependencies: flutter_test: sdk: flutter mocktail: ^1.0.2 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/analytics_repository/analysis_options.yaml b/flutter_news_example/packages/analytics_repository/analysis_options.yaml index bb7209144..19e607c5e 100644 --- a/flutter_news_example/packages/analytics_repository/analysis_options.yaml +++ b/flutter_news_example/packages/analytics_repository/analysis_options.yaml @@ -1 +1,4 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/analytics_repository/pubspec.yaml b/flutter_news_example/packages/analytics_repository/pubspec.yaml index fd1d2851f..b17822e73 100644 --- a/flutter_news_example/packages/analytics_repository/pubspec.yaml +++ b/flutter_news_example/packages/analytics_repository/pubspec.yaml @@ -3,7 +3,7 @@ description: Package which manages the analytics domain. publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: equatable: ^2.0.0 @@ -15,4 +15,4 @@ dev_dependencies: flutter_test: sdk: flutter mocktail: ^1.0.2 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/app_ui/analysis_options.yaml b/flutter_news_example/packages/app_ui/analysis_options.yaml index 1a86ad22e..70b193068 100644 --- a/flutter_news_example/packages/app_ui/analysis_options.yaml +++ b/flutter_news_example/packages/app_ui/analysis_options.yaml @@ -1,5 +1,7 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml analyzer: + errors: + document_ignores: ignore exclude: - lib/src/generated/** diff --git a/flutter_news_example/packages/app_ui/gallery/analysis_options.yaml b/flutter_news_example/packages/app_ui/gallery/analysis_options.yaml index 3a6b5d4c4..6b5876748 100644 --- a/flutter_news_example/packages/app_ui/gallery/analysis_options.yaml +++ b/flutter_news_example/packages/app_ui/gallery/analysis_options.yaml @@ -1,4 +1,7 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml +analyzer: + errors: + document_ignores: ignore linter: rules: public_member_api_docs: false diff --git a/flutter_news_example/packages/app_ui/gallery/lib/colors/colors_page.dart b/flutter_news_example/packages/app_ui/gallery/lib/colors/colors_page.dart index 8afed9e49..601429869 100644 --- a/flutter_news_example/packages/app_ui/gallery/lib/colors/colors_page.dart +++ b/flutter_news_example/packages/app_ui/gallery/lib/colors/colors_page.dart @@ -162,10 +162,11 @@ class _ColorSquare extends StatelessWidget { } String get hexCode { - if (color.value.toRadixString(16).length <= 2) { + if (color.toARGB32().toRadixString(16).length <= 2) { return '--'; } else { - return '#${color.value.toRadixString(16).substring(2).toUpperCase()}'; + final c = color.toARGB32().toRadixString(16).substring(2).toUpperCase(); + return '#$c'; } } @@ -194,3 +195,17 @@ class _ColorSquare extends StatelessWidget { ); } } + +extension on Color { + /// Returns true if the color is considered dark. + int toARGB32() { + return _floatToInt8(a) << 24 | + _floatToInt8(r) << 16 | + _floatToInt8(g) << 8 | + _floatToInt8(b) << 0; + } + + int _floatToInt8(double x) { + return (x * 255.0).round() & 0xff; + } +} diff --git a/flutter_news_example/packages/app_ui/gallery/pubspec.yaml b/flutter_news_example/packages/app_ui/gallery/pubspec.yaml index 360f02cdc..7da813024 100644 --- a/flutter_news_example/packages/app_ui/gallery/pubspec.yaml +++ b/flutter_news_example/packages/app_ui/gallery/pubspec.yaml @@ -4,7 +4,7 @@ version: 0.0.1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: app_ui: @@ -13,7 +13,7 @@ dependencies: sdk: flutter dev_dependencies: - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 flutter: uses-material-design: true diff --git a/flutter_news_example/packages/app_ui/lib/src/theme/app_theme.dart b/flutter_news_example/packages/app_ui/lib/src/theme/app_theme.dart index 9d440f0ee..a6816c22f 100644 --- a/flutter_news_example/packages/app_ui/lib/src/theme/app_theme.dart +++ b/flutter_news_example/packages/app_ui/lib/src/theme/app_theme.dart @@ -271,7 +271,7 @@ BottomNavigationBarThemeData get _bottomAppBarTheme { return BottomNavigationBarThemeData( backgroundColor: AppColors.darkBackground, selectedItemColor: AppColors.white, - unselectedItemColor: AppColors.white.withOpacity(0.74), + unselectedItemColor: AppColors.white.withValues(alpha: 0.74), ); } diff --git a/flutter_news_example/packages/app_ui/pubspec.yaml b/flutter_news_example/packages/app_ui/pubspec.yaml index 02fe08072..1626df199 100644 --- a/flutter_news_example/packages/app_ui/pubspec.yaml +++ b/flutter_news_example/packages/app_ui/pubspec.yaml @@ -3,21 +3,21 @@ description: App UI Component Library publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: flutter: sdk: flutter - flutter_svg: ^2.0.5 + flutter_svg: ^2.2.0 intl: ^0.20.0 mockingjay: ^0.6.0 dev_dependencies: - build_runner: ^2.0.3 + build_runner: ^2.4.15 flutter_gen_runner: ^5.2.0 flutter_test: sdk: flutter - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 flutter: uses-material-design: true diff --git a/flutter_news_example/packages/app_ui/test/src/widgets/app_button_test.dart b/flutter_news_example/packages/app_ui/test/src/widgets/app_button_test.dart index df502b930..19b8d2eae 100644 --- a/flutter_news_example/packages/app_ui/test/src/widgets/app_button_test.dart +++ b/flutter_news_example/packages/app_ui/test/src/widgets/app_button_test.dart @@ -604,7 +604,7 @@ void main() { }); testWidgets( - 'changes background color to AppColors.black.withOpacity(.12) ' + 'changes background color to black with 0.12 alpha ' 'when `onPressed` is null', (tester) async { final buttonText = Text('buttonText'); @@ -618,10 +618,12 @@ void main() { final finder = find.byType(ElevatedButton); final widget = tester.widget(finder) as ElevatedButton; - expect( - widget.style?.backgroundColor?.resolve({}), - AppColors.black.withOpacity(.12), - ); + final actual = widget.style?.backgroundColor?.resolve({}); + + expect(actual?.r, 0.0); + expect(actual?.g, 0.0); + expect(actual?.b, 0.0); + expect(actual?.a.toStringAsFixed(2), '0.12'); }); }); } diff --git a/flutter_news_example/packages/article_repository/analysis_options.yaml b/flutter_news_example/packages/article_repository/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/article_repository/analysis_options.yaml +++ b/flutter_news_example/packages/article_repository/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/article_repository/pubspec.yaml b/flutter_news_example/packages/article_repository/pubspec.yaml index ee8fc3713..7bb1aed59 100644 --- a/flutter_news_example/packages/article_repository/pubspec.yaml +++ b/flutter_news_example/packages/article_repository/pubspec.yaml @@ -4,10 +4,10 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: - clock: ^1.1.0 + clock: ^1.1.1 equatable: ^2.0.3 flutter_news_example_api: path: ../../api @@ -18,4 +18,4 @@ dev_dependencies: coverage: ^1.3.2 mocktail: ^1.0.2 test: ^1.21.4 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/authentication_client/authentication_client/analysis_options.yaml b/flutter_news_example/packages/authentication_client/authentication_client/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/authentication_client/authentication_client/analysis_options.yaml +++ b/flutter_news_example/packages/authentication_client/authentication_client/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/authentication_client/authentication_client/pubspec.yaml b/flutter_news_example/packages/authentication_client/authentication_client/pubspec.yaml index a23403f5d..8398b808d 100644 --- a/flutter_news_example/packages/authentication_client/authentication_client/pubspec.yaml +++ b/flutter_news_example/packages/authentication_client/authentication_client/pubspec.yaml @@ -3,11 +3,11 @@ description: An Authentication Client Interface publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: equatable: ^2.0.3 dev_dependencies: test: ^1.21.4 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/authentication_client/firebase_authentication_client/analysis_options.yaml b/flutter_news_example/packages/authentication_client/firebase_authentication_client/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/authentication_client/firebase_authentication_client/analysis_options.yaml +++ b/flutter_news_example/packages/authentication_client/firebase_authentication_client/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/authentication_client/firebase_authentication_client/pubspec.yaml b/flutter_news_example/packages/authentication_client/firebase_authentication_client/pubspec.yaml index 4d192b086..c393664cf 100644 --- a/flutter_news_example/packages/authentication_client/firebase_authentication_client/pubspec.yaml +++ b/flutter_news_example/packages/authentication_client/firebase_authentication_client/pubspec.yaml @@ -4,14 +4,14 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: authentication_client: path: ../authentication_client firebase_auth: ^5.3.4 - firebase_auth_platform_interface: ^7.4.10 - firebase_core: ^3.8.1 + firebase_auth_platform_interface: ^7.7.1 + firebase_core: ^3.15.0 firebase_core_platform_interface: ^5.3.1 flutter: sdk: flutter @@ -27,4 +27,4 @@ dev_dependencies: flutter_test: sdk: flutter mocktail: ^1.0.2 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/authentication_client/token_storage/analysis_options.yaml b/flutter_news_example/packages/authentication_client/token_storage/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/authentication_client/token_storage/analysis_options.yaml +++ b/flutter_news_example/packages/authentication_client/token_storage/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/authentication_client/token_storage/pubspec.yaml b/flutter_news_example/packages/authentication_client/token_storage/pubspec.yaml index 01dc994af..8c94a6327 100644 --- a/flutter_news_example/packages/authentication_client/token_storage/pubspec.yaml +++ b/flutter_news_example/packages/authentication_client/token_storage/pubspec.yaml @@ -4,10 +4,10 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dev_dependencies: coverage: ^1.3.2 mocktail: ^1.0.2 test: ^1.21.4 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/deep_link_client/deep_link_client/analysis_options.yaml b/flutter_news_example/packages/deep_link_client/deep_link_client/analysis_options.yaml index 799268d3e..08f89e709 100644 --- a/flutter_news_example/packages/deep_link_client/deep_link_client/analysis_options.yaml +++ b/flutter_news_example/packages/deep_link_client/deep_link_client/analysis_options.yaml @@ -1 +1,5 @@ include: package:very_good_analysis/analysis_options.5.1.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/deep_link_client/deep_link_client/pubspec.yaml b/flutter_news_example/packages/deep_link_client/deep_link_client/pubspec.yaml index 5fc8421cc..78658e137 100644 --- a/flutter_news_example/packages/deep_link_client/deep_link_client/pubspec.yaml +++ b/flutter_news_example/packages/deep_link_client/deep_link_client/pubspec.yaml @@ -3,7 +3,7 @@ description: A deep link client interface publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: equatable: ^2.0.5 @@ -12,4 +12,4 @@ dependencies: dev_dependencies: mocktail: ^1.0.4 test: ^1.25.8 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/deep_link_client/firebase_deep_link_client/analysis_options.yaml b/flutter_news_example/packages/deep_link_client/firebase_deep_link_client/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/deep_link_client/firebase_deep_link_client/analysis_options.yaml +++ b/flutter_news_example/packages/deep_link_client/firebase_deep_link_client/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/deep_link_client/firebase_deep_link_client/pubspec.yaml b/flutter_news_example/packages/deep_link_client/firebase_deep_link_client/pubspec.yaml index 7f6d9e6af..8becfaaf2 100644 --- a/flutter_news_example/packages/deep_link_client/firebase_deep_link_client/pubspec.yaml +++ b/flutter_news_example/packages/deep_link_client/firebase_deep_link_client/pubspec.yaml @@ -3,14 +3,14 @@ description: A Dart package which provides a deep link stream publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: deep_link_client: path: ../deep_link_client equatable: ^2.0.3 - firebase_core: ^3.8.1 - firebase_dynamic_links: ^6.0.10 + firebase_core: ^3.15.0 + firebase_dynamic_links: ^6.1.8 plugin_platform_interface: ^2.1.3 dev_dependencies: @@ -18,4 +18,4 @@ dev_dependencies: flutter_test: sdk: flutter mocktail: ^1.0.2 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/email_launcher/analysis_options.yaml b/flutter_news_example/packages/email_launcher/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/email_launcher/analysis_options.yaml +++ b/flutter_news_example/packages/email_launcher/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/email_launcher/pubspec.yaml b/flutter_news_example/packages/email_launcher/pubspec.yaml index ee7580306..f1b17ebe2 100644 --- a/flutter_news_example/packages/email_launcher/pubspec.yaml +++ b/flutter_news_example/packages/email_launcher/pubspec.yaml @@ -4,19 +4,19 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: android_intent_plus: ^5.0.1 flutter: sdk: flutter - platform: ^3.0.2 + platform: ^3.1.6 plugin_platform_interface: ^2.1.3 - url_launcher: ^6.1.5 + url_launcher: ^6.3.2 url_launcher_platform_interface: ^2.1.1 dev_dependencies: flutter_test: sdk: flutter mocktail: ^1.0.2 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/form_inputs/analysis_options.yaml b/flutter_news_example/packages/form_inputs/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/form_inputs/analysis_options.yaml +++ b/flutter_news_example/packages/form_inputs/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/form_inputs/pubspec.yaml b/flutter_news_example/packages/form_inputs/pubspec.yaml index df2557e04..34d5d2b6a 100644 --- a/flutter_news_example/packages/form_inputs/pubspec.yaml +++ b/flutter_news_example/packages/form_inputs/pubspec.yaml @@ -3,11 +3,11 @@ description: A Dart package which exposes reusable form inputs and validation ru publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: formz: ^0.8.0 dev_dependencies: test: ^1.21.4 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/in_app_purchase_repository/analysis_options.yaml b/flutter_news_example/packages/in_app_purchase_repository/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/in_app_purchase_repository/analysis_options.yaml +++ b/flutter_news_example/packages/in_app_purchase_repository/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/in_app_purchase_repository/lib/src/in_app_purchase_repository.dart b/flutter_news_example/packages/in_app_purchase_repository/lib/src/in_app_purchase_repository.dart index 55ce06577..612de708d 100644 --- a/flutter_news_example/packages/in_app_purchase_repository/lib/src/in_app_purchase_repository.dart +++ b/flutter_news_example/packages/in_app_purchase_repository/lib/src/in_app_purchase_repository.dart @@ -246,7 +246,7 @@ class InAppPurchaseRepository { PurchaseDelivered(subscription: purchasedProduct), ); } - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { _purchaseUpdateStreamController.addError( PurchaseFailed( failure: DeliverInAppPurchaseFailure( @@ -271,7 +271,7 @@ class InAppPurchaseRepository { ), ); } - } catch (error, stackTrace) { + } on Exception catch (error, stackTrace) { _purchaseUpdateStreamController.addError( PurchaseFailed( failure: CompleteInAppPurchaseFailure( diff --git a/flutter_news_example/packages/in_app_purchase_repository/pubspec.yaml b/flutter_news_example/packages/in_app_purchase_repository/pubspec.yaml index 9e88282b9..61d3d4267 100644 --- a/flutter_news_example/packages/in_app_purchase_repository/pubspec.yaml +++ b/flutter_news_example/packages/in_app_purchase_repository/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: authentication_client: @@ -22,4 +22,4 @@ dev_dependencies: sdk: flutter mocktail: ^1.0.2 test: ^1.21.4 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/news_blocks_ui/analysis_options.yaml b/flutter_news_example/packages/news_blocks_ui/analysis_options.yaml index 1a86ad22e..70b193068 100644 --- a/flutter_news_example/packages/news_blocks_ui/analysis_options.yaml +++ b/flutter_news_example/packages/news_blocks_ui/analysis_options.yaml @@ -1,5 +1,7 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml analyzer: + errors: + document_ignores: ignore exclude: - lib/src/generated/** diff --git a/flutter_news_example/packages/news_blocks_ui/lib/src/post_large/post_large_image.dart b/flutter_news_example/packages/news_blocks_ui/lib/src/post_large/post_large_image.dart index fc951a884..be981c5a1 100644 --- a/flutter_news_example/packages/news_blocks_ui/lib/src/post_large/post_large_image.dart +++ b/flutter_news_example/packages/news_blocks_ui/lib/src/post_large/post_large_image.dart @@ -30,7 +30,7 @@ class PostLargeImage extends StatelessWidget { if (isContentOverlaid) OverlaidImage( imageUrl: imageUrl, - gradientColor: AppColors.black.withOpacity(0.7), + gradientColor: AppColors.black.withValues(alpha: 0.7), ) else InlineImage(imageUrl: imageUrl), diff --git a/flutter_news_example/packages/news_blocks_ui/lib/src/post_medium/post_medium_overlaid_layout.dart b/flutter_news_example/packages/news_blocks_ui/lib/src/post_medium/post_medium_overlaid_layout.dart index 87452402f..c9506307f 100644 --- a/flutter_news_example/packages/news_blocks_ui/lib/src/post_medium/post_medium_overlaid_layout.dart +++ b/flutter_news_example/packages/news_blocks_ui/lib/src/post_medium/post_medium_overlaid_layout.dart @@ -27,7 +27,7 @@ class PostMediumOverlaidLayout extends StatelessWidget { children: [ OverlaidImage( imageUrl: imageUrl, - gradientColor: AppColors.black.withOpacity(0.7), + gradientColor: AppColors.black.withValues(alpha: 0.7), ), Padding( padding: const EdgeInsets.all(AppSpacing.sm), diff --git a/flutter_news_example/packages/news_blocks_ui/lib/src/widgets/banner_ad_content.dart b/flutter_news_example/packages/news_blocks_ui/lib/src/widgets/banner_ad_content.dart index ca9ad46dc..2106d3ae3 100644 --- a/flutter_news_example/packages/news_blocks_ui/lib/src/widgets/banner_ad_content.dart +++ b/flutter_news_example/packages/news_blocks_ui/lib/src/widgets/banner_ad_content.dart @@ -207,7 +207,7 @@ class _BannerAdContentState extends State ); _onAdLoaded(await adCompleter.future); - } catch (error, stackTrace) { + } on Object catch (error, stackTrace) { _reportError(BannerAdFailedToLoadException(error), stackTrace); if (retry < widget.adsRetryPolicy.maxRetryCount) { diff --git a/flutter_news_example/packages/news_blocks_ui/lib/src/widgets/lock_icon.dart b/flutter_news_example/packages/news_blocks_ui/lib/src/widgets/lock_icon.dart index a007545ce..31360b86e 100644 --- a/flutter_news_example/packages/news_blocks_ui/lib/src/widgets/lock_icon.dart +++ b/flutter_news_example/packages/news_blocks_ui/lib/src/widgets/lock_icon.dart @@ -20,12 +20,12 @@ class LockIcon extends StatelessWidget { color: AppColors.white, shadows: [ Shadow( - color: Colors.black.withOpacity(0.3), + color: Colors.black.withValues(alpha: 0.3), offset: const Offset(0, 1), blurRadius: 2, ), Shadow( - color: Colors.black.withOpacity(0.15), + color: Colors.black.withValues(alpha: 0.15), offset: const Offset(0, 1), blurRadius: 3, ), diff --git a/flutter_news_example/packages/news_blocks_ui/lib/src/widgets/overlaid_image.dart b/flutter_news_example/packages/news_blocks_ui/lib/src/widgets/overlaid_image.dart index 298f73ca0..4b95fa3b2 100644 --- a/flutter_news_example/packages/news_blocks_ui/lib/src/widgets/overlaid_image.dart +++ b/flutter_news_example/packages/news_blocks_ui/lib/src/widgets/overlaid_image.dart @@ -42,7 +42,7 @@ class OverlaidImage extends StatelessWidget { end: Alignment.bottomCenter, colors: [ AppColors.transparent, - gradientColor.withOpacity(0.7), + gradientColor.withValues(alpha: 0.7), ], ), ), diff --git a/flutter_news_example/packages/news_blocks_ui/pubspec.yaml b/flutter_news_example/packages/news_blocks_ui/pubspec.yaml index 8f6c85fed..61e8c7b66 100644 --- a/flutter_news_example/packages/news_blocks_ui/pubspec.yaml +++ b/flutter_news_example/packages/news_blocks_ui/pubspec.yaml @@ -13,28 +13,28 @@ dependencies: flutter: sdk: flutter flutter_html: 3.0.0-beta.2 - google_mobile_ads: ^5.0.0 + google_mobile_ads: ^5.3.1 news_blocks: path: ../../api/packages/news_blocks path_provider_platform_interface: ^2.0.5 - platform: ^3.1.0 + platform: ^3.1.6 plugin_platform_interface: ^2.1.3 - url_launcher: ^6.1.7 + url_launcher: ^6.3.2 url_launcher_platform_interface: ^2.1.1 video_player: ^2.7.0 - video_player_platform_interface: ^6.0.1 + video_player_platform_interface: ^6.4.0 dev_dependencies: - build_runner: ^2.0.3 + build_runner: ^2.4.15 fake_async: ^1.3.0 flutter_gen_runner: ^5.2.0 flutter_test: sdk: flutter html: ^0.15.4 mocktail: ^1.0.2 - mocktail_image_network: ^1.0.0 + mocktail_image_network: ^1.2.0 sqflite_common_ffi: ^2.3.3 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 flutter: uses-material-design: true diff --git a/flutter_news_example/packages/news_blocks_ui/test/src/widgets/inline_video_test.dart b/flutter_news_example/packages/news_blocks_ui/test/src/widgets/inline_video_test.dart index c293ed6b1..48955f3e3 100644 --- a/flutter_news_example/packages/news_blocks_ui/test/src/widgets/inline_video_test.dart +++ b/flutter_news_example/packages/news_blocks_ui/test/src/widgets/inline_video_test.dart @@ -112,9 +112,7 @@ void main() { ), ); - controller - ..textureId = 123 - ..value = controller.value.copyWith(isPlaying: true); + controller.value = controller.value.copyWith(isPlaying: true); await tester.pump(); @@ -157,9 +155,6 @@ class FakeVideoPlayerController extends ValueNotifier super.dispose(); } - @override - int textureId = VideoPlayerController.kUninitializedTextureId; - @override String get dataSource => ''; @@ -212,6 +207,12 @@ class FakeVideoPlayerController extends ValueNotifier Future setClosedCaptionFile( Future? closedCaptionFile, ) async {} + + @override + int get playerId => 1; + + @override + VideoViewType get viewType => VideoViewType.textureView; } Future _loadClosedCaption() async => diff --git a/flutter_news_example/packages/news_repository/analysis_options.yaml b/flutter_news_example/packages/news_repository/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/news_repository/analysis_options.yaml +++ b/flutter_news_example/packages/news_repository/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/news_repository/pubspec.yaml b/flutter_news_example/packages/news_repository/pubspec.yaml index aeb6de2ae..2ba5c8565 100644 --- a/flutter_news_example/packages/news_repository/pubspec.yaml +++ b/flutter_news_example/packages/news_repository/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: equatable: ^2.0.3 @@ -15,4 +15,4 @@ dev_dependencies: coverage: ^1.2.0 mocktail: ^1.0.2 test: ^1.21.4 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/notifications_client/firebase_notifications_client/analysis_options.yaml b/flutter_news_example/packages/notifications_client/firebase_notifications_client/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/notifications_client/firebase_notifications_client/analysis_options.yaml +++ b/flutter_news_example/packages/notifications_client/firebase_notifications_client/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/notifications_client/firebase_notifications_client/pubspec.yaml b/flutter_news_example/packages/notifications_client/firebase_notifications_client/pubspec.yaml index 6796dda53..f8882fbf6 100644 --- a/flutter_news_example/packages/notifications_client/firebase_notifications_client/pubspec.yaml +++ b/flutter_news_example/packages/notifications_client/firebase_notifications_client/pubspec.yaml @@ -4,10 +4,10 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: - firebase_messaging: ^15.1.6 + firebase_messaging: ^15.2.8 flutter: sdk: flutter notifications_client: @@ -17,4 +17,4 @@ dev_dependencies: flutter_test: sdk: flutter mocktail: ^1.0.2 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/notifications_client/notifications_client/analysis_options.yaml b/flutter_news_example/packages/notifications_client/notifications_client/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/notifications_client/notifications_client/analysis_options.yaml +++ b/flutter_news_example/packages/notifications_client/notifications_client/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/notifications_client/notifications_client/pubspec.yaml b/flutter_news_example/packages/notifications_client/notifications_client/pubspec.yaml index 5e882d5fa..cfbd97311 100644 --- a/flutter_news_example/packages/notifications_client/notifications_client/pubspec.yaml +++ b/flutter_news_example/packages/notifications_client/notifications_client/pubspec.yaml @@ -4,8 +4,8 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dev_dependencies: test: ^1.21.4 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/notifications_client/one_signal_notifications_client/analysis_options.yaml b/flutter_news_example/packages/notifications_client/one_signal_notifications_client/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/notifications_client/one_signal_notifications_client/analysis_options.yaml +++ b/flutter_news_example/packages/notifications_client/one_signal_notifications_client/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/notifications_client/one_signal_notifications_client/pubspec.yaml b/flutter_news_example/packages/notifications_client/one_signal_notifications_client/pubspec.yaml index 818168206..61a8ac2ae 100644 --- a/flutter_news_example/packages/notifications_client/one_signal_notifications_client/pubspec.yaml +++ b/flutter_news_example/packages/notifications_client/one_signal_notifications_client/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: flutter: @@ -17,4 +17,4 @@ dev_dependencies: flutter_test: sdk: flutter mocktail: ^1.0.2 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/notifications_repository/analysis_options.yaml b/flutter_news_example/packages/notifications_repository/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/notifications_repository/analysis_options.yaml +++ b/flutter_news_example/packages/notifications_repository/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/notifications_repository/pubspec.yaml b/flutter_news_example/packages/notifications_repository/pubspec.yaml index ea1cc0218..1ad17cb2c 100644 --- a/flutter_news_example/packages/notifications_repository/pubspec.yaml +++ b/flutter_news_example/packages/notifications_repository/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: equatable: ^2.0.3 @@ -24,4 +24,4 @@ dev_dependencies: flutter_test: sdk: flutter mocktail: ^1.0.2 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/package_info_client/analysis_options.yaml b/flutter_news_example/packages/package_info_client/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/package_info_client/analysis_options.yaml +++ b/flutter_news_example/packages/package_info_client/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/package_info_client/pubspec.yaml b/flutter_news_example/packages/package_info_client/pubspec.yaml index e9ca38d53..8ea4ba0db 100644 --- a/flutter_news_example/packages/package_info_client/pubspec.yaml +++ b/flutter_news_example/packages/package_info_client/pubspec.yaml @@ -4,11 +4,11 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: equatable: ^2.0.3 dev_dependencies: test: ^1.21.4 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/permission_client/analysis_options.yaml b/flutter_news_example/packages/permission_client/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/permission_client/analysis_options.yaml +++ b/flutter_news_example/packages/permission_client/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/permission_client/pubspec.yaml b/flutter_news_example/packages/permission_client/pubspec.yaml index 4e8209266..7335b75ca 100644 --- a/flutter_news_example/packages/permission_client/pubspec.yaml +++ b/flutter_news_example/packages/permission_client/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: flutter: @@ -15,4 +15,4 @@ dev_dependencies: flutter_test: sdk: flutter mocktail: ^1.0.2 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/purchase_client/analysis_options.yaml b/flutter_news_example/packages/purchase_client/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/purchase_client/analysis_options.yaml +++ b/flutter_news_example/packages/purchase_client/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/purchase_client/pubspec.yaml b/flutter_news_example/packages/purchase_client/pubspec.yaml index 2cce28df8..137e2cab3 100644 --- a/flutter_news_example/packages/purchase_client/pubspec.yaml +++ b/flutter_news_example/packages/purchase_client/pubspec.yaml @@ -4,10 +4,10 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: - clock: ^1.1.0 + clock: ^1.1.1 equatable: ^2.0.3 flutter: sdk: flutter @@ -17,4 +17,4 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/share_launcher/analysis_options.yaml b/flutter_news_example/packages/share_launcher/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/share_launcher/analysis_options.yaml +++ b/flutter_news_example/packages/share_launcher/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/share_launcher/pubspec.yaml b/flutter_news_example/packages/share_launcher/pubspec.yaml index 8fbc2249f..ce66664ca 100644 --- a/flutter_news_example/packages/share_launcher/pubspec.yaml +++ b/flutter_news_example/packages/share_launcher/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0+1 publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: equatable: ^2.0.3 @@ -19,4 +19,4 @@ dev_dependencies: mocktail: ^1.0.2 plugin_platform_interface: ^2.1.2 url_launcher_platform_interface: ^2.0.5 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/storage/persistent_storage/analysis_options.yaml b/flutter_news_example/packages/storage/persistent_storage/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/storage/persistent_storage/analysis_options.yaml +++ b/flutter_news_example/packages/storage/persistent_storage/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/storage/persistent_storage/pubspec.yaml b/flutter_news_example/packages/storage/persistent_storage/pubspec.yaml index 2ad65c943..07b960d13 100644 --- a/flutter_news_example/packages/storage/persistent_storage/pubspec.yaml +++ b/flutter_news_example/packages/storage/persistent_storage/pubspec.yaml @@ -3,12 +3,12 @@ description: Storage that saves data in the device's persistent memory. publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: flutter: sdk: flutter - shared_preferences: ^2.0.15 + shared_preferences: ^2.5.3 storage: path: ../storage @@ -16,4 +16,4 @@ dev_dependencies: flutter_test: sdk: flutter mocktail: ^1.0.2 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/storage/secure_storage/analysis_options.yaml b/flutter_news_example/packages/storage/secure_storage/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/storage/secure_storage/analysis_options.yaml +++ b/flutter_news_example/packages/storage/secure_storage/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/storage/secure_storage/pubspec.yaml b/flutter_news_example/packages/storage/secure_storage/pubspec.yaml index 77dbb0e20..1852a76c8 100644 --- a/flutter_news_example/packages/storage/secure_storage/pubspec.yaml +++ b/flutter_news_example/packages/storage/secure_storage/pubspec.yaml @@ -3,7 +3,7 @@ description: A Key/Value Secure Storage Client publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: flutter: @@ -16,4 +16,4 @@ dev_dependencies: flutter_test: sdk: flutter mocktail: ^1.0.2 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/storage/storage/analysis_options.yaml b/flutter_news_example/packages/storage/storage/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/storage/storage/analysis_options.yaml +++ b/flutter_news_example/packages/storage/storage/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/storage/storage/pubspec.yaml b/flutter_news_example/packages/storage/storage/pubspec.yaml index bf3802d4b..859d8e2c1 100644 --- a/flutter_news_example/packages/storage/storage/pubspec.yaml +++ b/flutter_news_example/packages/storage/storage/pubspec.yaml @@ -3,8 +3,8 @@ description: A Key/Value Storage Client for Dart. publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dev_dependencies: test: ^1.21.4 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/packages/user_repository/analysis_options.yaml b/flutter_news_example/packages/user_repository/analysis_options.yaml index bb7209144..a220e1f09 100644 --- a/flutter_news_example/packages/user_repository/analysis_options.yaml +++ b/flutter_news_example/packages/user_repository/analysis_options.yaml @@ -1 +1,5 @@ -include: package:very_good_analysis/analysis_options.6.0.0.yaml +include: package:very_good_analysis/analysis_options.7.0.0.yaml + +analyzer: + errors: + document_ignores: ignore \ No newline at end of file diff --git a/flutter_news_example/packages/user_repository/pubspec.yaml b/flutter_news_example/packages/user_repository/pubspec.yaml index 40b5730cf..25cf16b2b 100644 --- a/flutter_news_example/packages/user_repository/pubspec.yaml +++ b/flutter_news_example/packages/user_repository/pubspec.yaml @@ -3,7 +3,7 @@ description: Dart package which manages the user domain. publish_to: none environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: authentication_client: @@ -22,4 +22,4 @@ dependencies: dev_dependencies: mocktail: ^1.0.2 test: ^1.21.4 - very_good_analysis: ^6.0.0 + very_good_analysis: ^7.0.0 diff --git a/flutter_news_example/pubspec.lock b/flutter_news_example/pubspec.lock index 298826633..d0e414f0c 100644 --- a/flutter_news_example/pubspec.lock +++ b/flutter_news_example/pubspec.lock @@ -5,18 +5,23 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" url: "https://pub.dev" source: hosted - version: "61.0.0" + version: "76.0.0" _flutterfire_internals: dependency: transitive description: name: _flutterfire_internals - sha256: eae3133cbb06de9205899b822e3897fc6a8bc278ad4c944b4ce612689369694b + sha256: "50e24b769bd1e725732f0aff18b806b8731c1fbcf4e8018ab98e7c4805a2a52f" url: "https://pub.dev" source: hosted - version: "1.3.47" + version: "1.3.57" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.3" ads_consent_client: dependency: "direct main" description: @@ -35,10 +40,10 @@ packages: dependency: transitive description: name: analyzer - sha256: ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562 + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" url: "https://pub.dev" source: hosted - version: "5.13.0" + version: "6.11.0" android_intent_plus: dependency: transitive description: @@ -88,26 +93,26 @@ packages: dependency: "direct main" description: name: bloc - sha256: "3820f15f502372d979121de1f6b97bfcf1630ebff8fe1d52fb2b0bfa49be5b49" + sha256: a2cebb899f91d36eeeaa55c7b20b5915db5a9df1b8fd4a3c9c825e22e474537d url: "https://pub.dev" source: hosted - version: "8.1.2" + version: "9.1.0" bloc_concurrency: dependency: "direct main" description: name: bloc_concurrency - sha256: "44535c9f429cd7e91d548cf89fde1c23a8b4b3637decdb1865bb583091a00d4e" + sha256: "86b7b17a0a78f77fca0d7c030632b59b593b22acea2d96972588f40d4ef53a94" url: "https://pub.dev" source: hosted - version: "0.2.2" + version: "0.3.0" bloc_test: dependency: "direct dev" description: name: bloc_test - sha256: af0de1a1e16a7536e95dcd7491e0a6d6078e11d2d691988e862280b74f5c7968 + sha256: "1dd549e58be35148bc22a9135962106aa29334bc1e3f285994946a1057b29d7b" url: "https://pub.dev" source: hosted - version: "9.1.4" + version: "10.0.0" boolean_selector: dependency: transitive description: @@ -144,34 +149,34 @@ packages: dependency: transitive description: name: build_resolvers - sha256: "64e12b0521812d1684b1917bc80945625391cb9bdd4312536b1d69dcb6133ed8" + sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "10c6bcdbf9d049a0b666702cf1cee4ddfdc38f02a19d35ae392863b47519848b" + sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" url: "https://pub.dev" source: hosted - version: "2.4.6" + version: "2.4.15" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: c9e32d21dd6626b5c163d48b037ce906bbe428bc23ab77bcd77bb21e593b6185 + sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" url: "https://pub.dev" source: hosted - version: "7.2.11" + version: "8.0.0" build_verify: dependency: "direct dev" description: name: build_verify - sha256: abbb9b9eda076854ac1678d284c053a5ec608e64da741d0801f56d4bbea27e23 + sha256: "3b17b59b6d66f9d3e6014996f089902d56cec5760e051c353cc387b9da577652" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.1" build_version: dependency: "direct dev" description: @@ -256,10 +261,10 @@ packages: dependency: "direct main" description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.0" convert: dependency: transitive description: @@ -312,10 +317,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "1efa911ca7086affd35f463ca2fc1799584fb6aa89883cf0af8e3664d6a02d55" + sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.8" deep_link_client: dependency: "direct main" description: @@ -414,10 +419,10 @@ packages: dependency: "direct main" description: name: firebase_auth_platform_interface - sha256: "3e1409f48c48930635705b1237ebbdee8c54c19106a0a4fb321dbb4b642820c4" + sha256: "4e8dbb33b0539563c7b528e5f2c6a502fb543206f768358c8dfc9e85d600d7a0" url: "https://pub.dev" source: hosted - version: "7.4.10" + version: "7.7.1" firebase_auth_web: dependency: transitive description: @@ -437,42 +442,42 @@ packages: dependency: "direct main" description: name: firebase_core - sha256: fef81a53ba1ca618def1f8bef4361df07968434e62cb204c1fb90bb880a03da2 + sha256: "5bba5924139e91d26446fd2601c18a6aa62c1161c768a989bb5e245dcdc20644" url: "https://pub.dev" source: hosted - version: "3.8.1" + version: "3.15.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: b94b217e3ad745e784960603d33d99471621ecca151c99c670869b76e50ad2a6 + sha256: "8bcfad6d7033f5ea951d15b867622a824b13812178bfec0c779b9d81de011bbb" url: "https://pub.dev" source: hosted - version: "5.3.1" + version: "5.4.2" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: "9e69806bb3d905aeec3c1242e0e1475de6ea6d48f456af29d598fb229a2b4e5e" + sha256: eb3afccfc452b2b2075acbe0c4b27de62dd596802b4e5e19869c1e926cbb20b3 url: "https://pub.dev" source: hosted - version: "2.18.2" + version: "2.24.0" firebase_crashlytics: dependency: "direct main" description: name: firebase_crashlytics - sha256: e235c8452d5622fc271404592388fde179e4b62c50e777ad3c8c3369296104ed + sha256: "6f1aeb2862e09bf03f7c2d95e0e044e7d52cb242f2e48d6114262c0686134a0f" url: "https://pub.dev" source: hosted - version: "4.2.0" + version: "4.3.8" firebase_crashlytics_platform_interface: dependency: transitive description: name: firebase_crashlytics_platform_interface - sha256: "4ddadf44ed0a202f3acad053f12c083877940fa8cc1a9f747ae09e1ef4372160" + sha256: "39b9022eb190f63780a6441ab9e4dc1898cc29372ca457f94271796c3b6a416a" url: "https://pub.dev" source: hosted - version: "3.7.0" + version: "3.8.8" firebase_deep_link_client: dependency: "direct main" description: @@ -484,42 +489,42 @@ packages: dependency: "direct main" description: name: firebase_dynamic_links - sha256: "3560e0e9ae91fa96d8ee70faa260b12c49524de283a32d47583b1b0a4f73761a" + sha256: "2ae34cfa21395ee02fd6f1587a8096996073ec7fce507f6aa7d50b0b26fafae5" url: "https://pub.dev" source: hosted - version: "6.0.11" + version: "6.1.8" firebase_dynamic_links_platform_interface: dependency: transitive description: name: firebase_dynamic_links_platform_interface - sha256: de7c990154d9164edf9524c18bf98f869f079a962198d80a1dcef3e0b69cea8f + sha256: "81948a2259a39a29ea54c935a518c277eb0829854cf3fb7732e1ed98982ece0e" url: "https://pub.dev" source: hosted - version: "0.2.6+47" + version: "0.2.7+8" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: "151a3ee68736abf293aab66d1317ade53c88abe1db09c75a0460aebf7767bbdf" + sha256: c6711cf2f455532b84a94022c7aaf85088849763af2f01b775ca79d82d10a01a url: "https://pub.dev" source: hosted - version: "15.1.6" + version: "15.2.8" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: f331ee51e40c243f90cc7bc059222dfec4e5df53125b08d31fb28961b00d2a9d + sha256: "1c9dacccb1aee1bf17ba519dda5563a16fdd2ec1e79b5f2e421cb4bf75a166f7" url: "https://pub.dev" source: hosted - version: "4.5.49" + version: "4.6.8" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: efaf3fdc54cd77e0eedb8e75f7f01c808828c64d052ddbf94d3009974e47d30f + sha256: "54317c26fa92f0d90a2017977ac791cb0504eca29fcf397f06adf727d4a7a2d5" url: "https://pub.dev" source: hosted - version: "3.9.5" + version: "3.10.8" firebase_notifications_client: dependency: "direct main" description: @@ -539,10 +544,10 @@ packages: dependency: "direct main" description: name: flow_builder - sha256: "212a5c6575e87bec2003fa3f31dd7d80f0d89f6152db54f43fb0b6f45943e955" + sha256: "9e66aa7209e9a31c347bb316abf191d2300db41cd6b7254f89abd4e76d9b3f8d" url: "https://pub.dev" source: hosted - version: "0.0.9" + version: "0.1.0" flutter: dependency: "direct main" description: flutter @@ -552,10 +557,10 @@ packages: dependency: "direct main" description: name: flutter_bloc - sha256: e74efb89ee6945bcbce74a5b3a5a3376b088e5f21f55c263fc38cbdc6237faae + sha256: cf51747952201a455a1c840f8171d273be009b932c75093020f9af64f2123e38 url: "https://pub.dev" source: hosted - version: "8.1.3" + version: "9.1.1" flutter_cache_manager: dependency: transitive description: @@ -660,10 +665,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: "8c5d68a82add3ca76d792f058b186a0599414f279f00ece4830b9b231b570338" + sha256: cd57f7969b4679317c17af6fd16ee233c1e60a82ed209d8a475c54fd6fd6f845 url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.2.0" flutter_test: dependency: "direct dev" description: flutter @@ -678,10 +683,10 @@ packages: dependency: "direct main" description: name: font_awesome_flutter - sha256: "52671aea66da73b58d42ec6d0912b727a42248dd9a7c76d6c20f275783c48c08" + sha256: b738e35f8bb4957896c34957baf922f99c5d415b38ddc8b070d14b7fa95715d4 url: "https://pub.dev" source: hosted - version: "10.6.0" + version: "10.9.1" form_inputs: dependency: "direct main" description: @@ -725,10 +730,10 @@ packages: dependency: "direct main" description: name: google_mobile_ads - sha256: "4775006383a27a5d86d46f8fb452bfcb17794fc0a46c732979e49a8eb1c8963f" + sha256: "0d4a3744b5e8ed1b8be6a1b452d309f811688855a497c6113fc4400f922db603" url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "5.3.1" google_sign_in: dependency: transitive description: @@ -777,14 +782,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.1" - hive: + hive_ce: dependency: transitive description: - name: hive - sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941" + name: hive_ce + sha256: e3a9d2608350ca5ae1fcaa594bbc24c443cf8e67cd16b89ec258fb0bcccb0847 url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.15.0" hotreloader: dependency: transitive description: @@ -837,10 +842,10 @@ packages: dependency: "direct main" description: name: hydrated_bloc - sha256: "24994e61f64904d911683cce1a31dc4ef611619da5253f1de2b7b8fc6f79a118" + sha256: f359a1135cc2eaddb53eeb21c8f915a149b9bdb80d01fda27c6f4e333db0cf2f url: "https://pub.dev" source: hosted - version: "9.1.2" + version: "10.1.1" in_app_purchase: dependency: transitive description: @@ -896,6 +901,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.4" + isolate_channel: + dependency: transitive + description: + name: isolate_channel + sha256: f3d36f783b301e6b312c3450eeb2656b0e7d1db81331af2a151d9083a3f6b18d + url: "https://pub.dev" + source: hosted + version: "0.2.2+1" js: dependency: transitive description: @@ -916,26 +929,26 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b + sha256: c50ef5fc083d5b5e12eef489503ba3bf5ccc899e487d691584699b4bdefeea8c url: "https://pub.dev" source: hosted - version: "6.8.0" + version: "6.9.5" leak_tracker: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: @@ -960,6 +973,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + macros: + dependency: transitive + description: + name: macros + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" + url: "https://pub.dev" + source: hosted + version: "0.1.3-main.0" matcher: dependency: transitive description: @@ -1012,10 +1033,10 @@ packages: dependency: "direct dev" description: name: mocktail_image_network - sha256: "83e6b9fa3c6b0952636719f0444752d94c0ef7caa4172ca467d9c1b682aeddbb" + sha256: a1fccbba780343517cfc552e0af2b3834d8bdb8f9f55a746c4d495ed1a8d50d6 url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.2.0" nested: dependency: transitive description: @@ -1110,18 +1131,18 @@ packages: dependency: "direct main" description: name: path_provider - sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: "6b8b19bd80da4f11ce91b2d1fb931f3006911477cec227cce23d3253d80df3f1" + sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9 url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.2.17" path_provider_foundation: dependency: transitive description: @@ -1220,10 +1241,10 @@ packages: dependency: "direct main" description: name: platform - sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59" + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "3.1.6" plugin_platform_interface: dependency: transitive description: @@ -1314,58 +1335,58 @@ packages: dependency: "direct main" description: name: shared_preferences - sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" + sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.5.3" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06" + sha256: "5bcf0772a761b04f8c6bf814721713de6f3e5d9d89caf8d3fe031b02a342379e" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.4.11" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7" + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" url: "https://pub.dev" source: hosted - version: "2.3.4" + version: "2.5.4" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.1" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.1" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.4.3" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.1" shelf: dependency: transitive description: @@ -1434,7 +1455,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" sliver_tools: dependency: "direct main" description: @@ -1447,18 +1468,18 @@ packages: dependency: transitive description: name: source_gen - sha256: fc0da689e5302edb6177fdd964efcb7f58912f43c28c2047a808f5bfff643d16 + sha256: "35c8150ece9e8c8d263337a265153c3329667640850b9304861faea59fc98f6b" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "2.0.0" source_helper: dependency: transitive description: name: source_helper - sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" + sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" url: "https://pub.dev" source: hosted - version: "1.3.4" + version: "1.3.5" source_map_stack_trace: dependency: transitive description: @@ -1511,10 +1532,10 @@ packages: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.0" storage: dependency: transitive description: @@ -1534,18 +1555,18 @@ packages: dependency: "direct main" description: name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" string_scanner: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" synchronized: dependency: transitive description: @@ -1566,26 +1587,26 @@ packages: dependency: "direct main" description: name: test - sha256: "7ee44229615f8f642b68120165ae4c2a75fe77ae2065b1e55ae4711f6cf0899e" + sha256: "713a8789d62f3233c46b4a90b174737b2c04cb6ae4500f2aa8b1be8f03f5e67f" url: "https://pub.dev" source: hosted - version: "1.25.7" + version: "1.25.8" test_api: dependency: transitive description: name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.3" test_core: dependency: transitive description: name: test_core - sha256: "55ea5a652e38a1dfb32943a7973f3681a60f872f8c3a05a14664ad54ef9c6696" + sha256: "12391302411737c176b0b5d6491f466b0dd56d4763e347b6714efbaa74d7953d" url: "https://pub.dev" source: hosted - version: "0.6.4" + version: "0.6.5" timing: dependency: transitive description: @@ -1621,26 +1642,26 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "47e208a6711459d813ba18af120d9663c20bdf6985d6ad39fe165d2538378d27" + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 url: "https://pub.dev" source: hosted - version: "6.1.14" + version: "6.3.2" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: b04af59516ab45762b2ca6da40fa830d72d0f6045cd97744450b73493fa76330 + sha256: "0aedad096a85b49df2e4725fa32118f9fa580f3b14af7a2d2221896a02cd5656" url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "6.3.17" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "7c65021d5dee51813d652357bc65b8dd4a6177082a9966bc8ba6ee477baa795f" + sha256: "7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb" url: "https://pub.dev" source: hosted - version: "6.1.5" + version: "6.3.3" url_launcher_linux: dependency: transitive description: @@ -1653,10 +1674,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: b55486791f666e62e0e8ff825e58a023fd6b1f71c49926483f1128d3bbd8fe88 + sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "3.2.2" url_launcher_platform_interface: dependency: transitive description: @@ -1700,26 +1721,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: b16dadf7eb610e20da044c141b4a0199a5e8082ca21daba68322756f953ce714 + sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6 url: "https://pub.dev" source: hosted - version: "1.1.9" + version: "1.1.19" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: a4b01403d5c613db115e30e71eca33f7e9e09f2d3c52c3fb84e16333ecddc539 + sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" url: "https://pub.dev" source: hosted - version: "1.1.9" + version: "1.1.13" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: d26c0e2f237476426523eb25512e4c09fa27c6d33ed659a0e69d79e20b5dc47f + sha256: ca81fdfaf62a5ab45d7296614aea108d2c7d0efca8393e96174bf4d51e6725b0 url: "https://pub.dev" source: hosted - version: "1.1.9" + version: "1.1.18" vector_math: dependency: transitive description: @@ -1732,10 +1753,10 @@ packages: dependency: "direct main" description: name: very_good_analysis - sha256: "1fb637c0022034b1f19ea2acb42a3603cbd8314a470646a59a2fb01f5f3a8629" + sha256: "62d2b86d183fb81b2edc22913d9f155d26eb5cf3855173adb1f59fac85035c63" url: "https://pub.dev" source: hosted - version: "6.0.0" + version: "7.0.0" video_player: dependency: transitive description: @@ -1764,10 +1785,10 @@ packages: dependency: "direct main" description: name: video_player_platform_interface - sha256: be72301bf2c0150ab35a8c34d66e5a99de525f6de1e8d27c0672b836fe48f73a + sha256: cf2a1d29a284db648fd66cbd18aacc157f9862d77d2cc790f6f9678a46c1db5a url: "https://pub.dev" source: hosted - version: "6.2.1" + version: "6.4.0" video_player_web: dependency: transitive description: @@ -1788,10 +1809,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "14.3.0" watcher: dependency: transitive description: @@ -1804,10 +1825,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.1" web_socket_channel: dependency: transitive description: @@ -1828,34 +1849,34 @@ packages: dependency: transitive description: name: webview_flutter - sha256: "25e1b6e839e8cbfbd708abc6f85ed09d1727e24e08e08c6b8590d7c65c9a8932" + sha256: c3e4fe614b1c814950ad07186007eff2f2e5dd2935eba7b9a9a1af8e5885f1ba url: "https://pub.dev" source: hosted - version: "4.7.0" + version: "4.13.0" webview_flutter_android: dependency: transitive description: name: webview_flutter_android - sha256: f038ee2fae73b509dde1bc9d2c5a50ca92054282de17631a9a3d515883740934 + sha256: "0a42444056b24ed832bdf3442d65c5194f6416f7e782152384944053c2ecc9a3" url: "https://pub.dev" source: hosted - version: "3.16.0" + version: "4.10.0" webview_flutter_platform_interface: dependency: transitive description: name: webview_flutter_platform_interface - sha256: d937581d6e558908d7ae3dc1989c4f87b786891ab47bb9df7de548a151779d8d + sha256: "63d26ee3aca7256a83ccb576a50272edd7cfc80573a4305caa98985feb493ee0" url: "https://pub.dev" source: hosted - version: "2.10.0" + version: "2.14.0" webview_flutter_wkwebview: dependency: transitive description: name: webview_flutter_wkwebview - sha256: f12f8d8a99784b863e8b85e4a9a5e3cf1839d6803d2c0c3e0533a8f3c5a992a7 + sha256: fb46db8216131a3e55bcf44040ca808423539bc6732e7ed34fb6d8044e3d512f url: "https://pub.dev" source: hosted - version: "3.13.0" + version: "3.23.0" win32: dependency: "direct overridden" description: @@ -1889,5 +1910,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.5.0 <4.0.0" - flutter: ">=3.24.0" + dart: ">=3.6.0 <4.0.0" + flutter: ">=3.27.0" diff --git a/flutter_news_example/pubspec.yaml b/flutter_news_example/pubspec.yaml index 82c40e944..732f079e9 100644 --- a/flutter_news_example/pubspec.yaml +++ b/flutter_news_example/pubspec.yaml @@ -3,8 +3,8 @@ version: 0.0.1+1 publish_to: none environment: - sdk: ">=3.5.0 <4.0.0" - flutter: ">=3.24.0" + sdk: ">=3.6.0 <4.0.0" + flutter: ">=3.27.0" dependencies: ads_consent_client: @@ -17,41 +17,41 @@ dependencies: path: packages/article_repository authentication_client: path: packages/authentication_client/authentication_client - bloc: ^8.1.0 - bloc_concurrency: ^0.2.0 - clock: ^1.1.0 - collection: ^1.16.0 + bloc: ^9.1.0 + bloc_concurrency: ^0.3.0 + clock: ^1.1.1 + collection: ^1.19.0 deep_link_client: path: packages/deep_link_client/deep_link_client email_launcher: path: packages/email_launcher equatable: ^2.0.3 firebase_analytics: ^11.3.6 - firebase_auth_platform_interface: ^7.4.10 + firebase_auth_platform_interface: ^7.7.1 firebase_authentication_client: path: packages/authentication_client/firebase_authentication_client - firebase_core: ^3.8.1 - firebase_crashlytics: ^4.2.0 + firebase_core: ^3.15.0 + firebase_crashlytics: ^4.3.8 firebase_deep_link_client: path: packages/deep_link_client/firebase_deep_link_client - firebase_dynamic_links: ^6.0.10 - firebase_messaging: ^15.1.6 + firebase_dynamic_links: ^6.1.8 + firebase_messaging: ^15.2.8 firebase_notifications_client: path: packages/notifications_client/firebase_notifications_client - flow_builder: ^0.0.7 + flow_builder: ^0.1.0 flutter: sdk: flutter - flutter_bloc: ^8.0.1 + flutter_bloc: ^9.1.1 flutter_localizations: sdk: flutter flutter_news_example_api: path: api - flutter_svg: ^2.0.5 - font_awesome_flutter: ^10.1.0 + flutter_svg: ^2.2.0 + font_awesome_flutter: ^10.9.1 form_inputs: path: packages/form_inputs - google_mobile_ads: ^5.2.0 - hydrated_bloc: ^9.0.0 + google_mobile_ads: ^5.3.1 + hydrated_bloc: ^10.1.1 in_app_purchase_repository: path: packages/in_app_purchase_repository intl: ^0.19.0 @@ -67,40 +67,40 @@ dependencies: path: packages/notifications_repository package_info_client: path: packages/package_info_client - path_provider: ^2.1.4 + path_provider: ^2.1.5 permission_client: path: packages/permission_client persistent_storage: path: packages/storage/persistent_storage - platform: ^3.0.2 + platform: ^3.1.6 purchase_client: path: packages/purchase_client share_launcher: path: packages/share_launcher - shared_preferences: ^2.0.15 + shared_preferences: ^2.5.3 sliver_tools: ^0.2.9 - stream_transform: ^2.0.0 + stream_transform: ^2.1.1 test: ^1.21.4 token_storage: path: packages/authentication_client/token_storage - url_launcher: ^6.0.9 + url_launcher: ^6.3.2 user_repository: path: packages/user_repository - very_good_analysis: ^6.0.0 - video_player_platform_interface: ^6.0.1 + very_good_analysis: ^7.0.0 + video_player_platform_interface: ^6.4.0 visibility_detector: ^0.4.0+2 dev_dependencies: - bloc_test: ^9.0.3 - build_runner: ^2.0.3 - build_verify: ^3.0.0 - build_version: ^2.0.3 + bloc_test: ^10.0.0 + build_runner: ^2.4.15 + build_verify: ^3.1.1 + build_version: ^2.1.1 fake_async: ^1.3.0 flutter_test: sdk: flutter - json_serializable: ^6.8.0 + json_serializable: ^6.9.5 mocktail: ^1.0.2 - mocktail_image_network: ^1.0.0 + mocktail_image_network: ^1.2.0 dependency_overrides: intl: ^0.19.0 diff --git a/flutter_news_example/test/app/view/app_test.dart b/flutter_news_example/test/app/view/app_test.dart index 41b75e4db..0088de0a6 100644 --- a/flutter_news_example/test/app/view/app_test.dart +++ b/flutter_news_example/test/app/view/app_test.dart @@ -76,6 +76,8 @@ void main() { .thenAnswer((_) async => 2); when(() => userRepository.incrementAppOpenedCount()) .thenAnswer((_) async {}); + when(() => newsRepository.getCategories()) + .thenAnswer((_) async => const CategoriesResponse(categories: [])); }); testWidgets('renders AppView', (tester) async { diff --git a/flutter_news_example/test/categories/bloc/categories_state_test.dart b/flutter_news_example/test/categories/bloc/categories_state_test.dart index 486a56f09..76704e164 100644 --- a/flutter_news_example/test/categories/bloc/categories_state_test.dart +++ b/flutter_news_example/test/categories/bloc/categories_state_test.dart @@ -20,6 +20,11 @@ void main() { ); }); + test('getCategoryName returns null when not found', () { + final state = CategoriesState.initial(); + expect(state.getCategoryName('unknown'), isNull); + }); + group('copyWith', () { test( 'returns same object ' diff --git a/flutter_news_example/test/feed/widgets/category_feed_item_test.dart b/flutter_news_example/test/feed/widgets/category_feed_item_test.dart index da20b7e19..1ba10546c 100644 --- a/flutter_news_example/test/feed/widgets/category_feed_item_test.dart +++ b/flutter_news_example/test/feed/widgets/category_feed_item_test.dart @@ -32,6 +32,9 @@ void main() { setUp(() { articleRepository = MockArticleRepository(); + when(articleRepository.fetchTotalArticleViews).thenAnswer((_) async => 1); + when(articleRepository.incrementTotalArticleViews) + .thenAnswer((_) async {}); when(articleRepository.incrementArticleViews).thenAnswer((_) async {}); when(articleRepository.resetArticleViews).thenAnswer((_) async {}); when(articleRepository.fetchArticleViews) @@ -533,6 +536,7 @@ void main() { CustomScrollView( slivers: [CategoryFeedItem(block: block)], ), + articleRepository: articleRepository, ); // We're tapping on a PostLarge as the first post of the PostGrid diff --git a/flutter_news_example/test/helpers/pump_app.dart b/flutter_news_example/test/helpers/pump_app.dart index 2105dcc16..eb4b02f65 100644 --- a/flutter_news_example/test/helpers/pump_app.dart +++ b/flutter_news_example/test/helpers/pump_app.dart @@ -63,10 +63,32 @@ class MockUserRepository extends Mock implements UserRepository { Stream get user => const Stream.empty(); } -class MockNewsRepository extends Mock implements NewsRepository {} +class MockNewsRepository extends Mock implements NewsRepository { + @override + Future getCategories() async => + const CategoriesResponse(categories: []); + + @override + Future getFeed({ + String? categoryId, + int? limit, + int? offset, + }) async { + return const FeedResponse( + feed: [], + totalCount: 0, + ); + } +} class MockNotificationsRepository extends Mock - implements NotificationsRepository {} + implements NotificationsRepository { + @override + Future?> fetchCategoriesPreferences() async => {}; + + @override + Future fetchNotificationsEnabled() async => false; +} class MockArticleRepository extends Mock implements ArticleRepository { @override @@ -77,6 +99,29 @@ class MockArticleRepository extends Mock implements ArticleRepository { @override Future resetArticleViews() async {} + + @override + Future incrementTotalArticleViews() async {} + + @override + Future fetchTotalArticleViews() async => 0; + + @override + Future getArticle({ + required String id, + int? limit, + int? offset, + bool preview = false, + }) async { + return ArticleResponse( + title: 'Test Article', + content: const [], + totalCount: 1, + url: Uri.https('example.org'), + isPremium: false, + isPreview: false, + ); + } } class MockInAppPurchaseRepository extends Mock diff --git a/flutter_news_example/test/home/view/home_page_test.dart b/flutter_news_example/test/home/view/home_page_test.dart index 1a3767349..fe358f001 100644 --- a/flutter_news_example/test/home/view/home_page_test.dart +++ b/flutter_news_example/test/home/view/home_page_test.dart @@ -26,6 +26,18 @@ void main() { categories: [healthCategory], ), ); + when( + () => newsRepository.getFeed( + categoryId: any(named: 'categoryId'), + limit: any(named: 'limit'), + offset: any(named: 'offset'), + ), + ).thenAnswer( + (_) async => FeedResponse( + feed: [], + totalCount: 0, + ), + ); }); test('has a page', () { @@ -33,7 +45,7 @@ void main() { }); testWidgets('renders a HomeView', (tester) async { - await tester.pumpApp(const HomePage()); + await tester.pumpApp(const HomePage(), newsRepository: newsRepository); expect(find.byType(HomeView), findsOneWidget); }); diff --git a/flutter_news_example/test/navigation/widgets/nav_drawer_sections_test.dart b/flutter_news_example/test/navigation/widgets/nav_drawer_sections_test.dart index a36d0c20d..01c3e207b 100644 --- a/flutter_news_example/test/navigation/widgets/nav_drawer_sections_test.dart +++ b/flutter_news_example/test/navigation/widgets/nav_drawer_sections_test.dart @@ -109,7 +109,7 @@ void main() { expect( tile.selectedTileColor, - equals(AppColors.white.withOpacity(0.08)), + equals(AppColors.white.withValues(alpha: 0.08)), ); expect( diff --git a/flutter_news_example/test/notification_preferences/view/notification_preferences_page_test.dart b/flutter_news_example/test/notification_preferences/view/notification_preferences_page_test.dart index c564e04f2..e4bd6d9f7 100644 --- a/flutter_news_example/test/notification_preferences/view/notification_preferences_page_test.dart +++ b/flutter_news_example/test/notification_preferences/view/notification_preferences_page_test.dart @@ -17,7 +17,10 @@ class MockNotificationPreferencesBloc extends Mock implements NotificationPreferencesBloc {} class MockNotificationPreferencesRepository extends Mock - implements NotificationsRepository {} + implements NotificationsRepository { + @override + Future?> fetchCategoriesPreferences() async => {}; +} class MockCategoriesBloc extends Mock implements CategoriesBloc {}