[various] Enable use_build_context_synchronously (#6585)
Enables the `use_build_context_synchronously` lint, and fixes violations.
Part of https://github.com/flutter/flutter/issues/76229
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 27f59e1..1eb0d23 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -241,7 +241,7 @@
- unnecessary_to_list_in_spreads
- unrelated_type_equality_checks
- unsafe_html
- # - use_build_context_synchronously # LOCAL CHANGE - Needs to be enabled and violations fixed.
+ - use_build_context_synchronously
# - use_colored_box # not yet tested
# - use_decorated_box # not yet tested
# - use_enums # not yet tested
diff --git a/packages/file_selector/file_selector/CHANGELOG.md b/packages/file_selector/file_selector/CHANGELOG.md
index b8784e5..9fd2341 100644
--- a/packages/file_selector/file_selector/CHANGELOG.md
+++ b/packages/file_selector/file_selector/CHANGELOG.md
@@ -1,5 +1,6 @@
## NEXT
+* Updates example code for `use_build_context_synchronously` lint.
* Updates minimum Flutter version to 3.0.
## 0.9.2+2
diff --git a/packages/file_selector/file_selector/example/lib/get_directory_page.dart b/packages/file_selector/file_selector/example/lib/get_directory_page.dart
index de80aa5..dfe166d 100644
--- a/packages/file_selector/file_selector/example/lib/get_directory_page.dart
+++ b/packages/file_selector/file_selector/example/lib/get_directory_page.dart
@@ -22,10 +22,12 @@
// Operation was canceled by the user.
return;
}
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => TextDisplay(directoryPath),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => TextDisplay(directoryPath),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector/example/lib/open_image_page.dart b/packages/file_selector/file_selector/example/lib/open_image_page.dart
index ba18e6e..7717f28 100644
--- a/packages/file_selector/file_selector/example/lib/open_image_page.dart
+++ b/packages/file_selector/file_selector/example/lib/open_image_page.dart
@@ -29,10 +29,12 @@
final String fileName = file.name;
final String filePath = file.path;
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => ImageDisplay(fileName, filePath),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => ImageDisplay(fileName, filePath),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector/example/lib/open_multiple_images_page.dart b/packages/file_selector/file_selector/example/lib/open_multiple_images_page.dart
index 8ae83c2..a09a6db 100644
--- a/packages/file_selector/file_selector/example/lib/open_multiple_images_page.dart
+++ b/packages/file_selector/file_selector/example/lib/open_multiple_images_page.dart
@@ -32,10 +32,12 @@
// Operation was canceled by the user.
return;
}
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => MultipleImagesDisplay(files),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => MultipleImagesDisplay(files),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector/example/lib/open_text_page.dart b/packages/file_selector/file_selector/example/lib/open_text_page.dart
index f052db1..e28a67a 100644
--- a/packages/file_selector/file_selector/example/lib/open_text_page.dart
+++ b/packages/file_selector/file_selector/example/lib/open_text_page.dart
@@ -32,10 +32,12 @@
final String fileName = file.name;
final String fileContent = await file.readAsString();
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => TextDisplay(fileName, fileContent),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => TextDisplay(fileName, fileContent),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_ios/CHANGELOG.md b/packages/file_selector/file_selector_ios/CHANGELOG.md
index ccb51ef..40d232e 100644
--- a/packages/file_selector/file_selector_ios/CHANGELOG.md
+++ b/packages/file_selector/file_selector_ios/CHANGELOG.md
@@ -1,5 +1,6 @@
## NEXT
+* Updates example code for `use_build_context_synchronously` lint.
* Updates minimum Flutter version to 3.0.
## 0.5.0+2
diff --git a/packages/file_selector/file_selector_ios/example/lib/open_image_page.dart b/packages/file_selector/file_selector_ios/example/lib/open_image_page.dart
index 606a648..6fcbcbf 100644
--- a/packages/file_selector/file_selector_ios/example/lib/open_image_page.dart
+++ b/packages/file_selector/file_selector_ios/example/lib/open_image_page.dart
@@ -29,10 +29,12 @@
final String fileName = file.name;
final String filePath = file.path;
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => ImageDisplay(fileName, filePath),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => ImageDisplay(fileName, filePath),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_ios/example/lib/open_multiple_images_page.dart b/packages/file_selector/file_selector_ios/example/lib/open_multiple_images_page.dart
index adc4a65..30cc515 100644
--- a/packages/file_selector/file_selector_ios/example/lib/open_multiple_images_page.dart
+++ b/packages/file_selector/file_selector_ios/example/lib/open_multiple_images_page.dart
@@ -34,10 +34,12 @@
// Operation was canceled by the user.
return;
}
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => MultipleImagesDisplay(files),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => MultipleImagesDisplay(files),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_ios/example/lib/open_text_page.dart b/packages/file_selector/file_selector_ios/example/lib/open_text_page.dart
index e7bbf8b..f21daf9 100644
--- a/packages/file_selector/file_selector_ios/example/lib/open_text_page.dart
+++ b/packages/file_selector/file_selector_ios/example/lib/open_text_page.dart
@@ -26,10 +26,12 @@
final String fileName = file.name;
final String fileContent = await file.readAsString();
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => TextDisplay(fileName, fileContent),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => TextDisplay(fileName, fileContent),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_linux/CHANGELOG.md b/packages/file_selector/file_selector_linux/CHANGELOG.md
index 00ccb06..6f7853c 100644
--- a/packages/file_selector/file_selector_linux/CHANGELOG.md
+++ b/packages/file_selector/file_selector_linux/CHANGELOG.md
@@ -1,5 +1,6 @@
## NEXT
+* Updates example code for `use_build_context_synchronously` lint.
* Updates minimum Flutter version to 3.0.
## 0.9.1
diff --git a/packages/file_selector/file_selector_linux/example/lib/get_directory_page.dart b/packages/file_selector/file_selector_linux/example/lib/get_directory_page.dart
index 0699dd1..f6390cc 100644
--- a/packages/file_selector/file_selector_linux/example/lib/get_directory_page.dart
+++ b/packages/file_selector/file_selector_linux/example/lib/get_directory_page.dart
@@ -21,10 +21,12 @@
// Operation was canceled by the user.
return;
}
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => TextDisplay(directoryPath),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => TextDisplay(directoryPath),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_linux/example/lib/get_multiple_directories_page.dart b/packages/file_selector/file_selector_linux/example/lib/get_multiple_directories_page.dart
index 66ab29c..087240b 100644
--- a/packages/file_selector/file_selector_linux/example/lib/get_multiple_directories_page.dart
+++ b/packages/file_selector/file_selector_linux/example/lib/get_multiple_directories_page.dart
@@ -21,10 +21,13 @@
// Operation was canceled by the user.
return;
}
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => TextDisplay(directoryPaths.join('\n')),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) =>
+ TextDisplay(directoryPaths.join('\n')),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_linux/example/lib/open_image_page.dart b/packages/file_selector/file_selector_linux/example/lib/open_image_page.dart
index b6ada56..9252d25 100644
--- a/packages/file_selector/file_selector_linux/example/lib/open_image_page.dart
+++ b/packages/file_selector/file_selector_linux/example/lib/open_image_page.dart
@@ -28,10 +28,12 @@
final String fileName = file.name;
final String filePath = file.path;
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => ImageDisplay(fileName, filePath),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => ImageDisplay(fileName, filePath),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_linux/example/lib/open_multiple_images_page.dart b/packages/file_selector/file_selector_linux/example/lib/open_multiple_images_page.dart
index c8e352a..787717c 100644
--- a/packages/file_selector/file_selector_linux/example/lib/open_multiple_images_page.dart
+++ b/packages/file_selector/file_selector_linux/example/lib/open_multiple_images_page.dart
@@ -32,10 +32,12 @@
// Operation was canceled by the user.
return;
}
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => MultipleImagesDisplay(files),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => MultipleImagesDisplay(files),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_linux/example/lib/open_text_page.dart b/packages/file_selector/file_selector_linux/example/lib/open_text_page.dart
index 4c88d74..97812f2 100644
--- a/packages/file_selector/file_selector_linux/example/lib/open_text_page.dart
+++ b/packages/file_selector/file_selector_linux/example/lib/open_text_page.dart
@@ -25,10 +25,12 @@
final String fileName = file.name;
final String fileContent = await file.readAsString();
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => TextDisplay(fileName, fileContent),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => TextDisplay(fileName, fileContent),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_macos/CHANGELOG.md b/packages/file_selector/file_selector_macos/CHANGELOG.md
index d9da2ec..4fdab0b 100644
--- a/packages/file_selector/file_selector_macos/CHANGELOG.md
+++ b/packages/file_selector/file_selector_macos/CHANGELOG.md
@@ -1,5 +1,6 @@
## NEXT
+* Updates example code for `use_build_context_synchronously` lint.
* Updates minimum Flutter version to 3.0.
## 0.9.0+4
diff --git a/packages/file_selector/file_selector_macos/example/lib/get_directory_page.dart b/packages/file_selector/file_selector_macos/example/lib/get_directory_page.dart
index a2a209d..a3f6f6a 100644
--- a/packages/file_selector/file_selector_macos/example/lib/get_directory_page.dart
+++ b/packages/file_selector/file_selector_macos/example/lib/get_directory_page.dart
@@ -21,10 +21,12 @@
// Operation was canceled by the user.
return;
}
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => TextDisplay(directoryPath),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => TextDisplay(directoryPath),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_macos/example/lib/open_image_page.dart b/packages/file_selector/file_selector_macos/example/lib/open_image_page.dart
index b6ada56..9252d25 100644
--- a/packages/file_selector/file_selector_macos/example/lib/open_image_page.dart
+++ b/packages/file_selector/file_selector_macos/example/lib/open_image_page.dart
@@ -28,10 +28,12 @@
final String fileName = file.name;
final String filePath = file.path;
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => ImageDisplay(fileName, filePath),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => ImageDisplay(fileName, filePath),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_macos/example/lib/open_multiple_images_page.dart b/packages/file_selector/file_selector_macos/example/lib/open_multiple_images_page.dart
index c8e352a..787717c 100644
--- a/packages/file_selector/file_selector_macos/example/lib/open_multiple_images_page.dart
+++ b/packages/file_selector/file_selector_macos/example/lib/open_multiple_images_page.dart
@@ -32,10 +32,12 @@
// Operation was canceled by the user.
return;
}
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => MultipleImagesDisplay(files),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => MultipleImagesDisplay(files),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_macos/example/lib/open_text_page.dart b/packages/file_selector/file_selector_macos/example/lib/open_text_page.dart
index 4c88d74..97812f2 100644
--- a/packages/file_selector/file_selector_macos/example/lib/open_text_page.dart
+++ b/packages/file_selector/file_selector_macos/example/lib/open_text_page.dart
@@ -25,10 +25,12 @@
final String fileName = file.name;
final String fileContent = await file.readAsString();
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => TextDisplay(fileName, fileContent),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => TextDisplay(fileName, fileContent),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_windows/CHANGELOG.md b/packages/file_selector/file_selector_windows/CHANGELOG.md
index ee007d4..1f9405d 100644
--- a/packages/file_selector/file_selector_windows/CHANGELOG.md
+++ b/packages/file_selector/file_selector_windows/CHANGELOG.md
@@ -1,5 +1,6 @@
## NEXT
+* Updates example code for `use_build_context_synchronously` lint.
* Updates minimum Flutter version to 3.0.
## 0.9.1+4
diff --git a/packages/file_selector/file_selector_windows/example/lib/get_directory_page.dart b/packages/file_selector/file_selector_windows/example/lib/get_directory_page.dart
index 0699dd1..f6390cc 100644
--- a/packages/file_selector/file_selector_windows/example/lib/get_directory_page.dart
+++ b/packages/file_selector/file_selector_windows/example/lib/get_directory_page.dart
@@ -21,10 +21,12 @@
// Operation was canceled by the user.
return;
}
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => TextDisplay(directoryPath),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => TextDisplay(directoryPath),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_windows/example/lib/open_image_page.dart b/packages/file_selector/file_selector_windows/example/lib/open_image_page.dart
index b6ada56..9252d25 100644
--- a/packages/file_selector/file_selector_windows/example/lib/open_image_page.dart
+++ b/packages/file_selector/file_selector_windows/example/lib/open_image_page.dart
@@ -28,10 +28,12 @@
final String fileName = file.name;
final String filePath = file.path;
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => ImageDisplay(fileName, filePath),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => ImageDisplay(fileName, filePath),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_windows/example/lib/open_multiple_images_page.dart b/packages/file_selector/file_selector_windows/example/lib/open_multiple_images_page.dart
index c8e352a..787717c 100644
--- a/packages/file_selector/file_selector_windows/example/lib/open_multiple_images_page.dart
+++ b/packages/file_selector/file_selector_windows/example/lib/open_multiple_images_page.dart
@@ -32,10 +32,12 @@
// Operation was canceled by the user.
return;
}
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => MultipleImagesDisplay(files),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => MultipleImagesDisplay(files),
+ );
+ }
}
@override
diff --git a/packages/file_selector/file_selector_windows/example/lib/open_text_page.dart b/packages/file_selector/file_selector_windows/example/lib/open_text_page.dart
index 4c88d74..97812f2 100644
--- a/packages/file_selector/file_selector_windows/example/lib/open_text_page.dart
+++ b/packages/file_selector/file_selector_windows/example/lib/open_text_page.dart
@@ -25,10 +25,12 @@
final String fileName = file.name;
final String fileContent = await file.readAsString();
- await showDialog<void>(
- context: context,
- builder: (BuildContext context) => TextDisplay(fileName, fileContent),
- );
+ if (context.mounted) {
+ await showDialog<void>(
+ context: context,
+ builder: (BuildContext context) => TextDisplay(fileName, fileContent),
+ );
+ }
}
@override
diff --git a/packages/image_picker/image_picker_windows/CHANGELOG.md b/packages/image_picker/image_picker_windows/CHANGELOG.md
index 5ea844d..e739db7 100644
--- a/packages/image_picker/image_picker_windows/CHANGELOG.md
+++ b/packages/image_picker/image_picker_windows/CHANGELOG.md
@@ -1,5 +1,6 @@
-## NEXT
+## 0.1.0+4
+* Updates example code for `use_build_context_synchronously` lint.
* Updates minimum Flutter version to 3.0.
## 0.1.0+3
diff --git a/packages/image_picker/image_picker_windows/example/lib/main.dart b/packages/image_picker/image_picker_windows/example/lib/main.dart
index e340a18..dae45a5 100644
--- a/packages/image_picker/image_picker_windows/example/lib/main.dart
+++ b/packages/image_picker/image_picker_windows/example/lib/main.dart
@@ -70,8 +70,8 @@
}
}
- Future<void> _handleMultiImagePicked(BuildContext? context) async {
- await _displayPickImageDialog(context!,
+ Future<void> _handleMultiImagePicked(BuildContext context) async {
+ await _displayPickImageDialog(context,
(double? maxWidth, double? maxHeight, int? quality) async {
try {
final List<PickedFile>? pickedFileList = await _picker.pickMultiImage(
@@ -91,8 +91,8 @@
}
Future<void> _handleSingleImagePicked(
- BuildContext? context, ImageSource source) async {
- await _displayPickImageDialog(context!,
+ BuildContext context, ImageSource source) async {
+ await _displayPickImageDialog(context,
(double? maxWidth, double? maxHeight, int? quality) async {
try {
final PickedFile? pickedFile = await _picker.pickImage(
@@ -113,18 +113,20 @@
}
Future<void> _onImageButtonPressed(ImageSource source,
- {BuildContext? context, bool isMultiImage = false}) async {
+ {required BuildContext context, bool isMultiImage = false}) async {
if (_controller != null) {
await _controller!.setVolume(0.0);
}
- if (_isVideo) {
- final PickedFile? file = await _picker.pickVideo(
- source: source, maxDuration: const Duration(seconds: 10));
- await _playVideo(file);
- } else if (isMultiImage) {
- await _handleMultiImagePicked(context);
- } else {
- await _handleSingleImagePicked(context, source);
+ if (context.mounted) {
+ if (_isVideo) {
+ final PickedFile? file = await _picker.pickVideo(
+ source: source, maxDuration: const Duration(seconds: 10));
+ await _playVideo(file);
+ } else if (isMultiImage) {
+ await _handleMultiImagePicked(context);
+ } else {
+ await _handleSingleImagePicked(context, source);
+ }
}
}
@@ -269,7 +271,7 @@
backgroundColor: Colors.red,
onPressed: () {
_isVideo = true;
- _onImageButtonPressed(ImageSource.gallery);
+ _onImageButtonPressed(ImageSource.gallery, context: context);
},
heroTag: 'video0',
tooltip: 'Pick Video from gallery',
@@ -282,7 +284,7 @@
backgroundColor: Colors.red,
onPressed: () {
_isVideo = true;
- _onImageButtonPressed(ImageSource.camera);
+ _onImageButtonPressed(ImageSource.camera, context: context);
},
heroTag: 'video1',
tooltip: 'Take a Video',
diff --git a/packages/image_picker/image_picker_windows/pubspec.yaml b/packages/image_picker/image_picker_windows/pubspec.yaml
index e639bcb..07fa673 100644
--- a/packages/image_picker/image_picker_windows/pubspec.yaml
+++ b/packages/image_picker/image_picker_windows/pubspec.yaml
@@ -2,7 +2,7 @@
description: Windows platform implementation of image_picker
repository: https://github.com/flutter/plugins/tree/main/packages/image_picker/image_picker_windows
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+image_picker%22
-version: 0.1.0+3
+version: 0.1.0+4
environment:
sdk: ">=2.12.0 <3.0.0"
diff --git a/packages/in_app_purchase/in_app_purchase/CHANGELOG.md b/packages/in_app_purchase/in_app_purchase/CHANGELOG.md
index 1d76f14..38355e3 100644
--- a/packages/in_app_purchase/in_app_purchase/CHANGELOG.md
+++ b/packages/in_app_purchase/in_app_purchase/CHANGELOG.md
@@ -1,5 +1,6 @@
-## NEXT
+## 3.1.2
+* Updates example code for `use_build_context_synchronously` lint.
* Updates minimum Flutter version to 3.0.
## 3.1.1
diff --git a/packages/in_app_purchase/in_app_purchase/example/lib/main.dart b/packages/in_app_purchase/in_app_purchase/example/lib/main.dart
index 9e53b4b..aec19fe 100644
--- a/packages/in_app_purchase/in_app_purchase/example/lib/main.dart
+++ b/packages/in_app_purchase/in_app_purchase/example/lib/main.dart
@@ -468,17 +468,19 @@
await androidAddition.launchPriceChangeConfirmationFlow(
sku: 'purchaseId',
);
- if (priceChangeConfirmationResult.responseCode == BillingResponse.ok) {
- ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
- content: Text('Price change accepted'),
- ));
- } else {
- ScaffoldMessenger.of(context).showSnackBar(SnackBar(
- content: Text(
- priceChangeConfirmationResult.debugMessage ??
- 'Price change failed with code ${priceChangeConfirmationResult.responseCode}',
- ),
- ));
+ if (context.mounted) {
+ if (priceChangeConfirmationResult.responseCode == BillingResponse.ok) {
+ ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
+ content: Text('Price change accepted'),
+ ));
+ } else {
+ ScaffoldMessenger.of(context).showSnackBar(SnackBar(
+ content: Text(
+ priceChangeConfirmationResult.debugMessage ??
+ 'Price change failed with code ${priceChangeConfirmationResult.responseCode}',
+ ),
+ ));
+ }
}
}
if (Platform.isIOS) {
diff --git a/packages/in_app_purchase/in_app_purchase/pubspec.yaml b/packages/in_app_purchase/in_app_purchase/pubspec.yaml
index 71d415c..598ab90 100644
--- a/packages/in_app_purchase/in_app_purchase/pubspec.yaml
+++ b/packages/in_app_purchase/in_app_purchase/pubspec.yaml
@@ -2,7 +2,7 @@
description: A Flutter plugin for in-app purchases. Exposes APIs for making in-app purchases through the App Store and Google Play.
repository: https://github.com/flutter/plugins/tree/main/packages/in_app_purchase/in_app_purchase
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+in_app_purchase%22
-version: 3.1.1
+version: 3.1.2
environment:
sdk: ">=2.12.0 <3.0.0"
diff --git a/packages/webview_flutter/webview_flutter/CHANGELOG.md b/packages/webview_flutter/webview_flutter/CHANGELOG.md
index a01b9f4..6d2e860 100644
--- a/packages/webview_flutter/webview_flutter/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 4.0.3
+
+* Updates example code for `use_build_context_synchronously` lint.
+
## 4.0.2
* Updates code for stricter lint checks.
diff --git a/packages/webview_flutter/webview_flutter/example/lib/main.dart b/packages/webview_flutter/webview_flutter/example/lib/main.dart
index 239b417..ec1ce4e 100644
--- a/packages/webview_flutter/webview_flutter/example/lib/main.dart
+++ b/packages/webview_flutter/webview_flutter/example/lib/main.dart
@@ -180,9 +180,11 @@
return FloatingActionButton(
onPressed: () async {
final String? url = await _controller.currentUrl();
- ScaffoldMessenger.of(context).showSnackBar(
- SnackBar(content: Text('Favorited $url')),
- );
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(
+ SnackBar(content: Text('Favorited $url')),
+ );
+ }
},
child: const Icon(Icons.favorite),
);
@@ -330,25 +332,29 @@
Future<void> _onListCookies(BuildContext context) async {
final String cookies = await webViewController
.runJavaScriptReturningResult('document.cookie') as String;
- ScaffoldMessenger.of(context).showSnackBar(SnackBar(
- content: Column(
- mainAxisAlignment: MainAxisAlignment.end,
- mainAxisSize: MainAxisSize.min,
- children: <Widget>[
- const Text('Cookies:'),
- _getCookieList(cookies),
- ],
- ),
- ));
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(SnackBar(
+ content: Column(
+ mainAxisAlignment: MainAxisAlignment.end,
+ mainAxisSize: MainAxisSize.min,
+ children: <Widget>[
+ const Text('Cookies:'),
+ _getCookieList(cookies),
+ ],
+ ),
+ ));
+ }
}
Future<void> _onAddToCache(BuildContext context) async {
await webViewController.runJavaScript(
'caches.open("test_caches_entry"); localStorage["test_localStorage"] = "dummy_entry";',
);
- ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
- content: Text('Added a test entry to cache.'),
- ));
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
+ content: Text('Added a test entry to cache.'),
+ ));
+ }
}
Future<void> _onListCache() {
@@ -361,9 +367,11 @@
Future<void> _onClearCache(BuildContext context) async {
await webViewController.clearCache();
await webViewController.clearLocalStorage();
- ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
- content: Text('Cache cleared.'),
- ));
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
+ content: Text('Cache cleared.'),
+ ));
+ }
}
Future<void> _onClearCookies(BuildContext context) async {
@@ -372,9 +380,11 @@
if (!hadCookies) {
message = 'There are no cookies.';
}
- ScaffoldMessenger.of(context).showSnackBar(SnackBar(
- content: Text(message),
- ));
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(SnackBar(
+ content: Text(message),
+ ));
+ }
}
Future<void> _onNavigationDelegateExample() {
@@ -467,10 +477,11 @@
if (await webViewController.canGoBack()) {
await webViewController.goBack();
} else {
- ScaffoldMessenger.of(context).showSnackBar(
- const SnackBar(content: Text('No back history item')),
- );
- return;
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(
+ const SnackBar(content: Text('No back history item')),
+ );
+ }
}
},
),
@@ -480,10 +491,11 @@
if (await webViewController.canGoForward()) {
await webViewController.goForward();
} else {
- ScaffoldMessenger.of(context).showSnackBar(
- const SnackBar(content: Text('No forward history item')),
- );
- return;
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(
+ const SnackBar(content: Text('No forward history item')),
+ );
+ }
}
},
),
diff --git a/packages/webview_flutter/webview_flutter/pubspec.yaml b/packages/webview_flutter/webview_flutter/pubspec.yaml
index 99133dd..a494f9e 100644
--- a/packages/webview_flutter/webview_flutter/pubspec.yaml
+++ b/packages/webview_flutter/webview_flutter/pubspec.yaml
@@ -2,7 +2,7 @@
description: A Flutter plugin that provides a WebView widget on Android and iOS.
repository: https://github.com/flutter/plugins/tree/main/packages/webview_flutter/webview_flutter
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22
-version: 4.0.2
+version: 4.0.3
environment:
sdk: ">=2.17.0 <3.0.0"
diff --git a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md
index 569244b..e1786d6 100644
--- a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 3.2.2
+
+* Updates example code for `use_build_context_synchronously` lint.
+
## 3.2.1
* Updates code for stricter lint checks.
diff --git a/packages/webview_flutter/webview_flutter_android/example/lib/main.dart b/packages/webview_flutter/webview_flutter_android/example/lib/main.dart
index fe6d723..75f01b4 100644
--- a/packages/webview_flutter/webview_flutter_android/example/lib/main.dart
+++ b/packages/webview_flutter/webview_flutter_android/example/lib/main.dart
@@ -164,9 +164,11 @@
return FloatingActionButton(
onPressed: () async {
final String? url = await _controller.currentUrl();
- ScaffoldMessenger.of(context).showSnackBar(
- SnackBar(content: Text('Favorited $url')),
- );
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(
+ SnackBar(content: Text('Favorited $url')),
+ );
+ }
},
child: const Icon(Icons.favorite),
);
@@ -319,25 +321,29 @@
Future<void> _onListCookies(BuildContext context) async {
final String cookies = await webViewController
.runJavaScriptReturningResult('document.cookie') as String;
- ScaffoldMessenger.of(context).showSnackBar(SnackBar(
- content: Column(
- mainAxisAlignment: MainAxisAlignment.end,
- mainAxisSize: MainAxisSize.min,
- children: <Widget>[
- const Text('Cookies:'),
- _getCookieList(cookies),
- ],
- ),
- ));
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(SnackBar(
+ content: Column(
+ mainAxisAlignment: MainAxisAlignment.end,
+ mainAxisSize: MainAxisSize.min,
+ children: <Widget>[
+ const Text('Cookies:'),
+ _getCookieList(cookies),
+ ],
+ ),
+ ));
+ }
}
Future<void> _onAddToCache(BuildContext context) async {
await webViewController.runJavaScript(
'caches.open("test_caches_entry"); localStorage["test_localStorage"] = "dummy_entry";',
);
- ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
- content: Text('Added a test entry to cache.'),
- ));
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
+ content: Text('Added a test entry to cache.'),
+ ));
+ }
}
Future<void> _onListCache() {
@@ -350,9 +356,11 @@
Future<void> _onClearCache(BuildContext context) async {
await webViewController.clearCache();
await webViewController.clearLocalStorage();
- ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
- content: Text('Cache cleared.'),
- ));
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
+ content: Text('Cache cleared.'),
+ ));
+ }
}
Future<void> _onClearCookies(BuildContext context) async {
@@ -361,9 +369,11 @@
if (!hadCookies) {
message = 'There are no cookies.';
}
- ScaffoldMessenger.of(context).showSnackBar(SnackBar(
- content: Text(message),
- ));
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(SnackBar(
+ content: Text(message),
+ ));
+ }
}
Future<void> _onNavigationDelegateExample() {
@@ -462,10 +472,11 @@
if (await webViewController.canGoBack()) {
await webViewController.goBack();
} else {
- ScaffoldMessenger.of(context).showSnackBar(
- const SnackBar(content: Text('No back history item')),
- );
- return;
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(
+ const SnackBar(content: Text('No back history item')),
+ );
+ }
}
},
),
@@ -475,10 +486,11 @@
if (await webViewController.canGoForward()) {
await webViewController.goForward();
} else {
- ScaffoldMessenger.of(context).showSnackBar(
- const SnackBar(content: Text('No forward history item')),
- );
- return;
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(
+ const SnackBar(content: Text('No forward history item')),
+ );
+ }
}
},
),
diff --git a/packages/webview_flutter/webview_flutter_android/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/pubspec.yaml
index eb761cc..81255df 100644
--- a/packages/webview_flutter/webview_flutter_android/pubspec.yaml
+++ b/packages/webview_flutter/webview_flutter_android/pubspec.yaml
@@ -2,7 +2,7 @@
description: A Flutter plugin that provides a WebView widget on Android.
repository: https://github.com/flutter/plugins/tree/main/packages/webview_flutter/webview_flutter_android
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22
-version: 3.2.1
+version: 3.2.2
environment:
sdk: ">=2.17.0 <3.0.0"
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md b/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md
index b4ad2a1..a9cb87f 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 3.0.3
+
+* Updates example code for `use_build_context_synchronously` lint.
+
## 3.0.2
* Updates code for stricter lint checks.
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/lib/main.dart b/packages/webview_flutter/webview_flutter_wkwebview/example/lib/main.dart
index 84aced1..aef7ece 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/example/lib/main.dart
+++ b/packages/webview_flutter/webview_flutter_wkwebview/example/lib/main.dart
@@ -165,9 +165,11 @@
return FloatingActionButton(
onPressed: () async {
final String? url = await _controller.currentUrl();
- ScaffoldMessenger.of(context).showSnackBar(
- SnackBar(content: Text('Favorited $url')),
- );
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(
+ SnackBar(content: Text('Favorited $url')),
+ );
+ }
},
child: const Icon(Icons.favorite),
);
@@ -320,25 +322,29 @@
Future<void> _onListCookies(BuildContext context) async {
final String cookies = await webViewController
.runJavaScriptReturningResult('document.cookie') as String;
- ScaffoldMessenger.of(context).showSnackBar(SnackBar(
- content: Column(
- mainAxisAlignment: MainAxisAlignment.end,
- mainAxisSize: MainAxisSize.min,
- children: <Widget>[
- const Text('Cookies:'),
- _getCookieList(cookies),
- ],
- ),
- ));
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(SnackBar(
+ content: Column(
+ mainAxisAlignment: MainAxisAlignment.end,
+ mainAxisSize: MainAxisSize.min,
+ children: <Widget>[
+ const Text('Cookies:'),
+ _getCookieList(cookies),
+ ],
+ ),
+ ));
+ }
}
Future<void> _onAddToCache(BuildContext context) async {
await webViewController.runJavaScript(
'caches.open("test_caches_entry"); localStorage["test_localStorage"] = "dummy_entry";',
);
- ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
- content: Text('Added a test entry to cache.'),
- ));
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
+ content: Text('Added a test entry to cache.'),
+ ));
+ }
}
Future<void> _onListCache() {
@@ -351,9 +357,11 @@
Future<void> _onClearCache(BuildContext context) async {
await webViewController.clearCache();
await webViewController.clearLocalStorage();
- ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
- content: Text('Cache cleared.'),
- ));
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
+ content: Text('Cache cleared.'),
+ ));
+ }
}
Future<void> _onClearCookies(BuildContext context) async {
@@ -362,9 +370,11 @@
if (!hadCookies) {
message = 'There are no cookies.';
}
- ScaffoldMessenger.of(context).showSnackBar(SnackBar(
- content: Text(message),
- ));
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(SnackBar(
+ content: Text(message),
+ ));
+ }
}
Future<void> _onNavigationDelegateExample() {
@@ -463,10 +473,11 @@
if (await webViewController.canGoBack()) {
await webViewController.goBack();
} else {
- ScaffoldMessenger.of(context).showSnackBar(
- const SnackBar(content: Text('No back history item')),
- );
- return;
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(
+ const SnackBar(content: Text('No back history item')),
+ );
+ }
}
},
),
@@ -476,10 +487,11 @@
if (await webViewController.canGoForward()) {
await webViewController.goForward();
} else {
- ScaffoldMessenger.of(context).showSnackBar(
- const SnackBar(content: Text('No forward history item')),
- );
- return;
+ if (context.mounted) {
+ ScaffoldMessenger.of(context).showSnackBar(
+ const SnackBar(content: Text('No forward history item')),
+ );
+ }
}
},
),
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml
index 85440f6..c41bce1 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml
+++ b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml
@@ -2,7 +2,7 @@
description: A Flutter plugin that provides a WebView widget based on Apple's WKWebView control.
repository: https://github.com/flutter/plugins/tree/main/packages/webview_flutter/webview_flutter_wkwebview
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22
-version: 3.0.2
+version: 3.0.3
environment:
sdk: ">=2.17.0 <3.0.0"