-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[webview_flutter_android] Fix Android lint warnings #3675
Conversation
@@ -30,7 +32,7 @@ public void setCookie(String url, String value) { | |||
* @param cookieManager The cookie manager to clear all cookies from. | |||
* @return Whether any cookies were removed. | |||
*/ | |||
@SuppressWarnings("deprecation") | |||
@SuppressWarnings({"deprecation", "RedundantSuppression"}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the scenario where the javac
linter and the Android gradle linter disagreed. The javac
linter claims this is deprecated, but the Android lint believes this does not need a suppression.
After I did some investigation, It looks like the problem is that the javac
linter doesn't understand the if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
or @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
logic. There are other instance of this throughout this plugin, and will probably show up in other plugins as well.
Potentially we should ignore the deprecation warning from the javac
linter and allow the Android gradle linter to handle it?
@reidbaker FYI
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the Android lint deprecation option covers everything the javac
lint one does, but automatically handles the version checks, disabling deprecation for javac
in all plugins sounds good to me. The fact that the javac
version made us suppress everything even when we were already doing checks was really annoying.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, is in the Android lint that we run with android-lint
(i.e., ./gradlew lint
) that objects to the suppression, or just AS? I just hit this locally while experimenting with another plugin's warnings, and I see that in AS, but not in the android-lint
lint report.
As far as I can tell, the AS linter is a third, different linter, that shows different things. (I also see things in the lint report that don't show up in AS.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I tried it again in Android Studio and I think you're right. I must have got the error mixed up with another one. The lint command does still pass if only @SuppressWarnings("deprecation")
is used. I should be able to change my local AS settings to ignore this warning.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all the cleanup!
- I added new tests to check the change I am making, or this PR is test-exempt.
The PR should also update (or remove if empty) the lint-baseline.xml
file, which would serve as a test for this.
@@ -118,9 +116,11 @@ private static ArrayList<DisplayListener> yoinkDisplayListeners(DisplayManager d | |||
return new ArrayList<>(); | |||
} | |||
try { | |||
//noinspection JavaReflectionMemberAccess |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these directives for the AS linter? I've not seen them for the linters we run in CI.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea, I didn't realize this was unique to AS. I went ahead and removed them
...ndroid/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewClientHostApiImpl.java
Show resolved
Hide resolved
@@ -22,15 +22,39 @@ | |||
import java.util.Map; | |||
|
|||
/** Generated class from Pigeon. */ | |||
@SuppressWarnings({"unused", "unchecked", "CodeBlock2Expr", "RedundantSuppression"}) | |||
@SuppressWarnings({"unused", "unchecked", "CodeBlock2Expr", "RedundantSuppression", "serial"}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For my own education did this suppression come from running pidgen?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, we added this to the Pigeon generator for Java recently.
@stuartmorgan I removed the baseline and finished fixing the rest of the lint errors |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
flutter/packages@d01f4ea...e4ec155 2023-04-14 stuartmorgan@google.com [shared_preferences] Remove Android lint baseline (flutter/packages#3707) 2023-04-13 37607224+AmanNegi@users.noreply.github.com [shared_preferences] Ports SharedPreferencesAndroid to Pigeon (flutter/packages#3321) 2023-04-13 10687576+bparrishMines@users.noreply.github.com [webview_flutter_android] Fix Android lint warnings (flutter/packages#3675) 2023-04-13 gautier.bayzelon@gmail.com [go_router_builder] Use only one .where() (flutter/packages#3698) 2023-04-13 engine-flutter-autoroll@skia.org Roll Flutter from 3b4b149 to be45eb2 (21 revisions) (flutter/packages#3701) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com,rmistry@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
flutter/packages@d01f4ea...e4ec155 2023-04-14 stuartmorgan@google.com [shared_preferences] Remove Android lint baseline (flutter/packages#3707) 2023-04-13 37607224+AmanNegi@users.noreply.github.com [shared_preferences] Ports SharedPreferencesAndroid to Pigeon (flutter/packages#3321) 2023-04-13 10687576+bparrishMines@users.noreply.github.com [webview_flutter_android] Fix Android lint warnings (flutter/packages#3675) 2023-04-13 gautier.bayzelon@gmail.com [go_router_builder] Use only one .where() (flutter/packages#3698) 2023-04-13 engine-flutter-autoroll@skia.org Roll Flutter from 3b4b149 to be45eb2 (21 revisions) (flutter/packages#3701) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com,rmistry@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
[webview_flutter_android] Fix Android lint warnings
Part of flutter/flutter#88011
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style.///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.