From e54d7f33df11a9a7a9be42c68f4038d126fe08ee Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Wed, 5 Apr 2023 12:57:27 -0400 Subject: [PATCH 1/6] Enable all warnings and warnings as errors in all plugins --- packages/camera/camera_android/android/build.gradle | 2 ++ packages/camera/camera_android_camerax/android/build.gradle | 3 +++ packages/espresso/android/build.gradle | 2 ++ packages/flutter_plugin_android_lifecycle/android/build.gradle | 3 +++ .../google_maps_flutter_android/android/build.gradle | 3 +++ .../google_sign_in/google_sign_in_android/android/build.gradle | 3 +++ .../image_picker/image_picker_android/android/build.gradle | 3 +++ .../in_app_purchase_android/android/build.gradle | 3 +++ packages/local_auth/local_auth_android/android/build.gradle | 2 ++ .../path_provider/path_provider_android/android/build.gradle | 3 +++ .../quick_actions/quick_actions_android/android/build.gradle | 3 +++ .../shared_preferences_android/android/build.gradle | 2 ++ .../url_launcher/url_launcher_android/android/build.gradle | 3 +++ .../video_player/video_player_android/android/build.gradle | 3 +++ .../webview_flutter_android/android/build.gradle | 3 +++ 15 files changed, 41 insertions(+) diff --git a/packages/camera/camera_android/android/build.gradle b/packages/camera/camera_android/android/build.gradle index 476386ba6d2..8e2775a0e26 100644 --- a/packages/camera/camera_android/android/build.gradle +++ b/packages/camera/camera_android/android/build.gradle @@ -35,6 +35,8 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' baseline file("lint-baseline.xml") } diff --git a/packages/camera/camera_android_camerax/android/build.gradle b/packages/camera/camera_android_camerax/android/build.gradle index 336e1600989..10f66f49ea9 100644 --- a/packages/camera/camera_android_camerax/android/build.gradle +++ b/packages/camera/camera_android_camerax/android/build.gradle @@ -49,8 +49,11 @@ android { } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion' disable 'GradleDependency' + baseline file("lint-baseline.xml") } } diff --git a/packages/espresso/android/build.gradle b/packages/espresso/android/build.gradle index c4d8b149c34..2aac3452e03 100644 --- a/packages/espresso/android/build.gradle +++ b/packages/espresso/android/build.gradle @@ -29,6 +29,8 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' baseline file("lint-baseline.xml") } diff --git a/packages/flutter_plugin_android_lifecycle/android/build.gradle b/packages/flutter_plugin_android_lifecycle/android/build.gradle index 708eaff4175..8431e0bc2c8 100644 --- a/packages/flutter_plugin_android_lifecycle/android/build.gradle +++ b/packages/flutter_plugin_android_lifecycle/android/build.gradle @@ -30,7 +30,10 @@ android { consumerProguardFiles 'proguard.txt' } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' + baseline file("lint-baseline.xml") } dependencies { diff --git a/packages/google_maps_flutter/google_maps_flutter_android/android/build.gradle b/packages/google_maps_flutter/google_maps_flutter_android/android/build.gradle index fef368e278b..61b79a90a37 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/android/build.gradle +++ b/packages/google_maps_flutter/google_maps_flutter_android/android/build.gradle @@ -29,7 +29,10 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' + baseline file("lint-baseline.xml") } dependencies { diff --git a/packages/google_sign_in/google_sign_in_android/android/build.gradle b/packages/google_sign_in/google_sign_in_android/android/build.gradle index ef56fb68f41..e7e0f043d9e 100644 --- a/packages/google_sign_in/google_sign_in_android/android/build.gradle +++ b/packages/google_sign_in/google_sign_in_android/android/build.gradle @@ -29,7 +29,10 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' + baseline file("lint-baseline.xml") } diff --git a/packages/image_picker/image_picker_android/android/build.gradle b/packages/image_picker/image_picker_android/android/build.gradle index 3af3ba471df..c4fb379533f 100644 --- a/packages/image_picker/image_picker_android/android/build.gradle +++ b/packages/image_picker/image_picker_android/android/build.gradle @@ -29,7 +29,10 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' + baseline file("lint-baseline.xml") } dependencies { implementation 'androidx.core:core:1.9.0' diff --git a/packages/in_app_purchase/in_app_purchase_android/android/build.gradle b/packages/in_app_purchase/in_app_purchase_android/android/build.gradle index 95a744d08ee..4385ad821f5 100644 --- a/packages/in_app_purchase/in_app_purchase_android/android/build.gradle +++ b/packages/in_app_purchase/in_app_purchase_android/android/build.gradle @@ -29,7 +29,10 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' + baseline file("lint-baseline.xml") } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 diff --git a/packages/local_auth/local_auth_android/android/build.gradle b/packages/local_auth/local_auth_android/android/build.gradle index 8e116709d6c..6bd8e4d845d 100644 --- a/packages/local_auth/local_auth_android/android/build.gradle +++ b/packages/local_auth/local_auth_android/android/build.gradle @@ -29,6 +29,8 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' baseline file("lint-baseline.xml") } diff --git a/packages/path_provider/path_provider_android/android/build.gradle b/packages/path_provider/path_provider_android/android/build.gradle index 96558c4248b..7e348233d34 100644 --- a/packages/path_provider/path_provider_android/android/build.gradle +++ b/packages/path_provider/path_provider_android/android/build.gradle @@ -29,7 +29,10 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' + baseline file("lint-baseline.xml") } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 diff --git a/packages/quick_actions/quick_actions_android/android/build.gradle b/packages/quick_actions/quick_actions_android/android/build.gradle index 269f44d66d6..a668fb05387 100644 --- a/packages/quick_actions/quick_actions_android/android/build.gradle +++ b/packages/quick_actions/quick_actions_android/android/build.gradle @@ -29,7 +29,10 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' + baseline file("lint-baseline.xml") } dependencies { diff --git a/packages/shared_preferences/shared_preferences_android/android/build.gradle b/packages/shared_preferences/shared_preferences_android/android/build.gradle index 9893ba6219f..905150edf78 100644 --- a/packages/shared_preferences/shared_preferences_android/android/build.gradle +++ b/packages/shared_preferences/shared_preferences_android/android/build.gradle @@ -37,6 +37,8 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' baseline file("lint-baseline.xml") } diff --git a/packages/url_launcher/url_launcher_android/android/build.gradle b/packages/url_launcher/url_launcher_android/android/build.gradle index d066fde7b17..0b34862c646 100644 --- a/packages/url_launcher/url_launcher_android/android/build.gradle +++ b/packages/url_launcher/url_launcher_android/android/build.gradle @@ -29,7 +29,10 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' + baseline file("lint-baseline.xml") } diff --git a/packages/video_player/video_player_android/android/build.gradle b/packages/video_player/video_player_android/android/build.gradle index 73b73526f61..9145f6c8b31 100644 --- a/packages/video_player/video_player_android/android/build.gradle +++ b/packages/video_player/video_player_android/android/build.gradle @@ -34,7 +34,10 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' + baseline file("lint-baseline.xml") } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 diff --git a/packages/webview_flutter/webview_flutter_android/android/build.gradle b/packages/webview_flutter/webview_flutter_android/android/build.gradle index 990746e3893..80c47b41d1f 100644 --- a/packages/webview_flutter/webview_flutter_android/android/build.gradle +++ b/packages/webview_flutter/webview_flutter_android/android/build.gradle @@ -30,7 +30,10 @@ android { } lintOptions { + checkAllWarnings true + warningsAsErrors true disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' + baseline file("lint-baseline.xml") } dependencies { From 03dd9ca13784e30d5323a111203679e3ad8c4d3a Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Wed, 5 Apr 2023 13:04:18 -0400 Subject: [PATCH 2/6] New baselines --- .../gradle/wrapper/gradle-wrapper.properties | 5 + .../camera_android/android/lint-baseline.xml | 3126 +++++++++++- .../android/lint-baseline.xml | 1441 ++++++ packages/espresso/android/lint-baseline.xml | 2453 +++++++++- .../android/lint-baseline.xml | 15 + .../android/lint-baseline.xml | 202 + .../android/lint-baseline.xml | 730 +++ .../android/lint-baseline.xml | 400 ++ .../android/lint-baseline.xml | 81 + .../android/lint-baseline.xml | 508 +- .../android/lint-baseline.xml | 114 + .../android/lint-baseline.xml | 81 + .../android/lint-baseline.xml | 52 +- .../android/lint-baseline.xml | 147 + .../example/android/build.gradle | 2 +- .../android/lint-baseline.xml | 653 +++ .../android/lint-baseline.xml | 4305 +++++++++++++++++ .../example/android/build.gradle | 2 +- 18 files changed, 14034 insertions(+), 283 deletions(-) create mode 100644 packages/camera/camera_android/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 packages/camera/camera_android_camerax/android/lint-baseline.xml create mode 100644 packages/flutter_plugin_android_lifecycle/android/lint-baseline.xml create mode 100644 packages/google_maps_flutter/google_maps_flutter_android/android/lint-baseline.xml create mode 100644 packages/google_sign_in/google_sign_in_android/android/lint-baseline.xml create mode 100644 packages/image_picker/image_picker_android/android/lint-baseline.xml create mode 100644 packages/in_app_purchase/in_app_purchase_android/android/lint-baseline.xml create mode 100644 packages/path_provider/path_provider_android/android/lint-baseline.xml create mode 100644 packages/quick_actions/quick_actions_android/android/lint-baseline.xml create mode 100644 packages/url_launcher/url_launcher_android/android/lint-baseline.xml create mode 100644 packages/video_player/video_player_android/android/lint-baseline.xml create mode 100644 packages/webview_flutter/webview_flutter_android/android/lint-baseline.xml diff --git a/packages/camera/camera_android/android/gradle/wrapper/gradle-wrapper.properties b/packages/camera/camera_android/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000000..69a9715077f --- /dev/null +++ b/packages/camera/camera_android/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/packages/camera/camera_android/android/lint-baseline.xml b/packages/camera/camera_android/android/lint-baseline.xml index 4ddaafa8798..b0fc2e758df 100644 --- a/packages/camera/camera_android/android/lint-baseline.xml +++ b/packages/camera/camera_android/android/lint-baseline.xml @@ -1,114 +1,3106 @@ - + + + + + + file="src/main/java/io/flutter/plugins/camera/features/sensororientation/DeviceOrientationManager.java" + line="250" + column="5"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations" + errorLine1=" public static FocusMode getValueForString(String modeStr) {" + errorLine2=" ~~~~~~~~~"> + file="src/main/java/io/flutter/plugins/camera/features/autofocus/FocusMode.java" + line="18" + column="17"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations" + errorLine1=" public static FocusMode getValueForString(String modeStr) {" + errorLine2=" ~~~~~~"> + file="src/main/java/io/flutter/plugins/camera/features/autofocus/FocusMode.java" + line="18" + column="45"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations" + errorLine1=" public static FocusMode getValueForString(String modeStr) {" + errorLine2=" ~~~~~~~~~"> + file="src/main/java/io/flutter/plugins/camera/types/FocusMode.java" + line="18" + column="17"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations" + errorLine1=" public static FocusMode getValueForString(String modeStr) {" + errorLine2=" ~~~~~~"> + file="src/main/java/io/flutter/plugins/camera/types/FocusMode.java" + line="18" + column="45"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations" + errorLine1=" CameraProperties cameraProperties, SensorOrientationFeature sensorOrientationFeature) {" + errorLine2=" ~~~~~~~~~~~~~~~~"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations" + errorLine1=" public void setValue(NoiseReductionMode value) {" + errorLine2=" ~~~~~~~~~~~~~~~~~~"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations" + errorLine1=" public void setValue(Integer value) {" + errorLine2=" ~~~~~~~"> + file="src/main/java/io/flutter/plugins/camera/features/sensororientation/SensorOrientationFeature.java" + line="56" + column="24"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations" + errorLine1=" public void updateBuilder(CaptureRequest.Builder requestBuilder) {" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> + file="src/main/java/io/flutter/plugins/camera/features/sensororientation/SensorOrientationFeature.java" + line="66" + column="29"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations" + errorLine1=" public DeviceOrientationManager getDeviceOrientationManager() {" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> + + + + + + + + + column="10"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/camera/camera_android_camerax/android/lint-baseline.xml b/packages/camera/camera_android_camerax/android/lint-baseline.xml new file mode 100644 index 00000000000..886ac79a5c5 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/lint-baseline.xml @@ -0,0 +1,1441 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/espresso/android/lint-baseline.xml b/packages/espresso/android/lint-baseline.xml index 19b349f044b..c07e756707e 100644 --- a/packages/espresso/android/lint-baseline.xml +++ b/packages/espresso/android/lint-baseline.xml @@ -1,5 +1,5 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + file="src/main/java/androidx/test/espresso/flutter/internal/idgenerator/IdException.java" + line="20" + column="22"/> + + + + + + + + + + + + + + + + + + + + + + + + + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public WidgetMatcher getAncestorMatcher() {" + errorLine2=" ~~~~~~~~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/matcher/IsDescendantOfMatcher.java" + line="47" + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public WidgetMatcher getWidgetMatcher() {" + errorLine2=" ~~~~~~~~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/matcher/IsDescendantOfMatcher.java" + line="52" + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" protected boolean matchesSafely(WidgetInfo widget) {" + errorLine2=" ~~~~~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/matcher/IsDescendantOfMatcher.java" + line="62" + column="35"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public void describeTo(Description description) {" + errorLine2=" ~~~~~~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/matcher/IsDescendantOfMatcher.java" + line="68" + column="26"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" protected boolean matchesSafely(WidgetInfo widget) {" + errorLine2=" ~~~~~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/matcher/IsExistingMatcher.java" + line="23" + column="35"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public void describeTo(Description description) {" + errorLine2=" ~~~~~~~~~~~"> + + + + + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public JsonRpcClient(OkHttpClient client, URI webSocketUri) {" + errorLine2=" ~~~"> + file="src/main/java/androidx/test/espresso/flutter/internal/jsonrpc/JsonRpcClient.java" + line="45" + column="45"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public ListenableFuture<JsonRpcResponse> request(JsonRpcRequest request) {" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/internal/jsonrpc/JsonRpcClient.java" + line="74" + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public ListenableFuture<JsonRpcResponse> request(JsonRpcRequest request) {" + errorLine2=" ~~~~~~~~~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/internal/jsonrpc/JsonRpcClient.java" + line="74" + column="52"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public static JsonRpcRequest fromJson(String jsonString) {" + errorLine2=" ~~~~~~~~~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/internal/jsonrpc/message/JsonRpcRequest.java" + line="51" + column="17"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public static JsonRpcRequest fromJson(String jsonString) {" + errorLine2=" ~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/internal/jsonrpc/message/JsonRpcRequest.java" + line="51" + column="41"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public String getVersion() {" + errorLine2=" ~~~~~~"> + line="86" + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public String getId() {" + errorLine2=" ~~~~~~"> + line="95" + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public String getMethod() {" + errorLine2=" ~~~~~~"> + line="104" + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public JsonObject getParams() {" + errorLine2=" ~~~~~~~~~~"> + line="109" + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public String toJson() {" + errorLine2=" ~~~~~~"> + line="118" + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public Builder(String method) {" + errorLine2=" ~~~~~~"> + line="172" + column="20"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public Builder setId(@Nullable String id) {" + errorLine2=" ~~~~~~~"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + line="49" + column="17"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public static JsonRpcResponse fromJson(String jsonString) {" + errorLine2=" ~~~~~~"> + line="49" + column="42"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public JsonRpcResponse(String id) {" + errorLine2=" ~~~~~~"> + line="62" + column="26"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public String getVersion() {" + errorLine2=" ~~~~~~"> + line="72" + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public String getId() {" + errorLine2=" ~~~~~~"> + line="77" + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public void setId(String id) {" + errorLine2=" ~~~~~~"> + line="86" + column="21"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public JsonObject getResult() {" + errorLine2=" ~~~~~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/internal/jsonrpc/message/JsonRpcResponse.java" + line="91" + column="10"/> + + + + + + + + + + + + + + + + + + + + + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" protected String actionId;" + errorLine2=" ~~~~~~"> + line="30" + column="13"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public Future<Void> perform(" + errorLine2=" ~~~~~~~~~~~~"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public Future<WidgetInfo> perform(" + errorLine2=" ~~~~~~~~~~~~~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/action/WidgetInfoFetcher.java" + line="21" + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" protected String matcherId;" + errorLine2=" ~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/api/WidgetMatcher.java" + line="31" + column="13"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public String getText() {" + errorLine2=" ~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/matcher/WithTextMatcher.java" + line="31" + column="10"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" protected boolean matchesSafely(WidgetInfo widget) {" + errorLine2=" ~~~~~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/matcher/WithTextMatcher.java" + line="41" + column="35"/> + id="UnknownNullness" + message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" + errorLine1=" public void describeTo(Description description) {" + errorLine2=" ~~~~~~~~~~~"> + file="src/main/java/androidx/test/espresso/flutter/matcher/WithTextMatcher.java" + line="46" + column="26"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/flutter_plugin_android_lifecycle/android/lint-baseline.xml b/packages/flutter_plugin_android_lifecycle/android/lint-baseline.xml new file mode 100644 index 00000000000..0c5fc18e5a6 --- /dev/null +++ b/packages/flutter_plugin_android_lifecycle/android/lint-baseline.xml @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/packages/google_maps_flutter/google_maps_flutter_android/android/lint-baseline.xml b/packages/google_maps_flutter/google_maps_flutter_android/android/lint-baseline.xml new file mode 100644 index 00000000000..092b2d57e77 --- /dev/null +++ b/packages/google_maps_flutter/google_maps_flutter_android/android/lint-baseline.xml @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/google_sign_in/google_sign_in_android/android/lint-baseline.xml b/packages/google_sign_in/google_sign_in_android/android/lint-baseline.xml new file mode 100644 index 00000000000..c59558ae18a --- /dev/null +++ b/packages/google_sign_in/google_sign_in_android/android/lint-baseline.xml @@ -0,0 +1,730 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/image_picker/image_picker_android/android/lint-baseline.xml b/packages/image_picker/image_picker_android/android/lint-baseline.xml new file mode 100644 index 00000000000..765a6ca914b --- /dev/null +++ b/packages/image_picker/image_picker_android/android/lint-baseline.xml @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/in_app_purchase/in_app_purchase_android/android/lint-baseline.xml b/packages/in_app_purchase/in_app_purchase_android/android/lint-baseline.xml new file mode 100644 index 00000000000..03eeb956885 --- /dev/null +++ b/packages/in_app_purchase/in_app_purchase_android/android/lint-baseline.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/local_auth/local_auth_android/android/lint-baseline.xml b/packages/local_auth/local_auth_android/android/lint-baseline.xml index e89eaadb3e6..3f0a47a6824 100644 --- a/packages/local_auth/local_auth_android/android/lint-baseline.xml +++ b/packages/local_auth/local_auth_android/android/lint-baseline.xml @@ -1,5 +1,5 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/path_provider/path_provider_android/android/lint-baseline.xml b/packages/path_provider/path_provider_android/android/lint-baseline.xml new file mode 100644 index 00000000000..4ae0352f93c --- /dev/null +++ b/packages/path_provider/path_provider_android/android/lint-baseline.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/quick_actions/quick_actions_android/android/lint-baseline.xml b/packages/quick_actions/quick_actions_android/android/lint-baseline.xml new file mode 100644 index 00000000000..2df302dcb73 --- /dev/null +++ b/packages/quick_actions/quick_actions_android/android/lint-baseline.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/shared_preferences/shared_preferences_android/android/lint-baseline.xml b/packages/shared_preferences/shared_preferences_android/android/lint-baseline.xml index 6b2f35f5a15..ca2bc158739 100644 --- a/packages/shared_preferences/shared_preferences_android/android/lint-baseline.xml +++ b/packages/shared_preferences/shared_preferences_android/android/lint-baseline.xml @@ -1,5 +1,5 @@ - + @@ -63,7 +63,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~"> @@ -74,8 +74,52 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~"> + + + + + + + + + + + + + + + + diff --git a/packages/url_launcher/url_launcher_android/android/lint-baseline.xml b/packages/url_launcher/url_launcher_android/android/lint-baseline.xml new file mode 100644 index 00000000000..fa3c2e350b4 --- /dev/null +++ b/packages/url_launcher/url_launcher_android/android/lint-baseline.xml @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 0e900021669..97b4741d6da 100644 --- a/packages/url_launcher/url_launcher_android/example/android/build.gradle +++ b/packages/url_launcher/url_launcher_android/example/android/build.gradle @@ -24,7 +24,7 @@ subprojects { project.evaluationDependsOn(':app') } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } diff --git a/packages/video_player/video_player_android/android/lint-baseline.xml b/packages/video_player/video_player_android/android/lint-baseline.xml new file mode 100644 index 00000000000..4649a80f7b9 --- /dev/null +++ b/packages/video_player/video_player_android/android/lint-baseline.xml @@ -0,0 +1,653 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/webview_flutter/webview_flutter_android/android/lint-baseline.xml b/packages/webview_flutter/webview_flutter_android/android/lint-baseline.xml new file mode 100644 index 00000000000..60db6dd1607 --- /dev/null +++ b/packages/webview_flutter/webview_flutter_android/android/lint-baseline.xml @@ -0,0 +1,4305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 ca118fdb964..614573a9fb8 100644 --- a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle +++ b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle @@ -24,7 +24,7 @@ subprojects { project.evaluationDependsOn(':app') } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } From 0fed7221dbc149e1f62f5eaf30ce0eb1f33df80b Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Wed, 5 Apr 2023 13:09:29 -0400 Subject: [PATCH 3/6] Add a missed InvalidPackage suppression --- .../camera/camera_android_camerax/android/build.gradle | 3 +-- .../camera_android_camerax/android/lint-baseline.xml | 7 ------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/build.gradle b/packages/camera/camera_android_camerax/android/build.gradle index 10f66f49ea9..492d1374b8a 100644 --- a/packages/camera/camera_android_camerax/android/build.gradle +++ b/packages/camera/camera_android_camerax/android/build.gradle @@ -51,8 +51,7 @@ android { lintOptions { checkAllWarnings true warningsAsErrors true - disable 'AndroidGradlePluginVersion' - disable 'GradleDependency' + disable 'AndroidGradlePluginVersion', 'GradleDependency', 'InvalidPackage' baseline file("lint-baseline.xml") } } diff --git a/packages/camera/camera_android_camerax/android/lint-baseline.xml b/packages/camera/camera_android_camerax/android/lint-baseline.xml index 886ac79a5c5..1142794741a 100644 --- a/packages/camera/camera_android_camerax/android/lint-baseline.xml +++ b/packages/camera/camera_android_camerax/android/lint-baseline.xml @@ -1,13 +1,6 @@ - - - - Date: Wed, 5 Apr 2023 13:16:34 -0400 Subject: [PATCH 4/6] revert accidental changes --- .../android/gradle/wrapper/gradle-wrapper.properties | 5 ----- .../url_launcher_android/example/android/build.gradle | 2 +- .../webview_flutter_android/example/android/build.gradle | 2 +- 3 files changed, 2 insertions(+), 7 deletions(-) delete mode 100644 packages/camera/camera_android/android/gradle/wrapper/gradle-wrapper.properties diff --git a/packages/camera/camera_android/android/gradle/wrapper/gradle-wrapper.properties b/packages/camera/camera_android/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 69a9715077f..00000000000 --- a/packages/camera/camera_android/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists 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 97b4741d6da..0e900021669 100644 --- a/packages/url_launcher/url_launcher_android/example/android/build.gradle +++ b/packages/url_launcher/url_launcher_android/example/android/build.gradle @@ -24,7 +24,7 @@ subprojects { project.evaluationDependsOn(':app') } -tasks.register("clean", Delete) { +task clean(type: Delete) { delete rootProject.buildDir } 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 614573a9fb8..ca118fdb964 100644 --- a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle +++ b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle @@ -24,7 +24,7 @@ subprojects { project.evaluationDependsOn(':app') } -tasks.register("clean", Delete) { +task clean(type: Delete) { delete rootProject.buildDir } From 1f880d8169692d5f2c09595c448d089e2a19f010 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Thu, 6 Apr 2023 14:58:17 -0400 Subject: [PATCH 5/6] Add tooling check for new config --- script/tool/lib/src/lint_android_command.dart | 69 +++++++++++---- .../tool/test/lint_android_command_test.dart | 86 +++++++++++++++++-- 2 files changed, 132 insertions(+), 23 deletions(-) diff --git a/script/tool/lib/src/lint_android_command.dart b/script/tool/lib/src/lint_android_command.dart index f146b2d4fbb..3fe25eec283 100644 --- a/script/tool/lib/src/lint_android_command.dart +++ b/script/tool/lib/src/lint_android_command.dart @@ -39,11 +39,28 @@ class LintAndroidCommand extends PackageLoopingCommand { } bool failed = false; + + // Ensure that the plugin has a strict Gradle-driven lint configuration, so + // that this test actually catches most issues. + if (!_mainGradleHasLintConfig(package)) { + failed = true; + printError('This plugin is not configured to enable all Gradle-driven ' + 'lint warnings and treat them as errors. ' + 'Please add the following to the lintOptions section of ' + 'android/build.gradle:'); + print(''' + checkAllWarnings true + warningsAsErrors true +'''); + } + for (final RepositoryPackage example in package.getExamples()) { final GradleProject project = GradleProject(example, processRunner: processRunner, platform: platform); if (!project.isConfigured()) { + // TODO(stuartmorgan): Replace this with a --config-only build once + // that's available on stable. return PackageResult.fail(['Build examples before linting']); } @@ -61,25 +78,13 @@ class LintAndroidCommand extends PackageLoopingCommand { 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 + // In addition to running the Gradle-driven 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'))) { + if (!_exampleGradleHasJavacLintConfig(example, packageName)) { failed = true; printError('The example ' - '${getRelativePosixPath(example.directory, from: package.directory)} ' + '"${getRelativePosixPath(example.directory, from: package.directory)}" ' 'is not configured to treat javac lints and warnings as errors. ' 'Please add the following to its build.gradle:'); print(''' @@ -96,4 +101,36 @@ gradle.projectsEvaluated { return failed ? PackageResult.fail() : PackageResult.success(); } + + /// Returns whether the plugin project is configured to enable all Gradle + /// lints and treat them as errors. + bool _mainGradleHasLintConfig(RepositoryPackage package) { + final List gradleBuildContents = package + .platformDirectory(FlutterPlatform.android) + .childFile('build.gradle') + .readAsLinesSync(); + return gradleBuildContents + .any((String line) => line.contains('checkAllWarnings true')) && + gradleBuildContents + .any((String line) => line.contains('warningsAsErrors true')); + } + + /// Returns whether the example project is configured to build with javac + /// lints enabled and treated as errors. + bool _exampleGradleHasJavacLintConfig( + RepositoryPackage example, String pluginPackageName) { + 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). + return gradleBuildContents.any( + (String line) => line.contains('project(":$pluginPackageName")')) && + gradleBuildContents.any((String line) => + line.contains('options.compilerArgs') && + line.contains('-Xlint') && + line.contains('-Werror')); + } } diff --git a/script/tool/test/lint_android_command_test.dart b/script/tool/test/lint_android_command_test.dart index 40ffaf177a7..a7e00260583 100644 --- a/script/tool/test/lint_android_command_test.dart +++ b/script/tool/test/lint_android_command_test.dart @@ -39,7 +39,46 @@ void main() { runner.addCommand(command); }); - void writeFakeBuildGradle(RepositoryPackage example, String pluginName, + void writeFakePluginBuildGradle(RepositoryPackage plugin, + {bool warningsConfigured = true}) { + const String warningConfig = ''' + lintOptions { + checkAllWarnings true + warningsAsErrors true + disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' + baseline file("lint-baseline.xml") + } +'''; + final File gradleFile = plugin + .platformDirectory(FlutterPlatform.android) + .childFile('build.gradle'); + gradleFile.createSync(recursive: true); + gradleFile.writeAsStringSync(''' +android { + compileSdkVersion 33 + + defaultConfig { + minSdkVersion 16 + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } +${warningsConfigured ? warningConfig : ''} + testOptions { + unitTests.returnDefaultValues = true + unitTests.all { + testLogging { + events "passed", "skipped", "failed", "standardOut", "standardError" + outputs.upToDateWhen {false} + showStandardStreams = true + } + } + } +} + +'''); + } + + void writeFakeExampleBuildGradle( + RepositoryPackage example, String pluginName, {bool warningsConfigured = true}) { final String warningConfig = ''' gradle.projectsEvaluated { @@ -80,7 +119,8 @@ ${warningsConfigured ? warningConfig : ''} ], platformSupport: { platformAndroid: const PlatformDetails(PlatformSupport.inline) }); - writeFakeBuildGradle(plugin.getExamples().first, 'plugin1'); + writeFakePluginBuildGradle(plugin); + writeFakeExampleBuildGradle(plugin.getExamples().first, 'plugin1'); final Directory androidDir = plugin.getExamples().first.platformDirectory(FlutterPlatform.android); @@ -118,8 +158,9 @@ ${warningsConfigured ? warningConfig : ''} platformSupport: { platformAndroid: const PlatformDetails(PlatformSupport.inline) }); + writeFakePluginBuildGradle(plugin); for (final RepositoryPackage example in plugin.getExamples()) { - writeFakeBuildGradle(example, 'plugin1'); + writeFakeExampleBuildGradle(example, 'plugin1'); } final Iterable exampleAndroidDirs = plugin.getExamples().map( @@ -150,10 +191,11 @@ ${warningsConfigured ? warningConfig : ''} }); test('fails if gradlew is missing', () async { - createFakePlugin('plugin1', packagesDir, + final RepositoryPackage plugin = createFakePlugin('plugin1', packagesDir, platformSupport: { platformAndroid: const PlatformDetails(PlatformSupport.inline) }); + writeFakePluginBuildGradle(plugin); Error? commandError; final List output = await runCapturingPrint( @@ -178,7 +220,8 @@ ${warningsConfigured ? warningConfig : ''} ], platformSupport: { platformAndroid: const PlatformDetails(PlatformSupport.inline) }); - writeFakeBuildGradle(plugin.getExamples().first, 'plugin1'); + writeFakePluginBuildGradle(plugin); + writeFakeExampleBuildGradle(plugin.getExamples().first, 'plugin1'); final String gradlewPath = plugin .getExamples() @@ -206,6 +249,34 @@ ${warningsConfigured ? warningConfig : ''} )); }); + test('fails if gradle-driven lint-warnings-as-errors is missing', () async { + final RepositoryPackage plugin = + createFakePlugin('plugin1', packagesDir, extraFiles: [ + 'example/android/gradlew', + ], platformSupport: { + platformAndroid: const PlatformDetails(PlatformSupport.inline) + }); + writeFakePluginBuildGradle(plugin, warningsConfigured: false); + writeFakeExampleBuildGradle(plugin.getExamples().first, 'plugin1'); + + Error? commandError; + final List output = await runCapturingPrint( + runner, ['lint-android'], errorHandler: (Error e) { + commandError = e; + }); + + expect(commandError, isA()); + expect( + output, + containsAllInOrder( + [ + contains('This plugin is not configured to enable all ' + 'Gradle-driven lint warnings and treat them as errors.'), + contains('The following packages had errors:'), + ], + )); + }); + test('fails if javac lint-warnings-as-errors is missing', () async { final RepositoryPackage plugin = createFakePlugin('plugin1', packagesDir, extraFiles: [ @@ -213,7 +284,8 @@ ${warningsConfigured ? warningConfig : ''} ], platformSupport: { platformAndroid: const PlatformDetails(PlatformSupport.inline) }); - writeFakeBuildGradle(plugin.getExamples().first, 'plugin1', + writeFakePluginBuildGradle(plugin); + writeFakeExampleBuildGradle(plugin.getExamples().first, 'plugin1', warningsConfigured: false); Error? commandError; @@ -227,7 +299,7 @@ ${warningsConfigured ? warningConfig : ''} output, containsAllInOrder( [ - contains('The example example is not configured to treat javac ' + contains('The example "example" is not configured to treat javac ' 'lints and warnings as errors.'), contains('The following packages had errors:'), ], From 06e90682478138ee4d14fa41afe9ebe9fb3bad84 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Fri, 7 Apr 2023 11:13:38 -0400 Subject: [PATCH 6/6] Baseline update --- .../android/lint-baseline.xml | 524 ++++++------------ 1 file changed, 163 insertions(+), 361 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_android/android/lint-baseline.xml b/packages/webview_flutter/webview_flutter_android/android/lint-baseline.xml index 60db6dd1607..10821e05e8b 100644 --- a/packages/webview_flutter/webview_flutter_android/android/lint-baseline.xml +++ b/packages/webview_flutter/webview_flutter_android/android/lint-baseline.xml @@ -118,7 +118,7 @@ errorLine2=" ~~~~~~~~~"> @@ -129,7 +129,7 @@ errorLine2=" ~~~~~~~~~"> @@ -140,7 +140,7 @@ errorLine2=" ~~~~~~~~~"> @@ -151,7 +151,7 @@ errorLine2=" ~~~~~~~~~"> @@ -162,7 +162,7 @@ errorLine2=" ~~~~~~~~~"> @@ -173,7 +173,7 @@ errorLine2=" ~~~~~~~~~"> @@ -184,7 +184,7 @@ errorLine2=" ~~~~~~~~~"> @@ -195,7 +195,7 @@ errorLine2=" ~~~~~~~~~"> @@ -206,7 +206,7 @@ errorLine2=" ~~~~~~~~~"> @@ -217,7 +217,7 @@ errorLine2=" ~~~~~~~~~"> @@ -228,7 +228,7 @@ errorLine2=" ~~~~~~~~~"> @@ -239,7 +239,7 @@ errorLine2=" ~~~~~~~~~"> @@ -250,7 +250,7 @@ errorLine2=" ~~~~~~~~~"> @@ -261,7 +261,7 @@ errorLine2=" ~~~~~~~~~"> @@ -272,7 +272,7 @@ errorLine2=" ~~~~~~~~~"> @@ -283,7 +283,7 @@ errorLine2=" ~~~~~~~~~"> @@ -294,7 +294,7 @@ errorLine2=" ~~~~~~~~~"> @@ -305,7 +305,7 @@ errorLine2=" ~~~~~~~~~"> @@ -316,7 +316,7 @@ errorLine2=" ~~~~~~~~~"> @@ -327,7 +327,7 @@ errorLine2=" ~~~~~~~~~"> @@ -338,7 +338,7 @@ errorLine2=" ~~~~~~~~~"> @@ -349,7 +349,7 @@ errorLine2=" ~~~~~~~~~"> @@ -360,7 +360,7 @@ errorLine2=" ~~~~~~~~~"> @@ -371,7 +371,7 @@ errorLine2=" ~~~~~~~~~"> @@ -382,7 +382,7 @@ errorLine2=" ~~~~~~~~~"> @@ -393,7 +393,7 @@ errorLine2=" ~~~~~~~~~"> @@ -404,7 +404,7 @@ errorLine2=" ~~~~~~~~~"> @@ -415,7 +415,7 @@ errorLine2=" ~~~~~~~~~"> @@ -426,7 +426,7 @@ errorLine2=" ~~~~~~~~~"> @@ -437,7 +437,7 @@ errorLine2=" ~~~~~~~~~"> @@ -448,7 +448,7 @@ errorLine2=" ~~~~~~~~~"> @@ -459,7 +459,7 @@ errorLine2=" ~~~~~~~~~"> @@ -470,7 +470,7 @@ errorLine2=" ~~~~~~~~~"> @@ -481,7 +481,7 @@ errorLine2=" ~~~~~~~~~"> @@ -492,7 +492,7 @@ errorLine2=" ~~~~~~~~~"> @@ -503,7 +503,7 @@ errorLine2=" ~~~~~~~~~"> @@ -514,7 +514,7 @@ errorLine2=" ~~~~~~~~~"> @@ -525,7 +525,7 @@ errorLine2=" ~~~~~~~~~"> @@ -536,7 +536,7 @@ errorLine2=" ~~~~~~~~~"> @@ -547,7 +547,7 @@ errorLine2=" ~~~~~~~~~"> @@ -558,7 +558,7 @@ errorLine2=" ~~~~~~~~~"> @@ -569,7 +569,7 @@ errorLine2=" ~~~~~~~~~"> @@ -580,7 +580,7 @@ errorLine2=" ~~~~~~~~~"> @@ -591,7 +591,7 @@ errorLine2=" ~~~~~~~~~"> @@ -602,7 +602,7 @@ errorLine2=" ~~~~~~~~~"> @@ -613,7 +613,7 @@ errorLine2=" ~~~~~~~~~"> @@ -624,7 +624,7 @@ errorLine2=" ~~~~~~~~~"> @@ -635,7 +635,7 @@ errorLine2=" ~~~~~~~~~"> @@ -646,7 +646,7 @@ errorLine2=" ~~~~~~~~~"> @@ -657,7 +657,7 @@ errorLine2=" ~~~~~~~~~"> @@ -668,32 +668,10 @@ errorLine2=" ~~~~~~~~~"> - - - - - - - - - - - - - - - - - - - - @@ -1262,7 +1207,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -1273,7 +1218,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> @@ -1284,7 +1229,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -1295,7 +1240,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~"> @@ -1306,7 +1251,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> @@ -1317,7 +1262,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -1328,7 +1273,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1339,7 +1284,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -1350,7 +1295,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -1361,7 +1306,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> @@ -1372,7 +1317,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -1383,7 +1328,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> @@ -1394,7 +1339,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -1405,7 +1350,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -1416,7 +1361,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -1427,7 +1372,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -1438,7 +1383,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -1449,7 +1394,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -1460,7 +1405,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -1471,7 +1416,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> @@ -1482,7 +1427,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -1493,7 +1438,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1504,7 +1449,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -1515,7 +1460,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -1526,7 +1471,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> @@ -1537,7 +1482,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -1548,7 +1493,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> @@ -1559,7 +1504,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> @@ -1570,7 +1515,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -1581,7 +1526,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1592,7 +1537,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -1603,7 +1548,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -1614,7 +1559,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~"> @@ -1625,7 +1570,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> @@ -1636,7 +1581,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -1647,7 +1592,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~"> @@ -1658,7 +1603,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -1669,7 +1614,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -3374,7 +3319,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -3385,7 +3330,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~"> @@ -3396,7 +3341,7 @@ errorLine2=" ~~~~~~~"> @@ -3407,7 +3352,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -3418,54 +3363,10 @@ errorLine2=" ~~~~~~~~~~~~~~~"> - - - - - - - - - - - - - - - - @@ -3484,7 +3385,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -3495,7 +3396,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -3506,7 +3407,7 @@ errorLine2=" ~~~~"> @@ -3517,7 +3418,7 @@ errorLine2=" ~~~~~~~~~~~~~"> @@ -3528,84 +3429,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3616,7 +3440,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -3627,7 +3451,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -3638,18 +3462,18 @@ errorLine2=" ~~~~~~~~~~~~"> @@ -3660,32 +3484,10 @@ errorLine2=" ~~~~~~~"> - - - - - - - - @@ -3704,7 +3506,7 @@ errorLine2=" ~~~~~~"> @@ -3715,7 +3517,7 @@ errorLine2=" ~~~~~~"> @@ -3726,7 +3528,7 @@ errorLine2=" ~~~~~~"> @@ -3737,7 +3539,7 @@ errorLine2=" ~~~~"> @@ -3748,7 +3550,7 @@ errorLine2=" ~~~~~~"> @@ -3759,7 +3561,7 @@ errorLine2=" ~~~~~~"> @@ -3770,7 +3572,7 @@ errorLine2=" ~~~~~~"> @@ -3781,7 +3583,7 @@ errorLine2=" ~~~~~~"> @@ -3792,7 +3594,7 @@ errorLine2=" ~~~~~~"> @@ -3803,7 +3605,7 @@ errorLine2=" ~~~~"> @@ -3814,7 +3616,7 @@ errorLine2=" ~~~~~~"> @@ -3825,7 +3627,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~"> @@ -3836,7 +3638,7 @@ errorLine2=" ~~~~"> @@ -3847,7 +3649,7 @@ errorLine2=" ~~~~~~"> @@ -3858,7 +3660,7 @@ errorLine2=" ~~~~~~"> @@ -3869,7 +3671,7 @@ errorLine2=" ~~~~~~"> @@ -3880,7 +3682,7 @@ errorLine2=" ~~~~"> @@ -3891,7 +3693,7 @@ errorLine2=" ~~~~~~~"> @@ -3902,7 +3704,7 @@ errorLine2=" ~~~~"> @@ -3913,7 +3715,7 @@ errorLine2=" ~~~~~~~"> @@ -3924,7 +3726,7 @@ errorLine2=" ~~~~"> @@ -3935,7 +3737,7 @@ errorLine2=" ~~~~"> @@ -3946,7 +3748,7 @@ errorLine2=" ~~~~"> @@ -3957,7 +3759,7 @@ errorLine2=" ~~~~"> @@ -3968,7 +3770,7 @@ errorLine2=" ~~~~"> @@ -3979,7 +3781,7 @@ errorLine2=" ~~~~~~~"> @@ -3990,7 +3792,7 @@ errorLine2=" ~~~~"> @@ -4001,7 +3803,7 @@ errorLine2=" ~~~~~~"> @@ -4012,7 +3814,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -4023,7 +3825,7 @@ errorLine2=" ~~~~~~"> @@ -4034,7 +3836,7 @@ errorLine2=" ~~~~"> @@ -4045,7 +3847,7 @@ errorLine2=" ~~~~"> @@ -4056,7 +3858,7 @@ errorLine2=" ~~~~"> @@ -4067,7 +3869,7 @@ errorLine2=" ~~~~"> @@ -4078,7 +3880,7 @@ errorLine2=" ~~~~"> @@ -4089,7 +3891,7 @@ errorLine2=" ~~~~"> @@ -4100,7 +3902,7 @@ errorLine2=" ~~~~"> @@ -4111,7 +3913,7 @@ errorLine2=" ~~~~"> @@ -4122,7 +3924,7 @@ errorLine2=" ~~~~"> @@ -4133,7 +3935,7 @@ errorLine2=" ~~~~"> @@ -4144,7 +3946,7 @@ errorLine2=" ~~~~"> @@ -4155,7 +3957,7 @@ errorLine2=" ~~~~~~~"> @@ -4166,7 +3968,7 @@ errorLine2=" ~~~~"> @@ -4177,7 +3979,7 @@ errorLine2=" ~~~~"> @@ -4188,7 +3990,7 @@ errorLine2=" ~~~~"> @@ -4199,7 +4001,7 @@ errorLine2=" ~~~~"> @@ -4210,7 +4012,7 @@ errorLine2=" ~~~~"> @@ -4221,7 +4023,7 @@ errorLine2=" ~~~~"> @@ -4232,7 +4034,7 @@ errorLine2=" ~~~~"> @@ -4243,7 +4045,7 @@ errorLine2=" ~~~~"> @@ -4254,7 +4056,7 @@ errorLine2=" ~~~~"> @@ -4265,7 +4067,7 @@ errorLine2=" ~~~~"> @@ -4276,7 +4078,7 @@ errorLine2=" ~~~~"> @@ -4287,7 +4089,7 @@ errorLine2=" ~~~~"> @@ -4298,7 +4100,7 @@ errorLine2=" ~~~~~~~~~~~~~~~">