diff options
author | Tor Norbye <tnorbye@google.com> | 2020-07-17 15:27:03 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2020-11-25 17:36:14 +0000 |
commit | c2f94a1d436ef2162bedfdf905705677db0c239a (patch) | |
tree | fd22ee9be92ab90014b33c5b6e38e12af12d694b /lint/src | |
parent | 245e7bbe082ef32170ef3f8de51b99c3e4198a35 (diff) | |
download | idea-c2f94a1d436ef2162bedfdf905705677db0c239a.tar.gz |
Update lint fix data map to be persistable
Most lint quickfixes are described as document edits or XML operations
as well as logical operations like reformat or add import.
However, there are some cases where the fix is more complicated and
lives in the IDE codebase, and the lint check simply passes a map of
keys+values to the IDE for interpretation. In some cases, this would
include data like PsiElements.
This CL reacts to the upstream lint API changes to the datamap API.
Test: Existing (and on the IDE side)
Bug: None
Change-Id: I1cca74dc5dc983dd4d4ba5327f5ec03581c397ae
Diffstat (limited to 'lint/src')
4 files changed, 12 insertions, 5 deletions
diff --git a/lint/src/com/android/tools/idea/lint/common/AndroidLintCheckResultInspection.java b/lint/src/com/android/tools/idea/lint/common/AndroidLintCheckResultInspection.java index 2ad729024f6..90bc5e13a64 100644 --- a/lint/src/com/android/tools/idea/lint/common/AndroidLintCheckResultInspection.java +++ b/lint/src/com/android/tools/idea/lint/common/AndroidLintCheckResultInspection.java @@ -17,6 +17,7 @@ package com.android.tools.idea.lint.common; import static com.android.tools.lint.checks.CheckResultDetector.CHECK_RESULT; +import com.android.tools.lint.checks.CheckResultDetector; import com.android.tools.lint.detector.api.LintFix; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; @@ -33,7 +34,7 @@ public class AndroidLintCheckResultInspection extends AndroidLintInspectionBase @NotNull PsiElement endElement, @NotNull String message, @Nullable LintFix fixData) { - String suggested = LintFix.getData(fixData, String.class); + String suggested = LintFix.getString(fixData, CheckResultDetector.KEY_SUGGESTION, null); if (suggested != null) { return new LintIdeQuickFix[]{new ReplaceCallFix(suggested)}; } diff --git a/lint/src/com/android/tools/idea/lint/common/AndroidLintGradleDependencyInspection.java b/lint/src/com/android/tools/idea/lint/common/AndroidLintGradleDependencyInspection.java index 7acfbee25ea..828096f5bf7 100644 --- a/lint/src/com/android/tools/idea/lint/common/AndroidLintGradleDependencyInspection.java +++ b/lint/src/com/android/tools/idea/lint/common/AndroidLintGradleDependencyInspection.java @@ -45,8 +45,8 @@ public class AndroidLintGradleDependencyInspection extends AndroidLintInspection @NotNull PsiElement endElement, @NotNull String message, @Nullable LintFix fixData) { - Class<?> detector = LintFix.getData(fixData, Class.class); - if (Objects.equals(detector, ConstraintLayoutDetector.class)) { + boolean updateConstraintLayout = LintFix.getBoolean(fixData, ConstraintLayoutDetector.KEY_UPGRADE_CONSTRAINT_LAYOUT, false); + if (updateConstraintLayout) { // Is this an upgrade message from the ConstraintLayoutDetector instead? return new LintIdeQuickFix[]{new UpgradeConstraintLayoutFix()}; } diff --git a/lint/src/com/android/tools/idea/lint/common/AndroidLintGradleDynamicVersionInspection.java b/lint/src/com/android/tools/idea/lint/common/AndroidLintGradleDynamicVersionInspection.java index 582b1214fd5..e9ae81ba9dc 100644 --- a/lint/src/com/android/tools/idea/lint/common/AndroidLintGradleDynamicVersionInspection.java +++ b/lint/src/com/android/tools/idea/lint/common/AndroidLintGradleDynamicVersionInspection.java @@ -33,7 +33,13 @@ public class AndroidLintGradleDynamicVersionInspection extends AndroidLintInspec @NotNull PsiElement endElement, @NotNull String message, @Nullable LintFix fixData) { - GradleCoordinate plus = LintFix.getData(fixData, GradleCoordinate.class); + String gc = LintFix.getString(fixData, GradleDetector.KEY_COORDINATE, null); + GradleCoordinate plus; + if (gc != null) { + plus = GradleCoordinate.parseCoordinateString(gc); + } else { + plus = null; + } //noinspection ConstantConditions if (plus != null && plus.getArtifactId() != null) { return new LintIdeQuickFix[]{ diff --git a/lint/src/com/android/tools/idea/lint/common/AndroidLintMissingSuperCallInspection.java b/lint/src/com/android/tools/idea/lint/common/AndroidLintMissingSuperCallInspection.java index e520ea41254..8e68645c2d4 100644 --- a/lint/src/com/android/tools/idea/lint/common/AndroidLintMissingSuperCallInspection.java +++ b/lint/src/com/android/tools/idea/lint/common/AndroidLintMissingSuperCallInspection.java @@ -64,7 +64,7 @@ public class AndroidLintMissingSuperCallInspection extends AndroidLintInspection if (!FileModificationService.getInstance().preparePsiElementForWrite(startElement)) { return; } - PsiMethod superMethod = LintFix.getData(fixData, PsiMethod.class); + PsiMethod superMethod = LintFix.getMethod(fixData, CallSuperDetector.KEY_METHOD); if (startElement.getLanguage() == JavaLanguage.INSTANCE) { PsiMethod method = PsiTreeUtil.getParentOfType(startElement, PsiMethod.class); if (method == null || method.isConstructor()) { |