summaryrefslogtreecommitdiff
path: root/lint/src
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2020-07-17 15:27:03 -0700
committerTor Norbye <tnorbye@google.com>2020-11-25 17:36:14 +0000
commitc2f94a1d436ef2162bedfdf905705677db0c239a (patch)
treefd22ee9be92ab90014b33c5b6e38e12af12d694b /lint/src
parent245e7bbe082ef32170ef3f8de51b99c3e4198a35 (diff)
downloadidea-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')
-rw-r--r--lint/src/com/android/tools/idea/lint/common/AndroidLintCheckResultInspection.java3
-rw-r--r--lint/src/com/android/tools/idea/lint/common/AndroidLintGradleDependencyInspection.java4
-rw-r--r--lint/src/com/android/tools/idea/lint/common/AndroidLintGradleDynamicVersionInspection.java8
-rw-r--r--lint/src/com/android/tools/idea/lint/common/AndroidLintMissingSuperCallInspection.java2
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()) {