From 91c68e5c4deb684ef24e513c7d579c7363f5e1e6 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Fri, 24 Feb 2023 12:21:00 -0500 Subject: [PATCH 01/12] Add new check and tests --- script/tool/lib/src/lint_android_command.dart | 32 ++++++++ .../tool/test/lint_android_command_test.dart | 74 +++++++++++++++++++ 2 files changed, 106 insertions(+) diff --git a/script/tool/lib/src/lint_android_command.dart b/script/tool/lib/src/lint_android_command.dart index eb78ce89168..f973cff29ee 100644 --- a/script/tool/lib/src/lint_android_command.dart +++ b/script/tool/lib/src/lint_android_command.dart @@ -60,6 +60,38 @@ class LintAndroidCommand extends PackageLoopingCommand { if (exitCode != 0) { failed = true; } + + // In addition to running the Gradle lint step, also ensure that the + // example project is configured to build with javac lints enabled and + // treated as errors. + final List gradleBuildContents = example + .platformDirectory(FlutterPlatform.android) + .childFile('build.gradle') + .readAsLinesSync(); + // The check here is intentionally somewhat loose, to allow for the + // possibility of variations (e.g., not using Xlint:all in some cases, or + // passing other arguments). + if (!gradleBuildContents.any( + (String line) => line.contains('project(":$packageName")')) || + !gradleBuildContents.any((String line) => + line.contains('options.compilerArgs') && + line.contains('-Xlint') && + line.contains('-Werror'))) { + failed = true; + printError('The example ' + '${getRelativePosixPath(example.directory, from: package.directory)} ' + 'is not configured to treat javac lints and warnings as errors. ' + 'Please add the following to the "allprojects" section:'); + print(''' + gradle.projectsEvaluated { + project(":${package.directory.basename}") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } +'''); + } } return failed ? PackageResult.fail() : PackageResult.success(); diff --git a/script/tool/test/lint_android_command_test.dart b/script/tool/test/lint_android_command_test.dart index e4a6c5c859e..2109cbf7f60 100644 --- a/script/tool/test/lint_android_command_test.dart +++ b/script/tool/test/lint_android_command_test.dart @@ -39,6 +39,40 @@ void main() { runner.addCommand(command); }); + void writeFakeBuildGradle(RepositoryPackage example, String pluginName, + {bool warningsConfigured = true}) { + final String warningConfig = ''' + gradle.projectsEvaluated { + project(":$pluginName") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } +'''; + example + .platformDirectory(FlutterPlatform.android) + .childFile('build.gradle') + .writeAsStringSync(''' +buildscript { + repositories { + google() + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:7.0.1' + } +} +allprojects { + repositories { + google() + mavenCentral() + } + ${warningsConfigured ? warningConfig : ''} +} +'''); + } + test('runs gradle lint', () async { final RepositoryPackage plugin = createFakePlugin('plugin1', packagesDir, extraFiles: [ @@ -46,6 +80,7 @@ void main() { ], platformSupport: { platformAndroid: const PlatformDetails(PlatformSupport.inline) }); + writeFakeBuildGradle(plugin.getExamples().first, 'plugin1'); final Directory androidDir = plugin.getExamples().first.platformDirectory(FlutterPlatform.android); @@ -83,6 +118,9 @@ void main() { platformSupport: { platformAndroid: const PlatformDetails(PlatformSupport.inline) }); + for (final RepositoryPackage example in plugin.getExamples()) { + writeFakeBuildGradle(example, 'plugin1'); + } final Iterable exampleAndroidDirs = plugin.getExamples().map( (RepositoryPackage example) => @@ -140,6 +178,7 @@ void main() { ], platformSupport: { platformAndroid: const PlatformDetails(PlatformSupport.inline) }); + writeFakeBuildGradle(plugin.getExamples().first, 'plugin1'); final String gradlewPath = plugin .getExamples() @@ -167,6 +206,41 @@ void main() { )); }); + test('fails if javac lint-warnings-as-errors is missing', () async { + final RepositoryPackage plugin = + createFakePlugin('plugin1', packagesDir, extraFiles: [ + 'example/android/gradlew', + ], platformSupport: { + platformAndroid: const PlatformDetails(PlatformSupport.inline) + }); + writeFakeBuildGradle(plugin.getExamples().first, 'plugin1', + warningsConfigured: false); + + final String gradlewPath = plugin + .getExamples() + .first + .platformDirectory(FlutterPlatform.android) + .childFile('gradlew') + .path; + + Error? commandError; + final List output = await runCapturingPrint( + runner, ['lint-android'], errorHandler: (Error e) { + commandError = e; + }); + + expect(commandError, isA()); + expect( + output, + containsAllInOrder( + [ + contains('The example example is not configured to treat javac ' + 'lints and warnings as errors.'), + contains('The following packages had errors:'), + ], + )); + }); + test('skips non-Android plugins', () async { createFakePlugin('plugin1', packagesDir); From 734eb5412f4fbbe76c7844c2bad6fb0c024a7667 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Fri, 24 Feb 2023 12:28:51 -0500 Subject: [PATCH 02/12] Enable werror everywhere --- .../camera_android/android/lint-baseline.xml | 94 +------------------ .../example/android/build.gradle | 11 +++ .../example/android/build.gradle | 11 +++ .../espresso/example/android/build.gradle | 11 +++ .../example/android/build.gradle | 11 +++ .../example/android/build.gradle | 11 +++ .../example/android/build.gradle | 11 +++ .../example/android/build.gradle | 11 +++ .../example/android/build.gradle | 11 +++ .../example/android/build.gradle | 11 +++ .../example/android/build.gradle | 11 +++ .../example/android/build.gradle | 11 +++ .../example/android/build.gradle | 11 +++ .../example/android/build.gradle | 11 +++ .../example/android/build.gradle | 11 +++ .../example/android/build.gradle | 11 +++ 16 files changed, 168 insertions(+), 91 deletions(-) diff --git a/packages/camera/camera_android/android/lint-baseline.xml b/packages/camera/camera_android/android/lint-baseline.xml index 4ddaafa8798..9d007180db4 100644 --- a/packages/camera/camera_android/android/lint-baseline.xml +++ b/packages/camera/camera_android/android/lint-baseline.xml @@ -1,93 +1,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -107,7 +19,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> diff --git a/packages/camera/camera_android/example/android/build.gradle b/packages/camera/camera_android/example/android/build.gradle index c21bff8e0a2..ea2d54c80dc 100644 --- a/packages/camera/camera_android/example/android/build.gradle +++ b/packages/camera/camera_android/example/android/build.gradle @@ -14,6 +14,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":camera_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/camera/camera_android_camerax/example/android/build.gradle b/packages/camera/camera_android_camerax/example/android/build.gradle index 8640e4de86a..9458d2a53c9 100644 --- a/packages/camera/camera_android_camerax/example/android/build.gradle +++ b/packages/camera/camera_android_camerax/example/android/build.gradle @@ -16,6 +16,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":camera_android_camerax") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/espresso/example/android/build.gradle b/packages/espresso/example/android/build.gradle index c21bff8e0a2..1e98b510844 100644 --- a/packages/espresso/example/android/build.gradle +++ b/packages/espresso/example/android/build.gradle @@ -14,6 +14,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":espresso") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/flutter_plugin_android_lifecycle/example/android/build.gradle b/packages/flutter_plugin_android_lifecycle/example/android/build.gradle index c21bff8e0a2..3bfdb42da0f 100644 --- a/packages/flutter_plugin_android_lifecycle/example/android/build.gradle +++ b/packages/flutter_plugin_android_lifecycle/example/android/build.gradle @@ -14,6 +14,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":flutter_plugin_android_lifecycle") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle b/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle index c21bff8e0a2..e93f042769a 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle +++ b/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle @@ -14,6 +14,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":google_maps_flutter_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/google_sign_in/google_sign_in_android/example/android/build.gradle b/packages/google_sign_in/google_sign_in_android/example/android/build.gradle index c21bff8e0a2..e457eb97f06 100644 --- a/packages/google_sign_in/google_sign_in_android/example/android/build.gradle +++ b/packages/google_sign_in/google_sign_in_android/example/android/build.gradle @@ -14,6 +14,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":google_sign_in_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/image_picker/image_picker_android/example/android/build.gradle b/packages/image_picker/image_picker_android/example/android/build.gradle index e29a4431f2a..e1444e4a6ed 100755 --- a/packages/image_picker/image_picker_android/example/android/build.gradle +++ b/packages/image_picker/image_picker_android/example/android/build.gradle @@ -14,6 +14,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":image_picker_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle b/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle index c21bff8e0a2..d1cfc9530e7 100644 --- a/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle +++ b/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle @@ -14,6 +14,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":in_app_purchase_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/local_auth/local_auth_android/example/android/build.gradle b/packages/local_auth/local_auth_android/example/android/build.gradle index 3593d963655..8ee419166d4 100644 --- a/packages/local_auth/local_auth_android/example/android/build.gradle +++ b/packages/local_auth/local_auth_android/example/android/build.gradle @@ -14,6 +14,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":local_auth_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/path_provider/path_provider_android/example/android/build.gradle b/packages/path_provider/path_provider_android/example/android/build.gradle index c21bff8e0a2..23c9c311c01 100644 --- a/packages/path_provider/path_provider_android/example/android/build.gradle +++ b/packages/path_provider/path_provider_android/example/android/build.gradle @@ -14,6 +14,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":path_provider_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/quick_actions/quick_actions_android/example/android/build.gradle b/packages/quick_actions/quick_actions_android/example/android/build.gradle index c21bff8e0a2..a1efd9a0ea8 100644 --- a/packages/quick_actions/quick_actions_android/example/android/build.gradle +++ b/packages/quick_actions/quick_actions_android/example/android/build.gradle @@ -14,6 +14,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":quick_actions_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/shared_preferences/shared_preferences_android/example/android/build.gradle b/packages/shared_preferences/shared_preferences_android/example/android/build.gradle index 21d50697b9e..0482581d06c 100644 --- a/packages/shared_preferences/shared_preferences_android/example/android/build.gradle +++ b/packages/shared_preferences/shared_preferences_android/example/android/build.gradle @@ -16,6 +16,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":shared_preferences_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/url_launcher/url_launcher_android/example/android/build.gradle b/packages/url_launcher/url_launcher_android/example/android/build.gradle index c21bff8e0a2..be01b887eb7 100644 --- a/packages/url_launcher/url_launcher_android/example/android/build.gradle +++ b/packages/url_launcher/url_launcher_android/example/android/build.gradle @@ -14,6 +14,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":url_launcher_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/video_player/video_player_android/example/android/build.gradle b/packages/video_player/video_player_android/example/android/build.gradle index c21bff8e0a2..2ddb06fd75e 100644 --- a/packages/video_player/video_player_android/example/android/build.gradle +++ b/packages/video_player/video_player_android/example/android/build.gradle @@ -14,6 +14,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":video_player_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' diff --git a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle index e29a4431f2a..1506b7f6ebf 100644 --- a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle +++ b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle @@ -14,6 +14,17 @@ allprojects { google() mavenCentral() } + // Build the plugin project with warnings enabled. This is here rather than + // in the plugin itself to avoid breaking clients that have different + // warnings (e.g., deprecation warnings from a newer SDK than this project + // builds with). + gradle.projectsEvaluated { + project(":webview_flutter_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } + } } rootProject.buildDir = '../build' From 88d046c7b9b27cf013d9c33de173e0e5a9c4fde6 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Fri, 24 Feb 2023 12:59:08 -0500 Subject: [PATCH 03/12] Fix or temporarily disable to get everything green --- .../example/android/build.gradle | 4 ++- .../ProcessCameraProviderHostApiImpl.java | 3 +-- .../espresso/example/android/build.gradle | 4 ++- .../flutter/plugins/googlemaps/Convert.java | 7 +++--- .../example/android/build.gradle | 4 ++- .../imagepicker/ImagePickerDelegate.java | 25 +++++++++---------- .../imagepicker/ImagePickerPlugin.java | 6 ++--- .../example/android/build.gradle | 4 ++- .../plugins/localauth/LocalAuthPlugin.java | 3 +-- .../example/android/build.gradle | 4 ++- .../example/android/build.gradle | 4 ++- 11 files changed, 38 insertions(+), 30 deletions(-) diff --git a/packages/camera/camera_android/example/android/build.gradle b/packages/camera/camera_android/example/android/build.gradle index ea2d54c80dc..0d216252742 100644 --- a/packages/camera/camera_android/example/android/build.gradle +++ b/packages/camera/camera_android/example/android/build.gradle @@ -21,7 +21,9 @@ allprojects { gradle.projectsEvaluated { project(":camera_android") { tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" + // TODO(stuartmorgan): Enable this. See + // https://github.com/flutter/flutter/issues/91868 + //options.compilerArgs << "-Xlint:all" << "-Werror" } } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java index e7036e7090c..3ee07d3b7db 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java @@ -121,8 +121,7 @@ public Long bindToLifecycle( } Camera camera = - processCameraProvider.bindToLifecycle( - (LifecycleOwner) lifecycleOwner, cameraSelector, useCases); + processCameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, useCases); final CameraFlutterApiImpl cameraFlutterApi = new CameraFlutterApiImpl(binaryMessenger, instanceManager); diff --git a/packages/espresso/example/android/build.gradle b/packages/espresso/example/android/build.gradle index 1e98b510844..cabf96f857b 100644 --- a/packages/espresso/example/android/build.gradle +++ b/packages/espresso/example/android/build.gradle @@ -21,7 +21,9 @@ allprojects { gradle.projectsEvaluated { project(":espresso") { tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" + // TODO(stuartmorgan): Enable this. See + // https://github.com/flutter/flutter/issues/91868 + //options.compilerArgs << "-Xlint:all" << "-Werror" } } } diff --git a/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/Convert.java b/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/Convert.java index 22c8f4d24be..a7e117e9c28 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/Convert.java +++ b/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/Convert.java @@ -25,7 +25,6 @@ import com.google.android.gms.maps.model.RoundCap; import com.google.android.gms.maps.model.SquareCap; import com.google.android.gms.maps.model.Tile; -import io.flutter.view.FlutterMain; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -50,15 +49,15 @@ private static BitmapDescriptor toBitmapDescriptor(Object o) { case "fromAsset": if (data.size() == 2) { return BitmapDescriptorFactory.fromAsset( - FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); + io.flutter.view.FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); } else { return BitmapDescriptorFactory.fromAsset( - FlutterMain.getLookupKeyForAsset(toString(data.get(1)), toString(data.get(2)))); + io.flutter.view.FlutterMain.getLookupKeyForAsset(toString(data.get(1)), toString(data.get(2)))); } case "fromAssetImage": if (data.size() == 3) { return BitmapDescriptorFactory.fromAsset( - FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); + io.flutter.view.FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); } else { throw new IllegalArgumentException( "'fromAssetImage' Expected exactly 3 arguments, got: " + data.size()); diff --git a/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle b/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle index e93f042769a..599b2c4417a 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle +++ b/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle @@ -21,7 +21,9 @@ allprojects { gradle.projectsEvaluated { project(":google_maps_flutter_android") { tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" + // TODO(stuartmorgan): Enable this. See + // https://github.com/flutter/flutter/issues/91868 + //options.compilerArgs << "-Xlint:all" << "-Werror" } } } diff --git a/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerDelegate.java b/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerDelegate.java index cb4beacf9df..5a0c3fb3133 100644 --- a/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerDelegate.java +++ b/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerDelegate.java @@ -29,12 +29,6 @@ import java.util.Map; import java.util.UUID; -enum CameraDevice { - REAR, - - FRONT -} - /** * A delegate class doing the heavy lifting for the plugin. * @@ -83,6 +77,11 @@ public class ImagePickerDelegate @VisibleForTesting static final int REQUEST_CODE_TAKE_VIDEO_WITH_CAMERA = 2353; @VisibleForTesting static final int REQUEST_CAMERA_VIDEO_PERMISSION = 2355; + public enum CameraDevice { + REAR, + FRONT + } + @VisibleForTesting final String fileProviderName; private final Activity activity; @@ -219,21 +218,21 @@ void saveStateBeforeResult() { void retrieveLostImage(MethodChannel.Result result) { Map resultMap = cache.getCacheMap(); @SuppressWarnings("unchecked") - ArrayList pathList = (ArrayList) resultMap.get(cache.MAP_KEY_PATH_LIST); + ArrayList pathList = (ArrayList) resultMap.get(ImagePickerCache.MAP_KEY_PATH_LIST); ArrayList newPathList = new ArrayList<>(); if (pathList != null) { for (String path : pathList) { - Double maxWidth = (Double) resultMap.get(cache.MAP_KEY_MAX_WIDTH); - Double maxHeight = (Double) resultMap.get(cache.MAP_KEY_MAX_HEIGHT); + Double maxWidth = (Double) resultMap.get(ImagePickerCache.MAP_KEY_MAX_WIDTH); + Double maxHeight = (Double) resultMap.get(ImagePickerCache.MAP_KEY_MAX_HEIGHT); int imageQuality = - resultMap.get(cache.MAP_KEY_IMAGE_QUALITY) == null + resultMap.get(ImagePickerCache.MAP_KEY_IMAGE_QUALITY) == null ? 100 - : (int) resultMap.get(cache.MAP_KEY_IMAGE_QUALITY); + : (int) resultMap.get(ImagePickerCache.MAP_KEY_IMAGE_QUALITY); newPathList.add(imageResizer.resizeImageIfNeeded(path, maxWidth, maxHeight, imageQuality)); } - resultMap.put(cache.MAP_KEY_PATH_LIST, newPathList); - resultMap.put(cache.MAP_KEY_PATH, newPathList.get(newPathList.size() - 1)); + resultMap.put(ImagePickerCache.MAP_KEY_PATH_LIST, newPathList); + resultMap.put(ImagePickerCache.MAP_KEY_PATH, newPathList.get(newPathList.size() - 1)); } if (resultMap.isEmpty()) { result.success(null); diff --git a/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerPlugin.java b/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerPlugin.java index 8336a145e93..a1ee1e2f404 100644 --- a/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerPlugin.java +++ b/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerPlugin.java @@ -342,12 +342,12 @@ public void onMethodCall(MethodCall call, MethodChannel.Result rawResult) { int imageSource; ImagePickerDelegate delegate = activityState.getDelegate(); if (call.argument("cameraDevice") != null) { - CameraDevice device; + ImagePickerDelegate.CameraDevice device; int deviceIntValue = call.argument("cameraDevice"); if (deviceIntValue == CAMERA_DEVICE_FRONT) { - device = CameraDevice.FRONT; + device = ImagePickerDelegate.CameraDevice.FRONT; } else { - device = CameraDevice.REAR; + device = ImagePickerDelegate.CameraDevice.REAR; } delegate.setCameraDevice(device); } diff --git a/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle b/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle index d1cfc9530e7..a89e84d955a 100644 --- a/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle +++ b/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle @@ -21,7 +21,9 @@ allprojects { gradle.projectsEvaluated { project(":in_app_purchase_android") { tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" + // TODO(stuartmorgan): Enable this. See + // https://github.com/flutter/flutter/issues/91868 + //options.compilerArgs << "-Xlint:all" << "-Werror" } } } diff --git a/packages/local_auth/local_auth_android/android/src/main/java/io/flutter/plugins/localauth/LocalAuthPlugin.java b/packages/local_auth/local_auth_android/android/src/main/java/io/flutter/plugins/localauth/LocalAuthPlugin.java index e545df01e7c..d724b38c0a7 100644 --- a/packages/local_auth/local_auth_android/android/src/main/java/io/flutter/plugins/localauth/LocalAuthPlugin.java +++ b/packages/local_auth/local_auth_android/android/src/main/java/io/flutter/plugins/localauth/LocalAuthPlugin.java @@ -26,7 +26,6 @@ import io.flutter.plugin.common.MethodChannel.MethodCallHandler; import io.flutter.plugin.common.MethodChannel.Result; import io.flutter.plugin.common.PluginRegistry; -import io.flutter.plugin.common.PluginRegistry.Registrar; import io.flutter.plugins.localauth.AuthenticationHelper.AuthCompletionHandler; import java.util.ArrayList; import java.util.concurrent.atomic.AtomicBoolean; @@ -78,7 +77,7 @@ public boolean onActivityResult(int requestCode, int resultCode, Intent data) { * io.flutter.plugin.common.BinaryMessenger}. */ @SuppressWarnings("deprecation") - public static void registerWith(Registrar registrar) { + public static void registerWith(PluginRegistry.Registrar registrar) { final MethodChannel channel = new MethodChannel(registrar.messenger(), CHANNEL_NAME); final LocalAuthPlugin plugin = new LocalAuthPlugin(); plugin.activity = registrar.activity(); diff --git a/packages/video_player/video_player_android/example/android/build.gradle b/packages/video_player/video_player_android/example/android/build.gradle index 2ddb06fd75e..7c60292d518 100644 --- a/packages/video_player/video_player_android/example/android/build.gradle +++ b/packages/video_player/video_player_android/example/android/build.gradle @@ -21,7 +21,9 @@ allprojects { gradle.projectsEvaluated { project(":video_player_android") { tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" + // TODO(stuartmorgan): Enable this. See + // https://github.com/flutter/flutter/issues/91868 + //options.compilerArgs << "-Xlint:all" << "-Werror" } } } diff --git a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle index 1506b7f6ebf..f313bc2e3bf 100644 --- a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle +++ b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle @@ -21,7 +21,9 @@ allprojects { gradle.projectsEvaluated { project(":webview_flutter_android") { tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" + // TODO(stuartmorgan): Enable this. See + // https://github.com/flutter/flutter/issues/91868 + //options.compilerArgs << "-Xlint:all" << "-Werror" } } } From d7fe1bdd7a0aa692d6e2adc0de692459247004c3 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Fri, 24 Feb 2023 13:39:54 -0500 Subject: [PATCH 04/12] Revert accidental change --- .../camera_android/android/lint-baseline.xml | 94 ++++++++++++++++++- .../google_maps_flutter_android/CHANGELOG.md | 4 + .../google_maps_flutter_android/pubspec.yaml | 2 +- .../image_picker_android/CHANGELOG.md | 4 + .../image_picker_android/pubspec.yaml | 2 +- .../local_auth_android/CHANGELOG.md | 4 + .../local_auth_android/pubspec.yaml | 2 +- 7 files changed, 106 insertions(+), 6 deletions(-) diff --git a/packages/camera/camera_android/android/lint-baseline.xml b/packages/camera/camera_android/android/lint-baseline.xml index 9d007180db4..4ddaafa8798 100644 --- a/packages/camera/camera_android/android/lint-baseline.xml +++ b/packages/camera/camera_android/android/lint-baseline.xml @@ -1,5 +1,93 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -19,7 +107,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> diff --git a/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md b/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md index 1224ebba920..86853a2b6f3 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md +++ b/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.4.7 + +* Fixes compilation warnings. + ## 2.4.6 * Updates links for the merge of flutter/plugins into flutter/packages. diff --git a/packages/google_maps_flutter/google_maps_flutter_android/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter_android/pubspec.yaml index 771d116f53f..44feff58e34 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/pubspec.yaml +++ b/packages/google_maps_flutter/google_maps_flutter_android/pubspec.yaml @@ -2,7 +2,7 @@ name: google_maps_flutter_android description: Android implementation of the google_maps_flutter plugin. repository: https://github.com/flutter/packages/tree/main/packages/google_maps_flutter/google_maps_flutter_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+maps%22 -version: 2.4.6 +version: 2.4.7 environment: sdk: ">=2.14.0 <3.0.0" diff --git a/packages/image_picker/image_picker_android/CHANGELOG.md b/packages/image_picker/image_picker_android/CHANGELOG.md index b5c105c772c..d855a831973 100644 --- a/packages/image_picker/image_picker_android/CHANGELOG.md +++ b/packages/image_picker/image_picker_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.5+8 + +* Fixes compilation warnings. + ## 0.8.5+7 * Updates links for the merge of flutter/plugins into flutter/packages. diff --git a/packages/image_picker/image_picker_android/pubspec.yaml b/packages/image_picker/image_picker_android/pubspec.yaml index b47be2671c9..292c797a025 100755 --- a/packages/image_picker/image_picker_android/pubspec.yaml +++ b/packages/image_picker/image_picker_android/pubspec.yaml @@ -2,7 +2,7 @@ name: image_picker_android description: Android implementation of the image_picker plugin. repository: https://github.com/flutter/packages/tree/main/packages/image_picker/image_picker_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+image_picker%22 -version: 0.8.5+7 +version: 0.8.5+8 environment: sdk: ">=2.14.0 <3.0.0" diff --git a/packages/local_auth/local_auth_android/CHANGELOG.md b/packages/local_auth/local_auth_android/CHANGELOG.md index 3463773db5f..cc5ced64d5b 100644 --- a/packages/local_auth/local_auth_android/CHANGELOG.md +++ b/packages/local_auth/local_auth_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.20 + +* Fixes compilation warnings. + ## 1.0.19 * Updates links for the merge of flutter/plugins into flutter/packages. diff --git a/packages/local_auth/local_auth_android/pubspec.yaml b/packages/local_auth/local_auth_android/pubspec.yaml index b668c0e18fb..e1b9fc8a10e 100644 --- a/packages/local_auth/local_auth_android/pubspec.yaml +++ b/packages/local_auth/local_auth_android/pubspec.yaml @@ -2,7 +2,7 @@ name: local_auth_android description: Android implementation of the local_auth plugin. repository: https://github.com/flutter/packages/tree/main/packages/local_auth/local_auth_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22 -version: 1.0.19 +version: 1.0.20 environment: sdk: ">=2.14.0 <3.0.0" From cea94d5e07a7cd48271b9fe6720ae3e97d516b29 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Fri, 24 Feb 2023 13:40:47 -0500 Subject: [PATCH 05/12] Autoformat --- .../plugins/camerax/ProcessCameraProviderHostApiImpl.java | 3 +-- .../main/java/io/flutter/plugins/googlemaps/Convert.java | 7 ++++--- .../flutter/plugins/imagepicker/ImagePickerDelegate.java | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java index 3ee07d3b7db..b8c91a8c1ae 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java @@ -120,8 +120,7 @@ public Long bindToLifecycle( instanceManager.getInstance(((Number) useCaseIds.get(i)).longValue())); } - Camera camera = - processCameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, useCases); + Camera camera = processCameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, useCases); final CameraFlutterApiImpl cameraFlutterApi = new CameraFlutterApiImpl(binaryMessenger, instanceManager); diff --git a/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/Convert.java b/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/Convert.java index a7e117e9c28..78c7dc2428c 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/Convert.java +++ b/packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/Convert.java @@ -49,15 +49,16 @@ private static BitmapDescriptor toBitmapDescriptor(Object o) { case "fromAsset": if (data.size() == 2) { return BitmapDescriptorFactory.fromAsset( - io.flutter.view.FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); + io.flutter.view.FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); } else { return BitmapDescriptorFactory.fromAsset( - io.flutter.view.FlutterMain.getLookupKeyForAsset(toString(data.get(1)), toString(data.get(2)))); + io.flutter.view.FlutterMain.getLookupKeyForAsset( + toString(data.get(1)), toString(data.get(2)))); } case "fromAssetImage": if (data.size() == 3) { return BitmapDescriptorFactory.fromAsset( - io.flutter.view.FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); + io.flutter.view.FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); } else { throw new IllegalArgumentException( "'fromAssetImage' Expected exactly 3 arguments, got: " + data.size()); diff --git a/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerDelegate.java b/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerDelegate.java index 5a0c3fb3133..b0f2baee18b 100644 --- a/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerDelegate.java +++ b/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerDelegate.java @@ -218,7 +218,8 @@ void saveStateBeforeResult() { void retrieveLostImage(MethodChannel.Result result) { Map resultMap = cache.getCacheMap(); @SuppressWarnings("unchecked") - ArrayList pathList = (ArrayList) resultMap.get(ImagePickerCache.MAP_KEY_PATH_LIST); + ArrayList pathList = + (ArrayList) resultMap.get(ImagePickerCache.MAP_KEY_PATH_LIST); ArrayList newPathList = new ArrayList<>(); if (pathList != null) { for (String path : pathList) { From ff907336cc83dcc4317b64c18ba73a101c8d8b63 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Fri, 24 Feb 2023 15:20:42 -0500 Subject: [PATCH 06/12] analyzer fix --- script/tool/test/lint_android_command_test.dart | 7 ------- 1 file changed, 7 deletions(-) diff --git a/script/tool/test/lint_android_command_test.dart b/script/tool/test/lint_android_command_test.dart index 2109cbf7f60..ec6691dd4a8 100644 --- a/script/tool/test/lint_android_command_test.dart +++ b/script/tool/test/lint_android_command_test.dart @@ -216,13 +216,6 @@ allprojects { writeFakeBuildGradle(plugin.getExamples().first, 'plugin1', warningsConfigured: false); - final String gradlewPath = plugin - .getExamples() - .first - .platformDirectory(FlutterPlatform.android) - .childFile('gradlew') - .path; - Error? commandError; final List output = await runCapturingPrint( runner, ['lint-android'], errorHandler: (Error e) { From bad32705072d341be9b5cc11096fa3a1cab56487 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Fri, 24 Feb 2023 15:27:27 -0500 Subject: [PATCH 07/12] Fix unit tests --- .../flutter/plugins/camerax/PreviewTest.java | 9 ++- .../camerax/ProcessCameraProviderTest.java | 1 + .../plugins/camerax/SystemServicesTest.java | 6 +- .../FlutterLifecycleAdapterTest.java | 10 +++- .../googlesignin/GoogleSignInTest.java | 15 ++++- .../imagepicker/ImagePickerCacheTest.java | 19 +++++-- .../imagepicker/ImagePickerDelegateTest.java | 11 +++- .../imagepicker/ImagePickerPluginTest.java | 55 ++++++++++++------- .../plugins/imagepicker/ImageResizerTest.java | 12 +++- .../plugins/localauth/LocalAuthTest.java | 10 +++- 10 files changed, 108 insertions(+), 40 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java index 9cb4e910dbb..b76a4c91842 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java @@ -30,6 +30,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; +import org.mockito.ArgumentMatchers; import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; @@ -107,7 +108,6 @@ public void setSurfaceProviderTest_createsSurfaceProviderAndReturnsTextureEntryI final ArgumentCaptor surfaceProviderCaptor = ArgumentCaptor.forClass(Preview.SurfaceProvider.class); final ArgumentCaptor surfaceCaptor = ArgumentCaptor.forClass(Surface.class); - final ArgumentCaptor consumerCaptor = ArgumentCaptor.forClass(Consumer.class); // Test that surface provider was set and the surface texture ID was returned. assertEquals(previewHostApi.setSurfaceProvider(previewIdentifier), surfaceTextureEntryId); @@ -136,7 +136,9 @@ public void createSurfaceProvider_createsExpectedPreviewSurfaceProvider() { .thenReturn(mockSystemServicesFlutterApi); final ArgumentCaptor surfaceCaptor = ArgumentCaptor.forClass(Surface.class); - final ArgumentCaptor consumerCaptor = ArgumentCaptor.forClass(Consumer.class); + @SuppressWarnings("unchecked") + final ArgumentCaptor> consumerCaptor = + ArgumentCaptor.forClass(Consumer.class); Preview.SurfaceProvider previewSurfaceProvider = previewHostApi.createSurfaceProvider(mockSurfaceTexture); @@ -183,7 +185,8 @@ public void createSurfaceProvider_createsExpectedPreviewSurfaceProvider() { .thenReturn(SurfaceRequest.Result.RESULT_INVALID_SURFACE); capturedConsumer.accept(mockSurfaceRequestResult); verify(mockSurface).release(); - verify(mockSystemServicesFlutterApi).sendCameraError(anyString(), any(Reply.class)); + verify(mockSystemServicesFlutterApi) + .sendCameraError(anyString(), ArgumentMatchers.>any()); } @Test diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java index 47b4ed6ad26..7efd4576c20 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java @@ -66,6 +66,7 @@ public void getInstanceTest() { new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); final ListenableFuture processCameraProviderFuture = spy(Futures.immediateFuture(processCameraProvider)); + @SuppressWarnings("unchecked") final GeneratedCameraXLibrary.Result mockResult = mock(GeneratedCameraXLibrary.Result.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesTest.java index eb36c452ec3..562fbe8b526 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesTest.java @@ -24,6 +24,7 @@ import org.junit.Rule; import org.junit.Test; import org.mockito.ArgumentCaptor; +import org.mockito.ArgumentMatchers; import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; @@ -43,6 +44,7 @@ public void requestCameraPermissionsTest() { mock(CameraPermissionsManager.class); final Activity mockActivity = mock(Activity.class); final PermissionsRegistry mockPermissionsRegistry = mock(PermissionsRegistry.class); + @SuppressWarnings("unchecked") final Result mockResult = mock(Result.class); final Boolean enableAudio = false; @@ -65,7 +67,7 @@ public void requestCameraPermissionsTest() { eq(enableAudio), resultCallbackCaptor.capture()); - ResultCallback resultCallback = (ResultCallback) resultCallbackCaptor.getValue(); + ResultCallback resultCallback = resultCallbackCaptor.getValue(); // Test no error data is sent upon permissions request success. resultCallback.onResult(null, null); @@ -130,7 +132,7 @@ public void deviceOrientationChangeTest() { deviceOrientationChangeCallback.onChange(DeviceOrientation.PORTRAIT_DOWN); verify(systemServicesFlutterApi) .sendDeviceOrientationChangedEvent( - eq(DeviceOrientation.PORTRAIT_DOWN.toString()), any(Reply.class)); + eq(DeviceOrientation.PORTRAIT_DOWN.toString()), ArgumentMatchers.>any()); // Test that the DeviceOrientationManager starts listening for device orientation changes. verify(mockDeviceOrientationManager).start(); diff --git a/packages/flutter_plugin_android_lifecycle/android/src/test/java/io/flutter/embedding/engine/plugins/lifecycle/FlutterLifecycleAdapterTest.java b/packages/flutter_plugin_android_lifecycle/android/src/test/java/io/flutter/embedding/engine/plugins/lifecycle/FlutterLifecycleAdapterTest.java index 08bb3d7266e..9a6bfb7da5b 100644 --- a/packages/flutter_plugin_android_lifecycle/android/src/test/java/io/flutter/embedding/engine/plugins/lifecycle/FlutterLifecycleAdapterTest.java +++ b/packages/flutter_plugin_android_lifecycle/android/src/test/java/io/flutter/embedding/engine/plugins/lifecycle/FlutterLifecycleAdapterTest.java @@ -11,6 +11,7 @@ import androidx.lifecycle.Lifecycle; import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; import io.flutter.plugin.common.PluginRegistry; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; @@ -19,9 +20,16 @@ public class FlutterLifecycleAdapterTest { @Mock Lifecycle lifecycle; + AutoCloseable mockCloseable; + @Before public void setUp() { - MockitoAnnotations.initMocks(this); + mockCloseable = MockitoAnnotations.openMocks(this); + } + + @After + public void tearDown() throws Exception { + mockCloseable.close(); } @Test diff --git a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java index 78568460c9e..cbd2e40c433 100644 --- a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java +++ b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java @@ -29,6 +29,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; +import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -41,18 +42,23 @@ public class GoogleSignInTest { @Mock Context mockContext; @Mock Resources mockResources; @Mock Activity mockActivity; - @Mock PluginRegistry.Registrar mockRegistrar; @Mock BinaryMessenger mockMessenger; @Spy MethodChannel.Result result; @Mock GoogleSignInWrapper mockGoogleSignIn; @Mock GoogleSignInAccount account; @Mock GoogleSignInClient mockClient; @Mock Task mockSignInTask; + + @SuppressWarnings("deprecation") + @Mock + PluginRegistry.Registrar mockRegistrar; + private GoogleSignInPlugin plugin; + private AutoCloseable mockCloseable; @Before public void setUp() { - MockitoAnnotations.initMocks(this); + mockCloseable = MockitoAnnotations.openMocks(this); when(mockRegistrar.messenger()).thenReturn(mockMessenger); when(mockRegistrar.context()).thenReturn(mockContext); when(mockRegistrar.activity()).thenReturn(mockActivity); @@ -62,6 +68,11 @@ public void setUp() { plugin.setUpRegistrar(mockRegistrar); } + @After + public void tearDown() throws Exception { + mockCloseable.close(); + } + @Test public void requestScopes_ResultErrorIfAccountIsNull() { MethodCall methodCall = new MethodCall("requestScopes", null); diff --git a/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerCacheTest.java b/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerCacheTest.java index 92070e7a65c..7d871665978 100644 --- a/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerCacheTest.java +++ b/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerCacheTest.java @@ -6,8 +6,8 @@ import static io.flutter.plugins.imagepicker.ImagePickerCache.MAP_KEY_IMAGE_QUALITY; import static io.flutter.plugins.imagepicker.ImagePickerCache.SHARED_PREFERENCES_NAME; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsEqual.equalTo; -import static org.junit.Assert.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -19,6 +19,7 @@ import io.flutter.plugin.common.MethodCall; import java.util.HashMap; import java.util.Map; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; @@ -34,11 +35,13 @@ public class ImagePickerCacheTest { static Map preferenceStorage; + AutoCloseable mockCloseable; + @Before public void setUp() { - MockitoAnnotations.initMocks(this); + mockCloseable = MockitoAnnotations.openMocks(this); - preferenceStorage = new HashMap(); + preferenceStorage = new HashMap(); when(mockActivity.getPackageName()).thenReturn("com.example.test"); when(mockActivity.getPackageManager()).thenReturn(mock(PackageManager.class)); when(mockActivity.getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE)) @@ -97,19 +100,25 @@ public void setUp() { when(mockPreference.contains(any(String.class))).thenReturn(true); } + @After + public void tearDown() throws Exception { + mockCloseable.close(); + } + @Test public void ImageCache_ShouldBeAbleToSetAndGetQuality() { when(mockMethodCall.argument(MAP_KEY_IMAGE_QUALITY)).thenReturn(IMAGE_QUALITY); ImagePickerCache cache = new ImagePickerCache(mockActivity); cache.saveDimensionWithMethodCall(mockMethodCall); Map resultMap = cache.getCacheMap(); - int imageQuality = (int) resultMap.get(cache.MAP_KEY_IMAGE_QUALITY); + int imageQuality = (int) resultMap.get(ImagePickerCache.MAP_KEY_IMAGE_QUALITY); assertThat(imageQuality, equalTo(IMAGE_QUALITY)); when(mockMethodCall.argument(MAP_KEY_IMAGE_QUALITY)).thenReturn(null); cache.saveDimensionWithMethodCall(mockMethodCall); Map resultMapWithDefaultQuality = cache.getCacheMap(); - int defaultImageQuality = (int) resultMapWithDefaultQuality.get(cache.MAP_KEY_IMAGE_QUALITY); + int defaultImageQuality = + (int) resultMapWithDefaultQuality.get(ImagePickerCache.MAP_KEY_IMAGE_QUALITY); assertThat(defaultImageQuality, equalTo(100)); } } diff --git a/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerDelegateTest.java b/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerDelegateTest.java index 6d1e73c49eb..5f3b59b1d0f 100644 --- a/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerDelegateTest.java +++ b/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerDelegateTest.java @@ -4,9 +4,9 @@ package io.flutter.plugins.imagepicker; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsEqual.equalTo; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; @@ -59,6 +59,8 @@ public class ImagePickerDelegateTest { ImagePickerDelegate.FileUriResolver mockFileUriResolver; MockedStatic mockStaticFile; + AutoCloseable mockCloseable; + private static class MockFileUriResolver implements ImagePickerDelegate.FileUriResolver { @Override public Uri resolveFileProviderUriForFile(String fileProviderName, File imageFile) { @@ -73,7 +75,7 @@ public void getFullImagePath(Uri imageUri, ImagePickerDelegate.OnPathReadyListen @Before public void setUp() { - MockitoAnnotations.initMocks(this); + mockCloseable = MockitoAnnotations.openMocks(this); mockStaticFile = Mockito.mockStatic(File.class); mockStaticFile @@ -104,8 +106,9 @@ public void setUp() { } @After - public void tearDown() { + public void tearDown() throws Exception { mockStaticFile.close(); + mockCloseable.close(); } @Test @@ -305,6 +308,7 @@ public void onActivityResult_WhenImagePickedFromGallery_AndNoResizeNeeded_Stores delegate.onActivityResult( ImagePickerDelegate.REQUEST_CODE_CHOOSE_IMAGE_FROM_GALLERY, Activity.RESULT_OK, mockIntent); + @SuppressWarnings("unchecked") ArgumentCaptor> pathListCapture = ArgumentCaptor.forClass(ArrayList.class); verify(cache, times(1)).saveResult(pathListCapture.capture(), any(), any()); assertEquals("pathFromUri", pathListCapture.getValue().get(0)); @@ -416,6 +420,7 @@ public void onActivityResult_WhenImageTakenWithCamera_AndNoResizeNeeded_Finishes ImagePickerDelegate mockDelegate = createDelegate(); + @SuppressWarnings("unchecked") ArgumentCaptor> valueCapture = ArgumentCaptor.forClass(Map.class); doNothing().when(mockResult).success(valueCapture.capture()); diff --git a/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerPluginTest.java b/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerPluginTest.java index 36452479776..328c964c860 100644 --- a/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerPluginTest.java +++ b/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerPluginTest.java @@ -4,10 +4,12 @@ package io.flutter.plugins.imagepicker; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsEqual.equalTo; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; @@ -29,10 +31,9 @@ import java.io.File; import java.util.HashMap; import java.util.Map; +import org.junit.After; import org.junit.Before; -import org.junit.Rule; import org.junit.Test; -import org.junit.rules.ExpectedException; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -43,8 +44,6 @@ public class ImagePickerPluginTest { private static final String PICK_MULTI_IMAGE = "pickMultiImage"; private static final String PICK_VIDEO = "pickVideo"; - @Rule public ExpectedException exception = ExpectedException.none(); - @SuppressWarnings("deprecation") @Mock io.flutter.plugin.common.PluginRegistry.Registrar mockRegistrar; @@ -59,15 +58,22 @@ public class ImagePickerPluginTest { ImagePickerPlugin plugin; + AutoCloseable mockCloseable; + @Before public void setUp() { - MockitoAnnotations.initMocks(this); + mockCloseable = MockitoAnnotations.openMocks(this); when(mockRegistrar.context()).thenReturn(mockApplication); when(mockActivityBinding.getActivity()).thenReturn(mockActivity); when(mockPluginBinding.getApplicationContext()).thenReturn(mockApplication); plugin = new ImagePickerPlugin(mockImagePickerDelegate, mockActivity); } + @After + public void tearDown() throws Exception { + mockCloseable.close(); + } + @Test public void onMethodCall_WhenActivityIsNull_FinishesWithForegroundActivityRequiredError() { MethodCall call = buildMethodCall(PICK_IMAGE, SOURCE_GALLERY); @@ -81,18 +87,22 @@ public void onMethodCall_WhenActivityIsNull_FinishesWithForegroundActivityRequir @Test public void onMethodCall_WhenCalledWithUnknownMethod_ThrowsException() { - exception.expect(IllegalArgumentException.class); - exception.expectMessage("Unknown method test"); - plugin.onMethodCall(new MethodCall("test", null), mockResult); + IllegalArgumentException e = + assertThrows( + IllegalArgumentException.class, + () -> plugin.onMethodCall(new MethodCall("test", null), mockResult)); + assertEquals(e.getMessage(), "Unknown method test"); verifyNoInteractions(mockImagePickerDelegate); verifyNoInteractions(mockResult); } @Test public void onMethodCall_WhenCalledWithUnknownImageSource_ThrowsException() { - exception.expect(IllegalArgumentException.class); - exception.expectMessage("Invalid image source: -1"); - plugin.onMethodCall(buildMethodCall(PICK_IMAGE, -1), mockResult); + IllegalArgumentException e = + assertThrows( + IllegalArgumentException.class, + () -> plugin.onMethodCall(buildMethodCall(PICK_IMAGE, -1), mockResult)); + assertEquals(e.getMessage(), "Invalid image source: -1"); verifyNoInteractions(mockImagePickerDelegate); verifyNoInteractions(mockResult); } @@ -124,39 +134,39 @@ public void onMethodCall_WhenSourceIsCamera_InvokesTakeImageWithCamera() { @Test public void onMethodCall_PickingImage_WhenSourceIsCamera_InvokesTakeImageWithCamera_RearCamera() { MethodCall call = buildMethodCall(PICK_IMAGE, SOURCE_CAMERA); - HashMap arguments = (HashMap) call.arguments; + HashMap arguments = getArgumentMap(call); arguments.put("cameraDevice", 0); plugin.onMethodCall(call, mockResult); - verify(mockImagePickerDelegate).setCameraDevice(eq(CameraDevice.REAR)); + verify(mockImagePickerDelegate).setCameraDevice(eq(ImagePickerDelegate.CameraDevice.REAR)); } @Test public void onMethodCall_PickingImage_WhenSourceIsCamera_InvokesTakeImageWithCamera_FrontCamera() { MethodCall call = buildMethodCall(PICK_IMAGE, SOURCE_CAMERA); - HashMap arguments = (HashMap) call.arguments; + HashMap arguments = getArgumentMap(call); arguments.put("cameraDevice", 1); plugin.onMethodCall(call, mockResult); - verify(mockImagePickerDelegate).setCameraDevice(eq(CameraDevice.FRONT)); + verify(mockImagePickerDelegate).setCameraDevice(eq(ImagePickerDelegate.CameraDevice.FRONT)); } @Test public void onMethodCall_PickingVideo_WhenSourceIsCamera_InvokesTakeImageWithCamera_RearCamera() { MethodCall call = buildMethodCall(PICK_IMAGE, SOURCE_CAMERA); - HashMap arguments = (HashMap) call.arguments; + HashMap arguments = getArgumentMap(call); arguments.put("cameraDevice", 0); plugin.onMethodCall(call, mockResult); - verify(mockImagePickerDelegate).setCameraDevice(eq(CameraDevice.REAR)); + verify(mockImagePickerDelegate).setCameraDevice(eq(ImagePickerDelegate.CameraDevice.REAR)); } @Test public void onMethodCall_PickingVideo_WhenSourceIsCamera_InvokesTakeImageWithCamera_FrontCamera() { MethodCall call = buildMethodCall(PICK_IMAGE, SOURCE_CAMERA); - HashMap arguments = (HashMap) call.arguments; + HashMap arguments = getArgumentMap(call); arguments.put("cameraDevice", 1); plugin.onMethodCall(call, mockResult); - verify(mockImagePickerDelegate).setCameraDevice(eq(CameraDevice.FRONT)); + verify(mockImagePickerDelegate).setCameraDevice(eq(ImagePickerDelegate.CameraDevice.FRONT)); } @Test @@ -217,4 +227,9 @@ private MethodCall buildMethodCall(String method, final int source) { private MethodCall buildMethodCall(String method) { return new MethodCall(method, null); } + + @SuppressWarnings("unchecked") + private HashMap getArgumentMap(MethodCall call) { + return (HashMap) call.arguments; + } } diff --git a/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImageResizerTest.java b/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImageResizerTest.java index 73cfef9e88e..a3710038379 100644 --- a/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImageResizerTest.java +++ b/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImageResizerTest.java @@ -4,13 +4,14 @@ package io.flutter.plugins.imagepicker; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsEqual.equalTo; -import static org.junit.Assert.assertThat; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import java.io.File; import java.io.IOException; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -28,9 +29,11 @@ public class ImageResizerTest { File externalDirectory; Bitmap originalImageBitmap; + AutoCloseable mockCloseable; + @Before public void setUp() throws IOException { - MockitoAnnotations.initMocks(this); + mockCloseable = MockitoAnnotations.openMocks(this); imageFile = new File(getClass().getClassLoader().getResource("pngImage.png").getFile()); originalImageBitmap = BitmapFactory.decodeFile(imageFile.getPath()); TemporaryFolder temporaryFolder = new TemporaryFolder(); @@ -39,6 +42,11 @@ public void setUp() throws IOException { resizer = new ImageResizer(externalDirectory, new ExifDataCopier()); } + @After + public void tearDown() throws Exception { + mockCloseable.close(); + } + @Test public void onResizeImageIfNeeded_WhenQualityIsNull_ShoultNotResize_ReturnTheUnscaledFile() { String outoutFile = resizer.resizeImageIfNeeded(imageFile.getPath(), null, null, null); diff --git a/packages/local_auth/local_auth_android/android/src/test/java/io/flutter/plugins/localauth/LocalAuthTest.java b/packages/local_auth/local_auth_android/android/src/test/java/io/flutter/plugins/localauth/LocalAuthTest.java index 7279a3c49af..38c3908f4e7 100644 --- a/packages/local_auth/local_auth_android/android/src/test/java/io/flutter/plugins/localauth/LocalAuthTest.java +++ b/packages/local_auth/local_auth_android/android/src/test/java/io/flutter/plugins/localauth/LocalAuthTest.java @@ -238,7 +238,7 @@ public void onDetachedFromActivity_ShouldReleaseActivity() { final FlutterPluginBinding mockPluginBinding = mock(FlutterPluginBinding.class); final FlutterEngine mockFlutterEngine = mock(FlutterEngine.class); - when(mockPluginBinding.getFlutterEngine()).thenReturn(mockFlutterEngine); + mockDeprecatedFlutterEngineGetter(mockPluginBinding, mockFlutterEngine); DartExecutor mockDartExecutor = mock(DartExecutor.class); when(mockFlutterEngine.getDartExecutor()).thenReturn(mockDartExecutor); @@ -399,11 +399,17 @@ private void setPluginActivity(LocalAuthPlugin plugin, Activity activity) { final ActivityPluginBinding mockActivityBinding = mock(ActivityPluginBinding.class); final FlutterEngine mockFlutterEngine = mock(FlutterEngine.class); final DartExecutor mockDartExecutor = mock(DartExecutor.class); - when(mockPluginBinding.getFlutterEngine()).thenReturn(mockFlutterEngine); + mockDeprecatedFlutterEngineGetter(mockPluginBinding, mockFlutterEngine); when(mockFlutterEngine.getDartExecutor()).thenReturn(mockDartExecutor); when(mockActivityBinding.getActivity()).thenReturn(activity); when(mockActivityBinding.getLifecycle()).thenReturn(mockLifecycleReference); plugin.onAttachedToEngine(mockPluginBinding); plugin.onAttachedToActivity(mockActivityBinding); } + + @SuppressWarnings("deprecation") + private void mockDeprecatedFlutterEngineGetter( + FlutterPluginBinding binding, FlutterEngine engine) { + when(binding.getFlutterEngine()).thenReturn(engine); + } } From 593870ee57f7b2e8940730e61695109e3e54dc3d Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 27 Feb 2023 09:56:15 -0500 Subject: [PATCH 08/12] Move new blocks out of allprojects --- .../example/android/build.gradle | 27 ++++++++++--------- .../example/android/build.gradle | 23 ++++++++-------- .../espresso/example/android/build.gradle | 27 ++++++++++--------- .../example/android/build.gradle | 23 ++++++++-------- .../example/android/build.gradle | 27 ++++++++++--------- .../example/android/build.gradle | 23 ++++++++-------- .../example/android/build.gradle | 23 ++++++++-------- .../example/android/build.gradle | 27 ++++++++++--------- .../example/android/build.gradle | 23 ++++++++-------- .../example/android/build.gradle | 23 ++++++++-------- .../example/android/build.gradle | 23 ++++++++-------- .../example/android/build.gradle | 23 ++++++++-------- .../example/android/build.gradle | 23 ++++++++-------- .../example/android/build.gradle | 27 ++++++++++--------- .../example/android/build.gradle | 27 ++++++++++--------- script/tool/lib/src/lint_android_command.dart | 12 ++++----- 16 files changed, 198 insertions(+), 183 deletions(-) diff --git a/packages/camera/camera_android/example/android/build.gradle b/packages/camera/camera_android/example/android/build.gradle index 0d216252742..e54be495b41 100644 --- a/packages/camera/camera_android/example/android/build.gradle +++ b/packages/camera/camera_android/example/android/build.gradle @@ -14,19 +14,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":camera_android") { - tasks.withType(JavaCompile) { - // TODO(stuartmorgan): Enable this. See - // https://github.com/flutter/flutter/issues/91868 - //options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -40,3 +27,17 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":camera_android") { + tasks.withType(JavaCompile) { + // TODO(stuartmorgan): Enable this. See + // https://github.com/flutter/flutter/issues/91868 + //options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/camera/camera_android_camerax/example/android/build.gradle b/packages/camera/camera_android_camerax/example/android/build.gradle index 9458d2a53c9..7c909c6116c 100644 --- a/packages/camera/camera_android_camerax/example/android/build.gradle +++ b/packages/camera/camera_android_camerax/example/android/build.gradle @@ -16,17 +16,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":camera_android_camerax") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -40,3 +29,15 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":camera_android_camerax") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/espresso/example/android/build.gradle b/packages/espresso/example/android/build.gradle index cabf96f857b..10fc8d91f5f 100644 --- a/packages/espresso/example/android/build.gradle +++ b/packages/espresso/example/android/build.gradle @@ -14,19 +14,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":espresso") { - tasks.withType(JavaCompile) { - // TODO(stuartmorgan): Enable this. See - // https://github.com/flutter/flutter/issues/91868 - //options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -40,3 +27,17 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":espresso") { + tasks.withType(JavaCompile) { + // TODO(stuartmorgan): Enable this. See + // https://github.com/flutter/flutter/issues/91868 + //options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/flutter_plugin_android_lifecycle/example/android/build.gradle b/packages/flutter_plugin_android_lifecycle/example/android/build.gradle index 3bfdb42da0f..8b3d2202775 100644 --- a/packages/flutter_plugin_android_lifecycle/example/android/build.gradle +++ b/packages/flutter_plugin_android_lifecycle/example/android/build.gradle @@ -14,17 +14,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":flutter_plugin_android_lifecycle") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -38,3 +27,15 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":flutter_plugin_android_lifecycle") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle b/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle index 599b2c4417a..538fd31e3eb 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle +++ b/packages/google_maps_flutter/google_maps_flutter_android/example/android/build.gradle @@ -14,19 +14,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":google_maps_flutter_android") { - tasks.withType(JavaCompile) { - // TODO(stuartmorgan): Enable this. See - // https://github.com/flutter/flutter/issues/91868 - //options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -40,3 +27,17 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":google_maps_flutter_android") { + tasks.withType(JavaCompile) { + // TODO(stuartmorgan): Enable this. See + // https://github.com/flutter/flutter/issues/91868 + //options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/google_sign_in/google_sign_in_android/example/android/build.gradle b/packages/google_sign_in/google_sign_in_android/example/android/build.gradle index e457eb97f06..c10d0fa9485 100644 --- a/packages/google_sign_in/google_sign_in_android/example/android/build.gradle +++ b/packages/google_sign_in/google_sign_in_android/example/android/build.gradle @@ -14,17 +14,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":google_sign_in_android") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -38,3 +27,15 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":google_sign_in_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/image_picker/image_picker_android/example/android/build.gradle b/packages/image_picker/image_picker_android/example/android/build.gradle index e1444e4a6ed..ac83e877323 100755 --- a/packages/image_picker/image_picker_android/example/android/build.gradle +++ b/packages/image_picker/image_picker_android/example/android/build.gradle @@ -14,17 +14,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":image_picker_android") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -38,3 +27,15 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":image_picker_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle b/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle index a89e84d955a..5bb3499d4ff 100644 --- a/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle +++ b/packages/in_app_purchase/in_app_purchase_android/example/android/build.gradle @@ -14,19 +14,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":in_app_purchase_android") { - tasks.withType(JavaCompile) { - // TODO(stuartmorgan): Enable this. See - // https://github.com/flutter/flutter/issues/91868 - //options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -40,3 +27,17 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":in_app_purchase_android") { + tasks.withType(JavaCompile) { + // TODO(stuartmorgan): Enable this. See + // https://github.com/flutter/flutter/issues/91868 + //options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/local_auth/local_auth_android/example/android/build.gradle b/packages/local_auth/local_auth_android/example/android/build.gradle index 8ee419166d4..9455e41996d 100644 --- a/packages/local_auth/local_auth_android/example/android/build.gradle +++ b/packages/local_auth/local_auth_android/example/android/build.gradle @@ -14,17 +14,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":local_auth_android") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -38,3 +27,15 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":local_auth_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/path_provider/path_provider_android/example/android/build.gradle b/packages/path_provider/path_provider_android/example/android/build.gradle index 23c9c311c01..3f8bef9e7b6 100644 --- a/packages/path_provider/path_provider_android/example/android/build.gradle +++ b/packages/path_provider/path_provider_android/example/android/build.gradle @@ -14,17 +14,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":path_provider_android") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -38,3 +27,15 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":path_provider_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/quick_actions/quick_actions_android/example/android/build.gradle b/packages/quick_actions/quick_actions_android/example/android/build.gradle index a1efd9a0ea8..4215a59005b 100644 --- a/packages/quick_actions/quick_actions_android/example/android/build.gradle +++ b/packages/quick_actions/quick_actions_android/example/android/build.gradle @@ -14,17 +14,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":quick_actions_android") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -38,3 +27,15 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":quick_actions_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/shared_preferences/shared_preferences_android/example/android/build.gradle b/packages/shared_preferences/shared_preferences_android/example/android/build.gradle index 0482581d06c..23a5996a120 100644 --- a/packages/shared_preferences/shared_preferences_android/example/android/build.gradle +++ b/packages/shared_preferences/shared_preferences_android/example/android/build.gradle @@ -16,17 +16,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":shared_preferences_android") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -40,3 +29,15 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":shared_preferences_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/url_launcher/url_launcher_android/example/android/build.gradle b/packages/url_launcher/url_launcher_android/example/android/build.gradle index be01b887eb7..0e900021669 100644 --- a/packages/url_launcher/url_launcher_android/example/android/build.gradle +++ b/packages/url_launcher/url_launcher_android/example/android/build.gradle @@ -14,17 +14,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":url_launcher_android") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -38,3 +27,15 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":url_launcher_android") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/video_player/video_player_android/example/android/build.gradle b/packages/video_player/video_player_android/example/android/build.gradle index 7c60292d518..4851ea6e2c3 100644 --- a/packages/video_player/video_player_android/example/android/build.gradle +++ b/packages/video_player/video_player_android/example/android/build.gradle @@ -14,19 +14,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":video_player_android") { - tasks.withType(JavaCompile) { - // TODO(stuartmorgan): Enable this. See - // https://github.com/flutter/flutter/issues/91868 - //options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -40,3 +27,17 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":video_player_android") { + tasks.withType(JavaCompile) { + // TODO(stuartmorgan): Enable this. See + // https://github.com/flutter/flutter/issues/91868 + //options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle index f313bc2e3bf..1942e9d40d7 100644 --- a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle +++ b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle @@ -14,19 +14,6 @@ allprojects { google() mavenCentral() } - // Build the plugin project with warnings enabled. This is here rather than - // in the plugin itself to avoid breaking clients that have different - // warnings (e.g., deprecation warnings from a newer SDK than this project - // builds with). - gradle.projectsEvaluated { - project(":webview_flutter_android") { - tasks.withType(JavaCompile) { - // TODO(stuartmorgan): Enable this. See - // https://github.com/flutter/flutter/issues/91868 - //options.compilerArgs << "-Xlint:all" << "-Werror" - } - } - } } rootProject.buildDir = '../build' @@ -40,3 +27,17 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +// Build the plugin project with warnings enabled. This is here rather than +// in the plugin itself to avoid breaking clients that have different +// warnings (e.g., deprecation warnings from a newer SDK than this project +// builds with). +gradle.projectsEvaluated { + project(":webview_flutter_android") { + tasks.withType(JavaCompile) { + // TODO(stuartmorgan): Enable this. See + // https://github.com/flutter/flutter/issues/91868 + //options.compilerArgs << "-Xlint:all" << "-Werror" + } + } +} diff --git a/script/tool/lib/src/lint_android_command.dart b/script/tool/lib/src/lint_android_command.dart index f973cff29ee..f146b2d4fbb 100644 --- a/script/tool/lib/src/lint_android_command.dart +++ b/script/tool/lib/src/lint_android_command.dart @@ -81,15 +81,15 @@ class LintAndroidCommand extends PackageLoopingCommand { printError('The example ' '${getRelativePosixPath(example.directory, from: package.directory)} ' 'is not configured to treat javac lints and warnings as errors. ' - 'Please add the following to the "allprojects" section:'); + 'Please add the following to its build.gradle:'); print(''' - gradle.projectsEvaluated { - project(":${package.directory.basename}") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } +gradle.projectsEvaluated { + project(":${package.directory.basename}") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" } } +} '''); } } From 52c5f021e7d77a598312cdcc6c2af7052e7d31f5 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Thu, 2 Mar 2023 12:35:14 -0500 Subject: [PATCH 09/12] Revert metadata --- packages/camera/camera_android/CHANGELOG.md | 4 ++++ .../google_maps_flutter_android/CHANGELOG.md | 3 ++- packages/google_sign_in/google_sign_in_android/CHANGELOG.md | 4 ++++ packages/image_picker/image_picker_android/CHANGELOG.md | 4 ++-- packages/image_picker/image_picker_android/pubspec.yaml | 3 ++- packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md | 4 ++++ packages/local_auth/local_auth_android/CHANGELOG.md | 4 ++-- packages/local_auth/local_auth_android/pubspec.yaml | 2 +- packages/path_provider/path_provider_android/CHANGELOG.md | 4 ++++ packages/quick_actions/quick_actions_android/CHANGELOG.md | 4 ++++ .../shared_preferences_android/CHANGELOG.md | 4 ++++ packages/video_player/video_player_android/CHANGELOG.md | 4 ++++ packages/webview_flutter/webview_flutter_android/CHANGELOG.md | 4 ++++ 13 files changed, 41 insertions(+), 7 deletions(-) diff --git a/packages/camera/camera_android/CHANGELOG.md b/packages/camera/camera_android/CHANGELOG.md index ac03c12261c..d608cf1aac7 100644 --- a/packages/camera/camera_android/CHANGELOG.md +++ b/packages/camera/camera_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## NEXT + +* Updates compileSdkVersion to 33. + ## 0.10.4+1 * Updates links for the merge of flutter/plugins into flutter/packages. diff --git a/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md b/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md index 86853a2b6f3..fc0771d214f 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md +++ b/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md @@ -1,6 +1,7 @@ ## 2.4.7 -* Fixes compilation warnings. +* Updates annotation dependency. +* Updates compileSdkVersion to 33. ## 2.4.6 diff --git a/packages/google_sign_in/google_sign_in_android/CHANGELOG.md b/packages/google_sign_in/google_sign_in_android/CHANGELOG.md index c76bd628aed..1ba0c96974c 100644 --- a/packages/google_sign_in/google_sign_in_android/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## NEXT + +* Updates compileSdkVersion to 33. + ## 6.1.7 * Updates links for the merge of flutter/plugins into flutter/packages. diff --git a/packages/image_picker/image_picker_android/CHANGELOG.md b/packages/image_picker/image_picker_android/CHANGELOG.md index bcb62620bf2..3b85783c81b 100644 --- a/packages/image_picker/image_picker_android/CHANGELOG.md +++ b/packages/image_picker/image_picker_android/CHANGELOG.md @@ -1,6 +1,6 @@ -## 0.8.5+9 +## NEXT -* Fixes compilation warnings. +* Updates compileSdkVersion to 33. ## 0.8.5+8 diff --git a/packages/image_picker/image_picker_android/pubspec.yaml b/packages/image_picker/image_picker_android/pubspec.yaml index 60aa1d402ee..cd606752e31 100755 --- a/packages/image_picker/image_picker_android/pubspec.yaml +++ b/packages/image_picker/image_picker_android/pubspec.yaml @@ -2,7 +2,8 @@ name: image_picker_android description: Android implementation of the image_picker plugin. repository: https://github.com/flutter/packages/tree/main/packages/image_picker/image_picker_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+image_picker%22 -version: 0.8.5+9 + +version: 0.8.5+8 environment: sdk: ">=2.14.0 <3.0.0" diff --git a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md index c09ba89c5b5..9be6cec880c 100644 --- a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md +++ b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## NEXT + +* Updates compileSdkVersion to 33. + ## 0.2.4+2 * Updates links for the merge of flutter/plugins into flutter/packages. diff --git a/packages/local_auth/local_auth_android/CHANGELOG.md b/packages/local_auth/local_auth_android/CHANGELOG.md index cc5ced64d5b..b74748c3f2e 100644 --- a/packages/local_auth/local_auth_android/CHANGELOG.md +++ b/packages/local_auth/local_auth_android/CHANGELOG.md @@ -1,6 +1,6 @@ -## 1.0.20 +## NEXT -* Fixes compilation warnings. +* Updates compileSdkVersion to 33. ## 1.0.19 diff --git a/packages/local_auth/local_auth_android/pubspec.yaml b/packages/local_auth/local_auth_android/pubspec.yaml index e1b9fc8a10e..b668c0e18fb 100644 --- a/packages/local_auth/local_auth_android/pubspec.yaml +++ b/packages/local_auth/local_auth_android/pubspec.yaml @@ -2,7 +2,7 @@ name: local_auth_android description: Android implementation of the local_auth plugin. repository: https://github.com/flutter/packages/tree/main/packages/local_auth/local_auth_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22 -version: 1.0.20 +version: 1.0.19 environment: sdk: ">=2.14.0 <3.0.0" diff --git a/packages/path_provider/path_provider_android/CHANGELOG.md b/packages/path_provider/path_provider_android/CHANGELOG.md index a0a408e416e..2f783fa3942 100644 --- a/packages/path_provider/path_provider_android/CHANGELOG.md +++ b/packages/path_provider/path_provider_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## NEXT + +* Updates compileSdkVersion to 33. + ## 2.0.23 * Updates links for the merge of flutter/plugins into flutter/packages. diff --git a/packages/quick_actions/quick_actions_android/CHANGELOG.md b/packages/quick_actions/quick_actions_android/CHANGELOG.md index 9b056e6c9aa..8f36d6406e7 100644 --- a/packages/quick_actions/quick_actions_android/CHANGELOG.md +++ b/packages/quick_actions/quick_actions_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## NEXT + +* Updates compileSdkVersion to 33. + ## 1.0.1 * Updates links for the merge of flutter/plugins into flutter/packages. diff --git a/packages/shared_preferences/shared_preferences_android/CHANGELOG.md b/packages/shared_preferences/shared_preferences_android/CHANGELOG.md index 3957d3d653e..ee1ccb1cbdb 100644 --- a/packages/shared_preferences/shared_preferences_android/CHANGELOG.md +++ b/packages/shared_preferences/shared_preferences_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## NEXT + +* Updates compileSdkVersion to 33. + ## 2.0.16 * Updates links for the merge of flutter/plugins into flutter/packages. diff --git a/packages/video_player/video_player_android/CHANGELOG.md b/packages/video_player/video_player_android/CHANGELOG.md index 42d577e3fd3..1bb697d4f5e 100644 --- a/packages/video_player/video_player_android/CHANGELOG.md +++ b/packages/video_player/video_player_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## NEXT + +* Updates compileSdkVersion to 33. + ## 2.3.11 * Updates links for the merge of flutter/plugins into flutter/packages. diff --git a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md index 983ff4cdabb..55cf3971ebb 100644 --- a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## NEXT + +* Updates compileSdkVersion to 33. + ## 3.3.1 * Updates links for the merge of flutter/plugins into flutter/packages. From 532ffb9d3ad556a99e6e29aef645a0133967808e Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Thu, 2 Mar 2023 13:21:32 -0500 Subject: [PATCH 10/12] Suppress new deprecation warnings --- .../io/flutter/plugins/imagepicker/ImagePickerDelegate.java | 2 ++ .../java/io/flutter/plugins/imagepicker/ImagePickerUtils.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerDelegate.java b/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerDelegate.java index 9b069ad78fa..006eb3dad47 100644 --- a/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerDelegate.java +++ b/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerDelegate.java @@ -450,6 +450,8 @@ private File createTemporaryWritableFile(String suffix) { private void grantUriPermissions(Intent intent, Uri imageUri) { PackageManager packageManager = activity.getPackageManager(); + // TODO(stuartmorgan): Add new codepath: https://github.com/flutter/flutter/issues/121816 + @SuppressWarnings("deprecation") List compatibleActivities = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); diff --git a/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerUtils.java b/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerUtils.java index ba987892557..5e80258a00d 100644 --- a/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerUtils.java +++ b/packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ImagePickerUtils.java @@ -16,6 +16,8 @@ final class ImagePickerUtils { private static boolean isPermissionPresentInManifest(Context context, String permissionName) { try { PackageManager packageManager = context.getPackageManager(); + // TODO(stuartmorgan): Add new codepath: https://github.com/flutter/flutter/issues/121816 + @SuppressWarnings("deprecation") PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS); From c1a68e218fb8ed221c09e547d36ce998d9d81e9c Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Thu, 2 Mar 2023 13:22:31 -0500 Subject: [PATCH 11/12] Re-bump versions --- .../google_maps_flutter_android/CHANGELOG.md | 4 ++++ .../google_maps_flutter_android/pubspec.yaml | 2 +- packages/image_picker/image_picker_android/CHANGELOG.md | 3 ++- packages/image_picker/image_picker_android/pubspec.yaml | 2 +- packages/local_auth/local_auth_android/CHANGELOG.md | 3 ++- packages/local_auth/local_auth_android/pubspec.yaml | 2 +- 6 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md b/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md index fc0771d214f..0607df422e8 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md +++ b/packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.4.8 + +* Fixes compilation warnings. + ## 2.4.7 * Updates annotation dependency. diff --git a/packages/google_maps_flutter/google_maps_flutter_android/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter_android/pubspec.yaml index 44feff58e34..2e02e0253b7 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/pubspec.yaml +++ b/packages/google_maps_flutter/google_maps_flutter_android/pubspec.yaml @@ -2,7 +2,7 @@ name: google_maps_flutter_android description: Android implementation of the google_maps_flutter plugin. repository: https://github.com/flutter/packages/tree/main/packages/google_maps_flutter/google_maps_flutter_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+maps%22 -version: 2.4.7 +version: 2.4.8 environment: sdk: ">=2.14.0 <3.0.0" diff --git a/packages/image_picker/image_picker_android/CHANGELOG.md b/packages/image_picker/image_picker_android/CHANGELOG.md index 3b85783c81b..03935b9b47e 100644 --- a/packages/image_picker/image_picker_android/CHANGELOG.md +++ b/packages/image_picker/image_picker_android/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 0.8.5+9 +* Fixes compilation warnings. * Updates compileSdkVersion to 33. ## 0.8.5+8 diff --git a/packages/image_picker/image_picker_android/pubspec.yaml b/packages/image_picker/image_picker_android/pubspec.yaml index cd606752e31..de62db1d86d 100755 --- a/packages/image_picker/image_picker_android/pubspec.yaml +++ b/packages/image_picker/image_picker_android/pubspec.yaml @@ -3,7 +3,7 @@ description: Android implementation of the image_picker plugin. repository: https://github.com/flutter/packages/tree/main/packages/image_picker/image_picker_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+image_picker%22 -version: 0.8.5+8 +version: 0.8.5+9 environment: sdk: ">=2.14.0 <3.0.0" diff --git a/packages/local_auth/local_auth_android/CHANGELOG.md b/packages/local_auth/local_auth_android/CHANGELOG.md index b74748c3f2e..bf94a765a78 100644 --- a/packages/local_auth/local_auth_android/CHANGELOG.md +++ b/packages/local_auth/local_auth_android/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 1.0.20 +* Fixes compilation warnings. * Updates compileSdkVersion to 33. ## 1.0.19 diff --git a/packages/local_auth/local_auth_android/pubspec.yaml b/packages/local_auth/local_auth_android/pubspec.yaml index b668c0e18fb..e1b9fc8a10e 100644 --- a/packages/local_auth/local_auth_android/pubspec.yaml +++ b/packages/local_auth/local_auth_android/pubspec.yaml @@ -2,7 +2,7 @@ name: local_auth_android description: Android implementation of the local_auth plugin. repository: https://github.com/flutter/packages/tree/main/packages/local_auth/local_auth_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22 -version: 1.0.19 +version: 1.0.20 environment: sdk: ">=2.14.0 <3.0.0" From 7dfd1e48df773a5aa7d428bf534811c34efe87b2 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Thu, 2 Mar 2023 13:24:40 -0500 Subject: [PATCH 12/12] Re-fix web-based change --- script/tool/test/lint_android_command_test.dart | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/script/tool/test/lint_android_command_test.dart b/script/tool/test/lint_android_command_test.dart index ec6691dd4a8..40ffaf177a7 100644 --- a/script/tool/test/lint_android_command_test.dart +++ b/script/tool/test/lint_android_command_test.dart @@ -42,13 +42,13 @@ void main() { void writeFakeBuildGradle(RepositoryPackage example, String pluginName, {bool warningsConfigured = true}) { final String warningConfig = ''' - gradle.projectsEvaluated { - project(":$pluginName") { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" - } +gradle.projectsEvaluated { + project(":$pluginName") { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-Werror" } } +} '''; example .platformDirectory(FlutterPlatform.android) @@ -60,7 +60,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.0.1' + classpath 'com.android.tools.build:gradle:8.0.1' } } allprojects { @@ -68,8 +68,8 @@ allprojects { google() mavenCentral() } - ${warningsConfigured ? warningConfig : ''} } +${warningsConfigured ? warningConfig : ''} '''); }