com.android.tools.lint.checks
Class IconDetector

java.lang.Object
  extended by com.android.tools.lint.detector.api.Detector
      extended by com.android.tools.lint.detector.api.ResourceXmlDetector
          extended by com.android.tools.lint.checks.IconDetector
All Implemented Interfaces:
com.android.tools.lint.detector.api.Detector.JavaScanner, com.android.tools.lint.detector.api.Detector.XmlScanner

public class IconDetector
extends com.android.tools.lint.detector.api.ResourceXmlDetector
implements com.android.tools.lint.detector.api.Detector.JavaScanner

Checks for common icon problems, such as wrong icon sizes, placing icons in the density independent drawable folder, etc.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.android.tools.lint.detector.api.Detector
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.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
 
Field Summary
static com.android.tools.lint.detector.api.Issue DUPLICATES_CONFIGURATIONS
          Duplicated contents across configurations for a given name
static com.android.tools.lint.detector.api.Issue DUPLICATES_NAMES
          Duplicated icons across different names
static com.android.tools.lint.detector.api.Issue GIF_USAGE
          Using .gif bitmaps
static com.android.tools.lint.detector.api.Issue ICON_COLORS
          Wrong filename according to the format
static com.android.tools.lint.detector.api.Issue ICON_DENSITIES
          Missing density versions of image
static com.android.tools.lint.detector.api.Issue ICON_DIP_SIZE
          Inconsistent dip size across densities
static com.android.tools.lint.detector.api.Issue ICON_EXPECTED_SIZE
          Wrong icon size according to published conventions
static com.android.tools.lint.detector.api.Issue ICON_EXTENSION
          Wrong filename according to the format
static com.android.tools.lint.detector.api.Issue ICON_LAUNCHER_SHAPE
          Wrong launcher icon shape
static com.android.tools.lint.detector.api.Issue ICON_LOCATION
          Images in res/drawable folder
static com.android.tools.lint.detector.api.Issue ICON_MISSING_FOLDER
          Missing density folders
static com.android.tools.lint.detector.api.Issue ICON_MIX_9PNG
          Drawables provided as both .9.png and .png files
static com.android.tools.lint.detector.api.Issue ICON_NODPI
          Icons appearing in both -nodpi and a -Ndpi folder
static com.android.tools.lint.detector.api.Issue ICON_XML_AND_PNG
          Icons appearing as both drawable xml files and bitmaps
 
Fields inherited from interface com.android.tools.lint.detector.api.Detector.XmlScanner
ALL
 
Constructor Summary
IconDetector()
          Constructs a new IconDetector check
 
Method Summary
 void afterCheckLibraryProject(com.android.tools.lint.detector.api.Context context)
           
 void afterCheckProject(com.android.tools.lint.detector.api.Context context)
           
 boolean appliesTo(com.android.tools.lint.detector.api.Context context, java.io.File file)
           
 boolean appliesTo(com.android.resources.ResourceFolderType folderType)
           
 void beforeCheckProject(com.android.tools.lint.detector.api.Context context)
           
 lombok.ast.AstVisitor createJavaVisitor(com.android.tools.lint.detector.api.JavaContext context)
           
 java.util.Collection<java.lang.String> getApplicableElements()
           
 java.util.List<java.lang.Class<? extends lombok.ast.Node>> getApplicableNodeTypes()
           
 com.android.tools.lint.detector.api.Speed getSpeed()
           
 void visitElement(com.android.tools.lint.detector.api.XmlContext context, org.w3c.dom.Element element)
           
 
Methods inherited from class com.android.tools.lint.detector.api.ResourceXmlDetector
run
 
Methods inherited from class com.android.tools.lint.detector.api.Detector
afterCheckFile, appliesToFolder, appliesToResourceRefs, beforeCheckFile, beforeCheckLibraryProject, checkBinaryResource, checkCall, checkClass, checkFolder, checkInstruction, getApplicableAsmNodeTypes, getApplicableAttributes, getApplicableCallNames, getApplicableCallOwners, getApplicableFiles, getApplicableMethodNames, getSpeed, visitAttribute, visitBuildScript, visitDocument, visitElementAfter, visitMethod, visitResourceReference
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.android.tools.lint.detector.api.Detector.JavaScanner
appliesToResourceRefs, getApplicableMethodNames, visitMethod, visitResourceReference
 
Methods inherited from interface com.android.tools.lint.detector.api.Detector.XmlScanner
getApplicableAttributes, visitAttribute, visitDocument, visitElementAfter
 

Field Detail

ICON_EXPECTED_SIZE

public static final com.android.tools.lint.detector.api.Issue ICON_EXPECTED_SIZE
Wrong icon size according to published conventions


