public class GradleDetector
extends com.android.tools.lint.detector.api.Detector
implements com.android.tools.lint.detector.api.Detector.GradleScanner
com.android.tools.lint.detector.api.Detector.BinaryResourceScanner, com.android.tools.lint.detector.api.Detector.ClassScanner, com.android.tools.lint.detector.api.Detector.GradleScanner, com.android.tools.lint.detector.api.Detector.JavaPsiScanner, com.android.tools.lint.detector.api.Detector.JavaScanner, com.android.tools.lint.detector.api.Detector.OtherFileScanner, com.android.tools.lint.detector.api.Detector.ResourceFolderScanner, com.android.tools.lint.detector.api.Detector.XmlScanner| Modifier and Type | Field and Description |
|---|---|
static com.android.tools.lint.detector.api.Issue |
ACCIDENTAL_OCTAL
Accidentally using octal numbers
|
static java.lang.String |
ANDROID_WEAR_GROUP_ID |
static java.lang.String |
APP_PLUGIN_ID
The Gradle plugin ID for Android applications
|
static com.android.tools.lint.detector.api.Issue |
COMPATIBILITY
Using incompatible versions
|
static com.android.tools.lint.detector.api.Issue |
DEPENDENCY
Obsolete dependencies
|
static com.android.tools.lint.detector.api.Issue |
DEPRECATED
Deprecated Gradle constructs
|
static java.lang.String |
GMS_GROUP_ID
Group ID for GMS
|
static java.lang.String |
GOOGLE_SUPPORT_GROUP_ID |
static com.android.tools.lint.detector.api.Issue |
GRADLE_GETTER
Accidentally calling a getter instead of your own methods
|
static com.android.tools.lint.detector.api.Issue |
GRADLE_PLUGIN_COMPATIBILITY
Incompatible Android Gradle plugin
|
static com.android.tools.lint.detector.api.Issue |
IDE_SUPPORT
Constructs the IDE support struggles with
|
static java.lang.String |
LIB_PLUGIN_ID
The Gradle plugin ID for Android libraries
|
static com.android.tools.lint.detector.api.Issue |
NOT_INTERPOLATED
Attempting to use substitution with single quotes
|
static java.lang.String |
OLD_APP_PLUGIN_ID
Previous plugin id for applications
|
static java.lang.String |
OLD_LIB_PLUGIN_ID
Previous plugin id for libraries
|
static com.android.tools.lint.detector.api.Issue |
PATH
Invalid or dangerous paths
|
static com.android.tools.lint.detector.api.Issue |
PLUS
Using + in versions
|
static com.android.tools.lint.detector.api.Issue |
REMOTE_VERSION
A newer version is available on a remote server
|
static com.android.tools.lint.detector.api.Issue |
STRING_INTEGER
Using a string where an integer is expected
|
| Constructor and Description |
|---|
GradleDetector() |
| Modifier and Type | Method and Description |
|---|---|
void |
afterCheckProject(com.android.tools.lint.detector.api.Context context) |
boolean |
appliesTo(com.android.tools.lint.detector.api.Context context,
java.io.File file) |
protected void |
checkDslPropertyAssignment(com.android.tools.lint.detector.api.Context context,
java.lang.String property,
java.lang.String value,
java.lang.String parent,
java.lang.String parentParent,
java.lang.Object valueCookie,
java.lang.Object statementCookie)
Called with for example "android", "defaultConfig", "minSdkVersion", "7"
|
protected void |
checkMethodCall(com.android.tools.lint.detector.api.Context context,
java.lang.String statement,
java.lang.String parent,
java.util.Map<java.lang.String,java.lang.String> namedArguments,
java.util.List<java.lang.String> unnamedArguments,
java.lang.Object cookie) |
protected void |
checkOctal(com.android.tools.lint.detector.api.Context context,
java.lang.String value,
java.lang.Object cookie) |
protected com.android.tools.lint.detector.api.Location |
createLocation(com.android.tools.lint.detector.api.Context context,
java.lang.Object cookie) |
static com.android.builder.model.Dependencies |
getCompileDependencies(com.android.builder.model.AndroidArtifact artifact,
com.android.ide.common.repository.GradleVersion version) |
static com.android.repository.Revision |
getLatestVersionFromRemoteRepo(com.android.tools.lint.client.api.LintClient client,
com.android.ide.common.repository.GradleCoordinate dependency,
boolean allowPreview)
TODO: Cache these results somewhere!
|
static java.lang.String |
getNewValue(com.android.tools.lint.detector.api.Issue issue,
java.lang.String errorMessage,
com.android.tools.lint.detector.api.TextFormat format)
Given an error message produced by this lint detector for the given issue type,
returns the new value to be put into the source code.
|
static java.lang.String |
getOldValue(com.android.tools.lint.detector.api.Issue issue,
java.lang.String errorMessage,
com.android.tools.lint.detector.api.TextFormat format)
Given an error message produced by this lint detector for the given issue type,
returns the old value to be replaced in the source code.
|
protected java.lang.Object |
getPropertyKeyCookie(java.lang.Object cookie) |
protected java.lang.Object |
getPropertyPairCookie(java.lang.Object cookie) |
com.android.tools.lint.detector.api.Speed |
getSpeed(com.android.tools.lint.detector.api.Issue issue) |
protected int |
getStartOffset(com.android.tools.lint.detector.api.Context context,
java.lang.Object cookie) |
protected static boolean |
isInterestingBlock(java.lang.String parent,
java.lang.String parentParent) |
protected static boolean |
isInterestingProperty(java.lang.String property,
java.lang.String parent,
java.lang.String parentParent) |
protected static boolean |
isInterestingStatement(java.lang.String statement,
java.lang.String parent) |
void |
visitBuildScript(com.android.tools.lint.detector.api.Context context,
java.util.Map<java.lang.String,java.lang.Object> sharedData) |
afterCheckFile, afterCheckLibraryProject, applicableSuperClasses, appliesTo, appliesToFolder, appliesToResourceRefs, beforeCheckFile, beforeCheckLibraryProject, beforeCheckProject, checkBinaryResource, checkCall, checkClass, checkClass, checkClass, checkFolder, checkInstruction, createJavaVisitor, createPsiVisitor, getApplicableAsmNodeTypes, getApplicableAttributes, getApplicableCallNames, getApplicableCallOwners, getApplicableConstructorTypes, getApplicableElements, getApplicableFiles, getApplicableMethodNames, getApplicableNodeTypes, getApplicablePsiTypes, getApplicableReferenceNames, getSpeed, run, visitAttribute, visitConstructor, visitConstructor, visitDocument, visitElement, visitElementAfter, visitMethod, visitMethod, visitReference, visitResourceReference, visitResourceReferencepublic static final com.android.tools.lint.detector.api.Issue DEPENDENCY
public static final com.android.tools.lint.detector.api.Issue DEPRECATED
public static final com.android.tools.lint.detector.api.Issue GRADLE_PLUGIN_COMPATIBILITY
public static final com.android.tools.lint.detector.api.Issue PATH
public static final com.android.tools.lint.detector.api.Issue IDE_SUPPORT
public static final com.android.tools.lint.detector.api.Issue PLUS
public static final com.android.tools.lint.detector.api.Issue GRADLE_GETTER
public static final com.android.tools.lint.detector.api.Issue COMPATIBILITY
public static final com.android.tools.lint.detector.api.Issue STRING_INTEGER
public static final com.android.tools.lint.detector.api.Issue NOT_INTERPOLATED
public static final com.android.tools.lint.detector.api.Issue REMOTE_VERSION
public static final com.android.tools.lint.detector.api.Issue ACCIDENTAL_OCTAL
public static final java.lang.String APP_PLUGIN_ID
public static final java.lang.String LIB_PLUGIN_ID
public static final java.lang.String OLD_APP_PLUGIN_ID
public static final java.lang.String OLD_LIB_PLUGIN_ID
public static final java.lang.String GMS_GROUP_ID
public static final java.lang.String GOOGLE_SUPPORT_GROUP_ID
public static final java.lang.String ANDROID_WEAR_GROUP_ID
public boolean appliesTo(@NonNull
com.android.tools.lint.detector.api.Context context,
@NonNull
java.io.File file)
appliesTo in class com.android.tools.lint.detector.api.Detector@NonNull
public com.android.tools.lint.detector.api.Speed getSpeed(@NonNull
com.android.tools.lint.detector.api.Issue issue)
getSpeed in class com.android.tools.lint.detector.api.Detectorpublic void visitBuildScript(@NonNull
com.android.tools.lint.detector.api.Context context,
java.util.Map<java.lang.String,java.lang.Object> sharedData)
visitBuildScript in interface com.android.tools.lint.detector.api.Detector.GradleScannervisitBuildScript in class com.android.tools.lint.detector.api.Detectorprotected static boolean isInterestingBlock(@NonNull
java.lang.String parent,
@Nullable
java.lang.String parentParent)
protected static boolean isInterestingStatement(@NonNull
java.lang.String statement,
@Nullable
java.lang.String parent)
protected static boolean isInterestingProperty(@NonNull
java.lang.String property,
@NonNull
java.lang.String parent,
@Nullable
java.lang.String parentParent)
protected void checkOctal(@NonNull
com.android.tools.lint.detector.api.Context context,
@NonNull
java.lang.String value,
@NonNull
java.lang.Object cookie)
protected void checkDslPropertyAssignment(@NonNull
com.android.tools.lint.detector.api.Context context,
@NonNull
java.lang.String property,
@NonNull
java.lang.String value,
@NonNull
java.lang.String parent,
@Nullable
java.lang.String parentParent,
@NonNull
java.lang.Object valueCookie,
@NonNull
java.lang.Object statementCookie)
@Nullable
public static java.lang.String getOldValue(@NonNull
com.android.tools.lint.detector.api.Issue issue,
@NonNull
java.lang.String errorMessage,
@NonNull
com.android.tools.lint.detector.api.TextFormat format)
Intended for IDE quickfix implementations.
issue - the corresponding issueerrorMessage - the error message associated with the errorformat - the format of the error message@Nullable
public static java.lang.String getNewValue(@NonNull
com.android.tools.lint.detector.api.Issue issue,
@NonNull
java.lang.String errorMessage,
@NonNull
com.android.tools.lint.detector.api.TextFormat format)
Intended for IDE quickfix implementations.
issue - the corresponding issueerrorMessage - the error message associated with the errorformat - the format of the error messageprotected void checkMethodCall(@NonNull
com.android.tools.lint.detector.api.Context context,
@NonNull
java.lang.String statement,
@Nullable
java.lang.String parent,
@NonNull
java.util.Map<java.lang.String,java.lang.String> namedArguments,
@NonNull
java.util.List<java.lang.String> unnamedArguments,
@NonNull
java.lang.Object cookie)
@Nullable
public static com.android.repository.Revision getLatestVersionFromRemoteRepo(@NonNull
com.android.tools.lint.client.api.LintClient client,
@NonNull
com.android.ide.common.repository.GradleCoordinate dependency,
boolean allowPreview)
public void afterCheckProject(@NonNull
com.android.tools.lint.detector.api.Context context)
afterCheckProject in class com.android.tools.lint.detector.api.Detector@NonNull
protected java.lang.Object getPropertyKeyCookie(@NonNull
java.lang.Object cookie)
@NonNull
protected java.lang.Object getPropertyPairCookie(@NonNull
java.lang.Object cookie)
protected int getStartOffset(@NonNull
com.android.tools.lint.detector.api.Context context,
@NonNull
java.lang.Object cookie)
protected com.android.tools.lint.detector.api.Location createLocation(@NonNull
com.android.tools.lint.detector.api.Context context,
@NonNull
java.lang.Object cookie)
@NonNull
public static com.android.builder.model.Dependencies getCompileDependencies(@NonNull
com.android.builder.model.AndroidArtifact artifact,
@Nullable
com.android.ide.common.repository.GradleVersion version)