From 68a5225e05448ff587f6e60ae00c903a7846d026 Mon Sep 17 00:00:00 2001 From: Ian Hickson Date: Thu, 8 Jul 2021 17:10:40 -0700 Subject: [PATCH] [various] Prepare plugin repo for binding API improvements Since plugins also have to work with the stable branch, we can't actually take advantage of the changes right away, so we muddle the issue in the meantime. Prep for flutter/flutter#83843 See also #4136, #4137 --- packages/camera/camera/CHANGELOG.md | 5 +++++ packages/camera/camera/example/lib/main.dart | 2 +- packages/camera/camera/pubspec.yaml | 2 +- .../video_player/test/video_player_test.dart | 13 +++++++++++-- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/camera/camera/CHANGELOG.md b/packages/camera/camera/CHANGELOG.md index 2cab8e123ae6..1f30104218e3 100644 --- a/packages/camera/camera/CHANGELOG.md +++ b/packages/camera/camera/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.8.1+4 + +* Silenced warnings that may occur during build when using a very + recent version of Flutter relating to null safety. + ## 0.8.1+3 * Do not change camera orientation when iOS device is flat. diff --git a/packages/camera/camera/example/lib/main.dart b/packages/camera/camera/example/lib/main.dart index 16d585db9308..00ac2251ba2a 100644 --- a/packages/camera/camera/example/lib/main.dart +++ b/packages/camera/camera/example/lib/main.dart @@ -98,7 +98,7 @@ class _CameraExampleHomeState extends State @override void dispose() { - WidgetsBinding.instance?.removeObserver(this); + _ambiguate(WidgetsBinding.instance)?.removeObserver(this); _flashModeControlRowAnimationController.dispose(); _exposureModeControlRowAnimationController.dispose(); super.dispose(); diff --git a/packages/camera/camera/pubspec.yaml b/packages/camera/camera/pubspec.yaml index a7df9e0d51be..789910e2c79b 100644 --- a/packages/camera/camera/pubspec.yaml +++ b/packages/camera/camera/pubspec.yaml @@ -4,7 +4,7 @@ description: A Flutter plugin for getting information about and controlling the and streaming image buffers to dart. repository: https://github.com/flutter/plugins/tree/master/packages/camera/camera issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 -version: 0.8.1+3 +version: 0.8.1+4 environment: sdk: ">=2.12.0 <3.0.0" diff --git a/packages/video_player/video_player/test/video_player_test.dart b/packages/video_player/video_player/test/video_player_test.dart index 63498c4e18cb..b5bfad605620 100644 --- a/packages/video_player/video_player/test/video_player_test.dart +++ b/packages/video_player/video_player/test/video_player_test.dart @@ -856,7 +856,16 @@ class FakeEventsChannel { } void _sendMessage(ByteData data) { - ServicesBinding.instance!.defaultBinaryMessenger.handlePlatformMessage( - eventsMethodChannel.name, data, (ByteData? data) {}); + _ambiguate(ServicesBinding.instance)! + .defaultBinaryMessenger + .handlePlatformMessage( + eventsMethodChannel.name, data, (ByteData? data) {}); } } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +// TODO(ianh): Remove this once we roll stable in late 2021. +T? _ambiguate(T? value) => value;