ICON_DIP_SIZE

public static final com.android.tools.lint.detector.api.Issue ICON_DIP_SIZE
Inconsistent dip size across densities


ICON_LOCATION

public static final com.android.tools.lint.detector.api.Issue ICON_LOCATION
Images in res/drawable folder


ICON_DENSITIES

public static final com.android.tools.lint.detector.api.Issue ICON_DENSITIES
Missing density versions of image


ICON_MISSING_FOLDER

public static final com.android.tools.lint.detector.api.Issue ICON_MISSING_FOLDER
Missing density folders


GIF_USAGE

public static final com.android.tools.lint.detector.api.Issue GIF_USAGE
Using .gif bitmaps


DUPLICATES_NAMES

public static final com.android.tools.lint.detector.api.Issue DUPLICATES_NAMES
Duplicated icons across different names


DUPLICATES_CONFIGURATIONS

public static final com.android.tools.lint.detector.api.Issue DUPLICATES_CONFIGURATIONS
Duplicated contents across configurations for a given name


ICON_NODPI

public static final com.android.tools.lint.detector.api.Issue ICON_NODPI
Icons appearing in both -nodpi and a -Ndpi folder


ICON_MIX_9PNG

public static final com.android.tools.lint.detector.api.Issue ICON_MIX_9PNG
Drawables provided as both .9.png and .png files


ICON_XML_AND_PNG

public static final com.android.tools.lint.detector.api.Issue ICON_XML_AND_PNG
Icons appearing as both drawable xml files and bitmaps


ICON_EXTENSION

public static final com.android.tools.lint.detector.api.Issue ICON_EXTENSION
Wrong filename according to the format


ICON_COLORS

public static final com.android.tools.lint.detector.api.Issue ICON_COLORS
Wrong filename according to the format


ICON_LAUNCHER_SHAPE

public static final com.android.tools.lint.detector.api.Issue ICON_LAUNCHER_SHAPE
Wrong launcher icon shape

Constructor Detail

IconDetector

public IconDetector()
Constructs a new IconDetector check

Method Detail

getSpeed

@NonNull
public com.android.tools.lint.detector.api.Speed getSpeed()
Overrides:
getSpeed in class com.android.tools.lint.detector.api.Detector

beforeCheckProject

public void beforeCheckProject(@NonNull
                               com.android.tools.lint.detector.api.Context context)
Overrides:
beforeCheckProject in class com.android.tools.lint.detector.api.Detector

afterCheckLibraryProject

public void afterCheckLibraryProject(@NonNull
                                     com.android.tools.lint.detector.api.Context context)
Overrides:
afterCheckLibraryProject in class com.android.tools.lint.detector.api.Detector

afterCheckProject

public void afterCheckProject(@NonNull
                              com.android.tools.lint.detector.api.Context context)
Overrides:
afterCheckProject in class com.android.tools.lint.detector.api.Detector

appliesTo

public boolean appliesTo(@NonNull
                         com.android.tools.lint.detector.api.Context context,
                         @NonNull
                         java.io.File file)
Overrides:
appliesTo in class com.android.tools.lint.detector.api.ResourceXmlDetector

appliesTo

public boolean appliesTo(@NonNull
                         com.android.resources.ResourceFolderType folderType)
Overrides:
appliesTo in class com.android.tools.lint.detector.api.ResourceXmlDetector

getApplicableElements

public java.util.Collection<java.lang.String> getApplicableElements()
Specified by:
getApplicableElements in interface com.android.tools.lint.detector.api.Detector.XmlScanner
Overrides:
getApplicableElements in class com.android.tools.lint.detector.api.Detector

visitElement

public void visitElement(@NonNull
                         com.android.tools.lint.detector.api.XmlContext context,
                         @NonNull
                         org.w3c.dom.Element element)
Specified by:
visitElement in interface com.android.tools.lint.detector.api.Detector.XmlScanner
Overrides:
visitElement in class com.android.tools.lint.detector.api.Detector

createJavaVisitor

@Nullable
public lombok.ast.AstVisitor createJavaVisitor(@NonNull
                                                        com.android.tools.lint.detector.api.JavaContext context)
Specified by:
createJavaVisitor in interface com.android.tools.lint.detector.api.Detector.JavaScanner
Overrides:
createJavaVisitor in class com.android.tools.lint.detector.api.Detector

getApplicableNodeTypes

@Nullable
public java.util.List<java.lang.Class<? extends lombok.ast.Node>> getApplicableNodeTypes()
Specified by:
getApplicableNodeTypes in interface com.android.tools.lint.detector.api.Detector.JavaScanner
Overrides:
getApplicableNodeTypes in class com.android.tools.lint.detector.api.Detector