| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| | |
Change-Id: I3499900277b108ac9d2a214d1078a20d29409c5a
|
|/
|
|
| |
Change-Id: I795a93b5d4b3041ba9892d5d3eb226de1873a88c
|
|
|
|
|
|
|
|
|
|
|
| |
This changeset adds a new typo detector. There
are also some lint infrastructure fixes to better
handle positions within text nodes, and to allow
Eclipse lint quickfixes to supply multiple fixes
for a single issue (such as multiple misspelling
alternative replacements.)
Change-Id: Ie26f0bafc571e02ae09ff27a7f4b221fe0c2ea5b
|
|
|
|
|
|
| |
protected by permissions.
Change-Id: I4811757779ca8048cd84f51173d8325d9f4af3d7
|
|\
| |
| |
| | |
analogous to the existing lint check for unprotected services."
|
| |
| |
| |
| |
| |
| | |
to the existing lint check for unprotected services.
Change-Id: I661c7a28853a521cd02e869a3dde97e56684dd56
|
|/
|
|
| |
Change-Id: I95c209535f39c1ef1384f75e19b9ab54f099a58c
|
|
|
|
|
|
| |
sending API functions
Change-Id: Iad5fd3e1e9c0add65da6717a601fad8ea2e9b84e
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
First, update our various project-specific Eclipse compiler settings
configuration files to include the new Eclipse 4 flags.
Second, turn off the "Unchecked conversion from non-annotated type to
@NonNull" warnings; there are hundreds or thousands of these, and
there isn't much we can do about them when they're coming from
platform and library APIs.
Third, make the lint projects warning-clean again by addressing
various warnings Eclipse found (such as some unclosed resources and
some null handling issues; yesterday's null annotation fixes only
addressed errors, not warnings.)
Change-Id: If75f7401a1cbeef1bf58b47ccaa9ad17bede7f91
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Eclipse 4.2 includes analysis support for @Nullable and @NonNull
annotations. However, it requires these annotations to be *repeated*
on every single method implementing or overriding a superclass or
interface method (!).
This changeset basically applies the quickfixes to inline these
annotations. It also changes the retention of our nullness
annotations from source to class, since without this Eclipse believes
that a @NonNull annotation downstream is a redefinition of a @Nullable
annotation.
Finally, the null analysis revealed a dozen or so places where the
nullness annotation was either wrong, or some null checking on
parameters or return values needed to be done.
Change-Id: I43b4e56e2d025a8a4c92a8873f55c13cdbc4c1cb
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fragments should provide a default constructor, and only a default
constructor, such that they can be recreated by the system on
configuration changes.
This changeset adds a lint check to catch cases where this is not the
case -- such as fragments that are non-static innerclasses, or where
the the class or constructor is not public. It also warns if the
fragment contains any *other* constructors, since the fragment
documentation strongly advises against it.
Change-Id: I8cdd00fd7c74259f84977804e36ace7c43864026
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changeset contains various unrelated fixes to the lint
infrastructure:
(1) Tweak the way the classpaths are computed in the default lint
client method such that rather than reading and parsing the
.classpath file 3 times, once for each of source-path, output-path
and library-path, it's now processing it once and storing the
results for all 3.
(2) Override the lookup-classpath method in Eclipse to directly query
the Eclipse APIs for obtaining the classpath info.
(3) Add in user libraries found in libs/, since these don't
necessarily show up in the .classpath file.
(4) Fix a couple of bugs related to checking .class files: First, when
locating the project for a .class file, lint would search upwards
for the surrounding project, which meant looking for the nearest
parent containing an AndroidManifest.xml file. However, in the
case of .class files, it will first encounter the bin/ directory,
which can contain a manifest file, so it would compute a project
for the bin/ folder rather than its parent, which meant the source
paths would be wrong.
Second, the list of class entries to be processed by lint must be
sorted prior to processing; the code dealing with innerclasses
depends on that.
(5) Some minor code cleanup: Move some generic utility code and some
string literals out of specific detectors and into the generic
utility and constant classes.
(6) Cache results of the lint-project to eclipse-project lookup method
since that method is called repeatedly with the same (current)
project.
Change-Id: I33603eed8381ca54314202620cb1bb033e70f775
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The api-versions.xml file is being updated in a separate CL to pick up
some metadata which was missing, such as some enumeration constants.
As part of the update, it's also removing the duplication of all the
interface methods in the classes that implement those methods.
This changeset updates the API Lookup code to handle this
correctly. It will now properly visit the interface hierarchy, not
just the superclass hierarchy, when computing the full set of methods
and fields inherited into a class, as well as when it determines the
introduced-in API level for each method.
Change-Id: If19697b9812eaa072536057daa5cffe3589a0c75
|
|
|
|
|
|
|
|
| |
Handle cases where the package name contains upper case characters.
http://code.google.com/p/android/issues/detail?id=31592
Change-Id: I0db7831cc34fc4497de46df75f1e19e908ac13fd
|
|
|
|
| |
Change-Id: Ia1b023979d2c817e13a67cd5f3f85c1ddd4f65a2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changeset adds support for per-save file checking in Java source
files. It will run both source file and bytecode based checks,
possibly at different times (since they are updated at different
times). This required some changes to the incremental lint runner,
since now incremental checking means possibly touching more than one
file (multiple inner classes for a single source), as well as
distinguishing between the source files containing markers (the .java
file) and the actual files being analyzed (the .class files).
This changeset also formalizes incremental lint checking a bit: it now
distinguishes between the affected scope of an issue (all the various
file types that can affect an issue), as well as the scope sets that
are capable of analyzing the issue independently.
Take the API check for example. Its affected scope includes both XML
files and Java class files, since both can contain API references (in
the case of XML, a <GridLayout> reference is an invocation of a
constructor of the GridLayout class for example). However, we can
analyze a standalone class file, or a standalone XML file, and
incrementally update issues found in the file, without regard for the
other. Therefore, the API detector has two separate analysis scopes:
classes, and XML resources. The manifest registration detector on the
other hand needs to look at both the manifest file and the class
files; it cannot look at just a subset of these.
Change-Id: Ibf5ca8a90846256e0817b419908ee53f8354412a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changeset fixes the API detector such that references to a
constructor (e.g. where the bytecode name of the method being called
is "<init>") are properly located in the source code. This is done by
altering the search pattern to look for the owner field instead.
This changeset also pulls out the generic "find location for a class
declaration" from the recent HandlerDetector and into a generic
utility position in the ClassContext, and makes the case handling
anonymous inner classes generic rather than being hardcoded for
subclasses of Handler.
Change-Id: I25f60fda77924edc02bb3029b301e484b0b24931
|
|
|
|
| |
Change-Id: I9fd1669b91303b0f82c6abf2114b7e72a72697dd
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
See issue
http://code.google.com/p/android/issues/detail?id=22889
Change-Id: Ifd27764c0bb3360e52abb3334bdbfef820d231f7
|
|/
|
|
| |
Change-Id: Ifacc8df1ef9169c57725652ae9d921ed2b3129bd
|
|
|
|
|
|
|
| |
Fix for
http://code.google.com/p/android/issues/detail?id=27966
Change-Id: I1a3e538644044ee0c02cb729aca40e15f5b23d22
|
|
|
|
|
|
| |
Fixes http://code.google.com/p/android/issues/detail?id=29263
Change-Id: Id4e247ce751bca9ff54311126d64e1fbd0bfb312
|
|
|
|
|
|
|
|
| |
Those constants are tied to the build target, not the minimum
or target SDK versions (so compilation will already complain
if you're using a too old version.)
Change-Id: I54376eb7c44f749e1494ff8a39987ec1aa6117ad
|
|\ |
|
| |
| |
| |
| | |
Change-Id: Ic8bbb084b08a3f35c651959217ee3d24c8ae61c5
|
|\ \ |
|
| |/
| |
| |
| | |
Change-Id: I69d053e4242e0af2080fdd9ed233fd10c8963d1b
|
|/
|
|
|
|
|
| |
This CL fixes issue 28201: Lint API Level checks fail when static
methods are called without stating class name
Change-Id: I9b9e92e1d5e17acad1d37d8fd2684f0321132281
|
|\ |
|
| |
| |
| |
| | |
Change-Id: I2ff5e88fce13f9016b27878ece2c45ea1b58ad7a
|
|\ \ |
|
| |/
| |
| |
| | |
Change-Id: I3ea0ce70ab0a3a191acd3f181878bb8ceb1538fe
|
|\ \ |
|
| |/
| |
| |
| | |
Change-Id: I2784712f5b298e7103c12d04bc7ae7fbeefd9cdf
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This changeset looks for Toast.makeText() calls where there is no
corresponding show() afterwards on the Toast object, which is a common
mistake.
It also looks for attempts to pass a custom duration value, which is
wrong: only Toast.LENGTH_SHORT or Toast.LENGTH_LONG are valid.
Change-Id: I3a68e8934ddac76d1277f0fd292c329f30b192ee
|
| |
| |
| |
| | |
Change-Id: I3d3f0ead1397ee994ea58d57228457421ca9411a
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| | |
This check looks for exported content providers with no permissions.
Change-Id: I1b318b80dc8dc560c42a05db2e4dfa5bd7f45f9d
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| | |
(Also identifies other misplaced elements -- activities, services,
uses-screens, etc etc)
Change-Id: Ie9fee95c05715001be6af23c1cdd86e895e43509
|
|/
|
|
| |
Change-Id: I871f390c964cfbb8d6c4883ce426bbaa8869f446
|
|
|
|
|
|
|
|
|
|
| |
27108: lint confused by escaped percent signs
27109: Lint misreports resources as unused when the fully qualified
class name is used
27110: Lint attribute to ignore an unused resource doesn't work for
reference XML drawables
Change-Id: Id8457d8305e5d2770bc8ab547a0735c63117682c
|
|
|
|
|
|
|
| |
Add getSharedPreferences() to the method list in the
WorldReadable/WorldWritable file checks in lint.
Change-Id: Ia2922e4bfe9faf70b46b239726a6c65aa9abd3dc
|
|
|
|
| |
Change-Id: I521d53cc23a35c11db3ccff949916c77f3f6f9bd
|
|
|
|
|
|
| |
lint tool.
Change-Id: I8be9fadfe2de26ac6f4a3bd299054a9678697f27
|
|
|
|
| |
Change-Id: Ie19113652a70b55ea2db545eacd0de8c7be798c9
|
|
|
|
|
|
|
| |
Also fix the paste operation to target the parent if
the paste target does not accept children.
Change-Id: Id084db376e5ff9b4a374e6d2145bc890a925a078
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The duplicate id detector now handles locations properly (so you get
line numbers), it handles suppressing errors via annotations, and it's
better about avoiding false positives because it handles configuration
variations independently. It also attempts to filter out obvious cases
that aren't problems such as portrait versus landscape layouts.
Related issues:
http://code.google.com/p/android/issues/detail?id=22885
http://code.google.com/p/android/issues/detail?id=26454
Change-Id: Id178d08818b6cce1ebbeff6ca10e95e2906175a5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changeset contains fixes for several unrelated reported lint
bugs:
26505: Default disabled rules that are explicitly enabled do not
activate
26467: Lint says ByteBuffer.array is API 9+ but it's really API 1+
26501: Warning "This tag and its children can be replaced by one
<TextView/> and a compound drawable" is not always correct
(Partially fixed)
It also fixes the following bugs:
- The quickfix for the typography detector did not work for the
fraction warning (replacing 1/2 with the half unicode symbol etc)
- A couple of XML detectors did not check for SuppressLint on the
associated root node
- Add a --exitcode flag, and only set the exit code to non-zero if
that flag is specified. Also fix the code such that non-fatal errors
also contribute to the exit code.
- Make the HTML reporter classes public to help Maven integration.
Change-Id: I60f5fdcb2a465d51fa58bb918a195b373096d54b
|